본문 바로가기

CS/기본기 탄탄 🔥시리즈9

재정리 - 🔥 Spring 📌 1. Framework vs Library 라이브러리와 프레임워크의 결정적인 차이는, 프레임워크는 소위 'Hollywood principle' 을 따른다고 할 수 있다. Hollywood principle이란 우리를 부르지마, 우리가 너를 부를거야 라는 것. 라이브러리는 특정 기능을 수행하는 코드들의 집합이다. 최근에는 클래스들로 이루어져 있다. 라이브러리를 호출하면 특정 기능을 수행하고, 특정 값을 return한다. 프레임워크는 라이브러리보다 더 많은 기능이 내장된 추상 디자인이다. 프레임워크는 설계의 기반이 되는 기반코드와 수정/확장을 할 수 있는 라이브러리가 통합된 형태이다. 사용하려면 사용자가 코드를 채워넣어야 한다. 이후 프레임 워크가 해당 코드를 호출한다. 프레임워크 -> 자동차의 골격 (.. 2021. 10. 2.
재정리 - 🔥 db 📌 1. 트랜잭션 격리레벨 🔥 READ UNCOMMITTED Commit이나 rollback 여부에 상관없이 다른 트랜잭션에서 값을 읽을 수 있다. 정합성- 에 문제가 많다 dirty read 🔥 READ COMMITTED RDB 대부분 기본값 실제 테이블의 값을 가져오는게 아니라, Undo 영역에 백업된 레코드에서 값을 가져온다. 두 트랜잭션이 하나의 table을 수정할 때, 하나의 트랜잭션이 값을 수정한 이후 다른 트랜잭션에서 작업이 끝나기 전 commit을 하면 , 아직 끝나지 않은 트랜잭션에서 값을 읽어들이면 값이 달라진다. 이는 항상 같은 값을 가져와야 하는 REAPEATABLE READ의 정합성에 위반 --> 버그 발생 위험도 증가 🔥 REAPEATABLE READ 트랜잭션마다 ID를 부여해서.. 2021. 9. 10.
🔥7. Spring (2) - annotation 정리 📌 1. java annotation Java 5부터 도입된 기능이다. annotation은 주석이라는 뜻이지만, java annotation은 주석 그 이상의 의미를 갖는다. @annotation 이 붙은 코드는 해당 annotation에 따라 연결되는 방향이 결정된다. @은 비지니스 로직에는 영향을 주지 않지만, 해당 타겟의 연결관계를 정의하거나 소스 코드 전반의 구조를 변경할 수 있다. 즉, 해당 타겟의 역할을 정의하거나 용도를 명시할 수 있다. 한마디로 말하면, annotation은 meta data를 삽입하는 것이다. 🔥 meta data? 한마디로 하자면 data에 대한 data라고 할 수 있다. 대량의 정보(data) 가운데서 정보를 효율적으로 찾아내기 위해 일정한 규칙에 따라 부여하는 da.. 2021. 7. 16.
🔥6 - 데이터 베이스 📌 1. 정규화란? 이상 문제를 해결하기 위해 속성들끼리의 종속 관계를 분석하여 여러 relation으로 분해하는 과정 일반적으로 테이블을 여러개로 분리하면 속도는 상대적으로 저하되지만, 이상현상을 방지할 수 있다. 🔥 이상 문제 🌎 1. 삽입 이상 데이터를 저장할 때 원하는 않는 정보가 같이 삽입되는 경우 🌎 2. 갱신 이상 중복된 튜플 중 일부만 갱신하는 경우 🌎 3. 삭제 이상 삭제되지 말아야 할 정보도 같이 삭제되는 경우 https://nirsa.tistory.com/107 정규화의 단계 🌎 두부 이걸 다줘 ( 도부 이결 다조 ) 1. 1차 정규화 : 도메인이 원자값 2. 2차 정규화 : 부분 함수 종속 제거 3. 3차 정규화 : 이항적 함수 제거 4. BCNF 정규화 : 결정자인데, 후보키가 아.. 2021. 6. 8.
🔥5 - 네트워크 📌 1. OSI 7 layer Application 7 Presentation 6 Session 5 🌎 APS Transport Network 🌎 TN Data Link Physical 🌎 DP 🔥 7계층 Application 응용 계층 사용자를 위한 인터페이스를 제공. 사용제에게 보이는 유일한 계층 🔥 6계층 Presentation 표현 계층 7계층으로부터 받은 데이터를 디코딩하고, 전송하는 데이터를 인코딩하는 계층 코드간의 번역을 담당해서, 응용 계층으로부터 데이터의 형식 차이때문에 생기는 부담을 덜어주는 역할을 한다. ex) 🌎 메일 한글로 쓴 내용을 네트워크가 이해할 수 있게 변환 데이터 암복호화를 하는 계층 🔥5계층 Session 세션계층 양쪽 연결을 관리하고 지속시켜주는 계층 TCP/IP 세션.. 2021. 6. 3.
🔥4 - 운영체제 📌 1. 프로세스와 쓰레드 프로세스는 운영체제로부터 자원을 할당받아 실행중인 프로그램을 의미하는데, 프로세스의 작업 단위는 쓰레드이다. 쓰레드들은 프로세스로부터 자원을 할당받아 실행하고, 같은 프로세스 내의 쓰레드들은 자원을 공유한다. 쓰레드는 프로세스 내에서 각각 Stack만 따로 할당받고, Code, Data, Heap 영역은 공유한다. 각각의 스레드는 별도의 레지스터와 스택을 갖고 있지만, Heap영역은 공유하기에 서로 읽고 쓸 수 있다. 🔥 Java Thread 자바 스레드는 JVM에 의해 스케쥴되는 실행 단위 코드 블럭이다. Java에는 process가 존재하지 않으며, Thread만 존재한다. JVM이 운영체제 역할을 한다. 🔥 멀티 프로세스 하나의 응용 프로그램을 여러 개의 프로세스로 구성하.. 2021. 6. 2.
🔥3. Spring (1) 보호되어 있는 글 입니다. 2021. 5. 31.
🔥2. Java(2) https://hahahoho5915.tistory.com/16 📌 Java 📌 11. Java 버전별 특징 🔥 Java 8 기본 GC -> Parrallel GC Lambda식 추가 LocalDateTime, LocalDate, LocalTime등 시간 API 추가 Stream API 추가 🔥 Java 9 G1 GC 공식 GC로 채택 🔥 Java 10 var 키워드를 통한 타입추론 병렬 처리 GC 개별 쓰레드로 분리된 Stop The world 🔥 Java 11 기본 GC -> G1 GC 🔥 Java 12 Switch문 확장 https://kudl.tistory.com/entry/JAVA-%EB%B2%84%EC%A0%84%EB%B3%84-%ED%8A%B9%EC%A7%95 📌 12. Reflection .. 2021. 5. 27.