Dependency Inversion Principle DIP의 정의 High-level 모듈들은 low-level 모듈들을 의존해서는 안된다. 둘다 Abstraction에 의존해야한다. Abstraction들은 detail들에 의존해서는 안된다. Detail들은 abstraction들에 의존해야한다. DI...
[Inversion of Control 이해하기] Chapter 1 - Inversion of Control의 정의와 예시
Overview 출처 위 그림에서 보듯이 IoC와 DIP는 class들을 디자인할때 사용되어야 하는 high level design principle들이다. principle이기 때문에 best practice를 추천해주긴 하지만 구체적인 구현사항을 제공하지는 않는다. DI는 pattern이고 IoC container는 framework이다. ...
Design Principle vs Design Pattern
Software engineering에서 design principle과 design pattern은 같지 않다. Design Principle Design Principle은 소프트웨어를 잘 디자인하기 위한 high level 가이드라인을 제공한다. 구현에 대한 가이드라인은 제공하지 않는다. 대표...
iTerm2 setting
mac terminal setting guide link 최종 zshrc 파일 iTerm2에서 source ~/.bash_profile 자동으로 실행되게 하기 Settings 열기(Cmd + ‘,’ 단축키로도 가능)) General Tab에 Command 속성에 Send text at st...
Binary Numeric Promotion
Binary Numeric Promotion operator가 binary numeric promotion을 operand들에게 적용할때, numeric type으로 변환되는 값을 명시해줘야 하며, 다음과 같은 규칙을 따른다. 순서대로 살펴보면 다음과 같다. 1. 만약 reference type이라면, unboxing conversion을 수행한다....
SQL Statements
SQL Statements Session Management CONNECT, DISCONNECT Data Retrieval SELECT Data Manipulation Language(DM...
Sequence
Sequence 자동적으로 유일한(unique) 순차 값을 생성하는 Database Object. 기본키(primary key)의 값을 생성하는데 주로 사용됨. 메모리에 cache되었을때 시퀀스 값에 대한 접근의 효율성이 증가함. 다른 사용자들에 의해 공유가능 시퀀...
Read Consistency
Read Consistency Transaction-level read consistency (트랜젝션 수준 읽기 일관성) 트랜젝션의 각 SQL문의 질의는 그 트랜젝션 시작전에 커밋한 데이터만을 본다. 물론 해당 트랜젝션이 변경한 데이터는 볼수있다. Statement-level read consistency...
B-Tree Indexing
B-Tree란 무엇인가? B-tree는 정열된 순서로 데이터를 저장할때 사용하는 자료구조이다. 샘플 B-tree는 다음과 같다. 출처 각각의 노드에 키값들은 두개의 reference를 가지고 있으며, 각각의 reference는 다른 자식노드를 가리킨다. 왼쪽에 위치한 자식노드는 현재 키 값보다 작으며, 오른쪽에 위치한 자식노드는 현재 키 값보다...
HTTPS Handshake with TLS
HTTPS Handshake with TLS 1.2 https:// 프로토콜 prefix로 HTTP 리퀘스트를 보내면, 먼저 TCP connection이 3-way handshake를 사용해서 설정된다. 아래의 파란선이 연결수립과정이다. HTTPS 프로토콜의 기본 포트번호는 443이다. 출처 TCP 커넥션이 일어나고, TLS hands...