본문 바로가기

분류 전체보기33

[Network] TCP 3-way Handshake, 그리고 4-way Handshake 알아보기 전에... 포트 상태 정보 포트 상태 정보 CLOSED 포트가 닫힌 상태 LISTEN 포트가 열린 상태로 연결 요청 대기 SYN_RCV SYNC 요청을 받고 상대방의 응답을 기다리는 중 SYN_SENT SYNC 요청을 한 상태 ESTABLISHED 포트 연결 상태 TCP Header 안의 플래그 정보 TCP Header에는 CONTROL BIT(플래그 비트, 6bit)가 존재하며, 각각의 bit는 "URG-ACK-PSH-RST-SYN-FIN"의 의미를 가진다. TCP Header 연결 설정 설명 SYN 000010 Sequence Number를 랜덤으로 설정하여 세션을 연결하는 데 사용하며, 초기에 Sequence Number를 전송한다. ACK 010000 패킷을 받음을 의미. Acknowle.. 2021. 5. 2.
[OS] Process vs Thread 프로세스 (Process)란? 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램. 실제 실행 중인 프로그램을 일컫기 때문에 동적이라고 표현하기도 한다. 프로세스는 커널에 의해 직접 관리되는데 커널 메모리 안에는 각 프로세스마다 관리하고 있는 프로세스에 대한 데이터들이 있다. 이 정보는 Process Control Block(PCB)이라고 하는 자료구조 안에 있는 커널 스케줄러가 프로세스를 제어하는데 필요한 정보들이 담겨 있다. 운영체제는 각각의 프로세스를 독립적으로 관리하기 때문에 서로 다른 프로세스가 겹칠 일이 없고, 또 사용 자원 영역 등이 겹치는 일이 발생해서도 안 된다. (예외적으로 같은 프로그램의 프로세스들은 Code 영역은 공유한다.) 프로세스 간 통신은 필요할 경우 최소한의 인터페이스를 제.. 2021. 5. 2.
[Spring] IoC 컨테이너란? (IoC: Inversion of Control) IoC (Inversion of Control) 제어권의 역전 (일반적으로 제어권이란 자기가 사용할 의존성은 스스로 만들어서 사용하는 것을 의미) 제어권이 역전되었다는 것은 다른 누군가가 의존성을 외부에서 줌(DI: Dependency Injection 알아보기)을 의미한다. Spring IoC Container Bean을 구성하고 제공하는 컨테이너. 오브젝트에 대한 제어권을 코드 대신 갖고 있다고 해서 IoC라고 부른다. BeanFactory와 ApplicationContext 두 가지가 있다. BeanFactory Bean의 생성과 설정 및 관리를 맡고 있다. Bean을 등록, 생성, 조회, 반환 관리함. 보통은 이를 확장한 ApplicationContext를 사용함. getBean() 메소드가 정의.. 2021. 5. 2.
[Spring] Dependency Injection(DI) - 의존성 주입 의존성이란? 아래 코드 상를 보면 Room 클래스에서 turnOnLigh()가 호출되기 위해서는 Light 클래스가 필요하다. 이 때, Room 클래스는 Light 클래스에 의존성을 가진다 라고 한다. class Room { private Light light; public Room() { this.light = new Light(); } public turnOnLignt() { this.light.turnOn(); } } 위와 같이 설계하였을 경우, Light 클래스가 수정되었을 때 Room 클래스도 함께 수정해 줘야 하는 문제가 발생한다. 그럼 어떻게 변경해야 하는 것일까? 의존성 주입(DI)이란? 의존성 주입이란 필요한 객체를 직접 생성하는 것이 아니라 외부로부터 필요한 객체를 받아서 사용하는 것... 2021. 5. 2.