반응형 Language/자바&코틀린14 [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. 직렬화와 역직렬화 직렬화메모리에 존재하는 데이터를 디스크에 저장하거나 다른 네트워크에 전송하기 위한 포맷으로 변환(직렬화)하고이를 다시 재구성 할 수 있는 포맷으로 변환(역직렬화)하는 과정 직렬화의 종류json 직렬화정의 : json 형식의 문자열로 변환장점 : json 형식이기에 모든 프로그램에서 사용 가능함사용 예시 : - 직렬화 : 스프링 서버에서 응답 객체를 클라이언트에 json 형식으로 변환함 - 역직렬화 : 클라이언트가 json형식으로 전송한 http 메시지의 request body를 객체로 변환함바이너리 직렬화정의 : 바이너리 코드라는 기계어로 변환장점 : 텍스트 기반 직렬화보다 저장 공간에 효율적이며, 전송 속도가 빠름사용예시 : - 직렬화 : 브라우저에서 다른 서버에 요.. 2024. 7. 19. Garbage Collection의 동작 방식과 종류 Garbage Collection"JVM의 가비지 컬렉터가 불필요한 메모리 자원을 해제하는 작업"자바에서 명시적으로 불필요한 데이터를 표현하기 위해서 null을 선언할 수 있다. 허나, 이러한 패턴의 코드는 잘 보이지 않는다. 가독성에도 좋지 않지만 null을 선언하지 않아도 가비지 컬렉터의 알고리즘에 의해 수집 될 수 있다. 가비지 컬렉션은 객체를 참조하는 다른 자원이 있는지 확인하는 Reachable 작업을 통해 제거 대상을 판단한다.가비지 컬렉션의 대상인 힙 영역의 객체들은 스택 영역의 변수들이나 참조타입의 정적 필드 의해 참조된다.스택이나 정적 필드에 의해 참조되는 객체를 Reachable이라고 하고, 참조되지 않는 객체는 UnReachable이라고 한다.가비지 컬렉션은 UnReachable이라고.. 2024. 7. 6. 객체지향 프로그래밍이란 : OOP [용어 정리] 객체지향 프로그래밍을 이해하기 위해 필요한 아래의 용어에 대해 먼저 설명하겠다.모듈모듈이란 프로그램을 구성하는 기능 단위의 독립적인 명령어들의 집합이다.모듈은 독립적이며 유일한 기능을 갖고 다른 프로그램이나 모듈에서 호출되어 재사용될 수 있어야한다.따라서 모듈은 다양한 형태로 존재할 수 있는데 메서드, 객체, 패키지, 라이브러리 등이 이에 해당한다.(상위 모듈 : 호출하는 모듈 / 하위 모듈 : 호출 당하는 모듈) 의존의존이란 모듈(또는 객체 등)이 동작하기 위해 다른 모듈의 자원을 사용하는 상황을 의미한다.이는 호출 당하는 하위 모듈의 변경사항이 호출하는 상위 모듈에 영향을 미친다는 것을 의미한다.의존성의존성의 존재 여부는 호출되는 하위 모듈의 변경사항이 호출하는 상위 모듈에 영향.. 2024. 6. 30. 이전 1 2 3 4 다음 반응형