본문 바로가기
반응형

Language/자바&코틀린13

[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을 학습하였다. 톰캣 9 이후 비동기-NonBlocking으로 동작한다고 하여 클라이언트 요청에 대한 모든 I/O 작업을 비동기-NonBlocking으로 동작할것이라 예상했지만 결과는.. 2025. 1. 27.
Garbage Collection의 동작 방식과 종류 Garbage Collection"JVM의 가비지 컬렉터가 불필요한 메모리 자원을 해제하는 작업"자바에서 명시적으로 불필요한 데이터를 표현하기 위해서 null을 선언할 수 있다. 허나, 이러한 패턴의 코드는 잘 보이지 않는다. 가독성에도 좋지 않지만 null을 선언하지 않아도 가비지 컬렉터의 알고리즘에 의해 수집 될 수 있다. 가비지 컬렉션은 객체를 참조하는 다른 자원이 있는지 확인하는 Reachable 작업을 통해 제거 대상을 판단한다.가비지 컬렉션의 대상인 힙 영역의 객체들은 스택 영역의 변수들이나 참조타입의 정적 필드 의해 참조된다.스택이나 정적 필드에 의해 참조되는 객체를 Reachable이라고 하고, 참조되지 않는 객체는 UnReachable이라고 한다.가비지 컬렉션은 UnReachable이라고.. 2024. 7. 6.
객체지향 프로그래밍이란 : OOP [용어 정리] 객체지향 프로그래밍을 이해하기 위해 필요한 아래의 용어에 대해 먼저 설명하겠다.모듈모듈이란 프로그램을 구성하는 기능 단위의 독립적인 명령어들의 집합이다.모듈은 독립적이며 유일한 기능을 갖고 다른 프로그램이나 모듈에서 호출되어 재사용될 수 있어야한다.따라서 모듈은 다양한 형태로 존재할 수 있는데 메서드, 객체, 패키지, 라이브러리 등이 이에 해당한다.(상위 모듈 : 호출하는 모듈   /   하위 모듈 : 호출 당하는 모듈) 의존의존이란 모듈(또는 객체 등)이 동작하기 위해 다른 모듈의 자원을 사용하는 상황을 의미한다.이는 호출 당하는 하위 모듈의 변경사항이 호출하는 상위 모듈에 영향을 미친다는 것을 의미한다.의존성의존성의 존재 여부는 호출되는 하위 모듈의 변경사항이 호출하는 상위 모듈에 영향.. 2024. 6. 30.
[I/O 이해하기-2] Stream vs Channel [I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking[I/O 이해하기-2] Stream vs Channel[I/O 이해하기-3] 톰캣의 요청 수신 방식I/OI/O란 Input/Ouput의 약자로 입력값을 읽어들이는 작업과 출력값을 쓰는 작업을 말한다. I/O 작업은 애플리케이션 내에서만 이뤄지는 작업이 아니다.클라이언트의 요청을 읽어들이는 서버(전송계층 -> 응용 계층)클라이언트가 서버로 요청을 보내게되면 요청 데이터가 전송계층에 패킷 형태로 존재한다.서버의 애플리케이션에서 시스템 콜을 실행하는 프로그래밍 명령어를 통해 이를 애플리케이션으로 가져온다.디스크에 저장된 파일 읽어들이는 경우 (하드웨어 -> 애플리케이션 서버)파일이 존재하는 디스크 경로에 접근하여 해당 데이터를 .. 2024. 5. 9.
반응형