본문 바로가기
반응형

Language/자바&코틀린15

[I/O 이해하기-3] 톰캣의 요청 수신 방식 [I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking[I/O 이해하기-2] Stream vs Channel[I/O 이해하기-3] 톰캣의 요청 수신 방식이전의 [I/O 이해하기 1,2]를 통해 I/O 작업에 사용되는 개념에 대해 학습을 하였다.개념에 대한 내용은 1,2편에서 설명하였으므로 이 글에서는 개념과 용어에 대해 세세한 설명은 하지 않을 것이다. 나는 개인적으로 톰캣이 어떻게 요청을 처리하는지 알고 싶어 동기와 비동기, Blocking과 Non Blocking, Stream과 Channel을 학습하였다. 톰캣이 비동기 NonBlocking으로 동작한다고 알고 있었기에 학습한 이론을 토대로 톰캣이 클라이언트 요청에 대한 모든 I/O 작업을 비동기-NonBlocking으로.. 2025. 1. 27.
직렬화와 역직렬화 직렬화(Serialization)메모리에 존재하는 데이터를 디스크에 저장하거나 다른 네트워크에 전송하기 위한 포맷으로 변환(직렬화)하고이를 다시 재구성 할 수 있는 포맷으로 변환(역직렬화)하는 과정직렬화의 종류json 직렬화정의 : json 형식의 문자열로 변환장점 : json 형식이기에 모든 프로그램에서 사용 가능함사용 예시 :  - 직렬화 : 스프링 서버에서 응답 객체를 클라이언트에 json 형식으로 변환함                  - 역직렬화 : 클라이언트가 json형식으로 전송한 http 메시지의 request body를 객체로 변환함바이너리 직렬화정의 : 바이너리 코드라는 기계어로 변환장점 : 텍스트 기반 직렬화보다 저장 공간에 효율적이며, 전송 속도가 빠름사용예시 :  - 직렬화 : 브라.. 2024. 7. 19.
Optional 클래스의 특징과 올바른 사용법 0. Optional 클래스optional 클래스는 객체가 null을 참조하는 경우 발생할 수 있는 NPE 예외를 벗어나기 위해내부적으로 null 처리를 대신해주는 래퍼 클래스이다.public final class OptionalT> {  private final T value;     ...} 1. Optional 클래스를 사용하는 이유null을 직접 다루게 되면 NPE 예외 발생 가능성이 높아질 수 있음 -> 간접적으로 null을 다루기 위함null 체크 로직이 반복됨 -> if문으로 지저분해짐 Bag이라는 클래스 안에 Purse가 있는 예제를 통해 optional 클래스 사용시 얻는 이점을 살펴보자. [Optional을 사용하지 않는 경우] Bag bag = getBag();if (bag == nu.. 2024. 7. 8.
Garbage Collection의 동작 방식과 종류 Garbage CollectionJVM의 가비지 컬렉터가 불필요한 메모리 자원을 해제하는 작업 자바에서 명시적으로 불필요한 데이터를 표현하기 위해서 null을 선언할 수 있다. 허나, 이러한 패턴의 코드는 잘 보이지 않는다. JVM의 가비지 컬렉터가 객체들의 참조여부를 체크하여 객체가 점유한 메모리를 해제 시켜주므로 자바 코드에서는 메모리 자원을 해제하는 코드가 잘 보이지 않는다. 용어 구분 * 가비지 컬렉터 : 메모리 자원을 할당하고 해제(GC)하는 프로그램 Garbage Collection의 동작 방식기본 개념가비지 컬렉션은 Reachable이라는 대상 객체를 참조하는 다른 자원이 있는지 여부로 제거 대상을 판단한다.가비지 컬렉션의 대상인 힙 영역의 객체들은 스택 영역의 변수들이나 참조타입의 정적 필.. 2024. 7. 6.
반응형