본문 바로가기

공부이야기27

[Java] GC의 종류 (Garbage Collector) GC (Garbage Collector)란? 힙 내의 객체 중에서 Garbage를 찾아내고 찾아낸 Garbage를 처리해서 힙의 메모리를 회수한다. 이를 Garbage Collection이라 하며 JVM에서 이를 자동으로 수행하는 프로세스를 GC(Garbage Collector)라고 한다. JAVA에서 객체가 생성되면 해당 객체는 JVM의 Heap영역의 메모리를 점유 한다. 해당 객체는 현재 참조 되지 않더라도 메모리 공간을 점유 한다. 물론 메모리 공간은 한정적이다. 한정적인 메모리에 현재 사용되지 않는 객체가 점유한 공간을 재때 정리해 주지 않으면 메모리 공간이 부족해 지고, 결국은 Out Of Memory Error 가 발생 할 수 밖에 없다. Serial GC 순차적인 GC. Single Thre.. 2021. 5. 10.
[Java] Java 8에 대해 알아보자! (feat. 다른 버전 summary) Summary version 특징 발표일 Java 8 - 기본 GC -> Parallel GC - Lambda Expression - Optional - Stream API - Repeating Annotation - 새로운 날짜와 시간 API - Interface Default Method 2014. 03. 18 Java 9 - Java를 인터프리터 언어 쉘 처럼 사용할 수 있는 JShell 추가 - private interface method - immutable collection - 64비트 버전만 출시 - .properties 파일에 UTF-8 지원 2017. 09. 21 Java 10 - var 키워드를 이용한 지역 변수 타입 추론 - 병렬 처리 GC - 개별 쓰레드로 분리된 Stop-the-.. 2021. 5. 9.
[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.