HTTP는 Stateless 한 특징을 가진다. 그러나 로그인 상태, 쇼핑몰 장바구니 기능 등을 위해 상태를 유지해야 할 때가 있는데, 이때 세션과 쿠키를 사용한다. 세션 서버 측에 저장되어 관리되는 정보. 세션의 특징 클라이언트와 서버 간의 접속을 유지시켜주는 역할 클라이언트가 서버에 요청할 경우 서버는 각 클라이언트를 구분할 수 있는 식별자(세션 ID) 부여 여러 클라이언트가 요청하는 정보들은 이 세션 ID를 통해 각 클라이언트를 구분해 정보 저장 세션 동작 순서 클라이언트가 페이지에 요청 (사용자가 웹사이트에 접근) 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여, 클라이언트가 해당 session-id를 보냈는지 확인 session-id가 존재하지 않는다면 서버는..
서블릿과 스프링에 관한 좋은 글을 발견했다. 작성자가 글을 아주 잘 쓰는 것 같다. 두고두고 봐야겠당 https://jypthemiracle.medium.com/servletcontainer%EC%99%80-springcontainer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%A4%EB%A5%B8%EA%B0%80-626d27a80fe5 ServletContainer와 SpringContainer는 무엇이 다른가? Controller 1개는 어떻게 수십 만개의 요청을 처리하는가 jypthemiracle.medium.com
인터넷 구성과 주소 부여 체계 Network of Networks Internet : 이기종 네트워크를 라우터로 연결 Subnet : 라우터로 연결된 서브넷은 유일한 ID를 가짐 Host : 호스트는 서브넷에서 유일한 ID를 가짐 인터넷 차원의 주소 : IP 주소 인터넷에서 통신 장치를 유일하게 식별 Network ID + Host ID 네트워크 주소 : Host ID = 0 네트워크 주소 (Network ID) 기반 라우팅 라우팅 테이블 크기 축소 인터넷 성능 제고 IP 주소 구조 IPv4 주소 구조 : 32비트(2의 32승 - 4,294,967,296) 주소 구조 활용 방식 클래스 IP 주소 (Classful Addressing) 비클래스 IP 주소 (Classless Addressing) 클래스 주..
IP 서비스 개요 비연결형 서비스 연결 설정 과정 없음 일련의 데이터그램을 독립적으로 전달 최선형 서비스 전송속도, 지연시간 보장 없음 오류 복구 서비스 미지원 서브넷 독립적 서비스 다양한 서브넷을 통해 IP 데이터그램 전송 가능 서브넷 주소와 독립적인 IP 주소 사용 Hop-By-Hop IP 데이터그램 구조 Version - 프로토콜 버전(4, 6) Header length - 헤더의 길이 (4 bits로 표현하기 위해서 실제 길이에 4를 나눈 값을 저장) Total Length - 헤더와 데이터를 합한 총 길이 Identification, Flags, Fragment offset - 데이터 그램의 크기가 커서 Fragmentation(단편화) 할 때 사용하는 필드들 TTL - 데이터그램이 최대로 거칠..
도메인명과 DNS 서비스 도메인명(Domain name) 인터넷 호스트에 부여되는 문자형의 유일한 이름 - 주소 계층적 도메인 관리 구조에 의해 도메인명의 유일성 유지 도메인 관리자가 상위 도메인 관리에게 등록한 후 사용 계층적 도메인 구조 도메인명 특징 사용자 편리성 사용자 소속성 DNS 서비스 유형 Hostname to IP Address (호스트명-IP 주소 변환 서비스) 사용자의 문자형의 호스트명을 TCP/IP가 사용하는 32비트 IP주소로변환 Host aliasing (호스트 별칭 서비스) 사용자의 호스트 별칭(alias)을 복잡한 정규 호스트명(canonical hostname)으로 변환 Mail server aliasing(메일 서버 별칭 서비스) 사용자의 메일서버 별칭을 복잡한 정규 호스트..
웹 쿠키 (Cookies) 쿠키 사용 시나리오 서버에서는 클라이언트마다 고유한 쿠키를 생성해 set-cookie 헤더에 담아 클라이언트로 전송 클라이언트는 받은 쿠키를 저장해 이후 해당 서버와 통신할 때 사용 웹 쿠키 필요성 비 상태형 HTTP에 상태형 서비스를 구현하기 위해 웹 캐시(Web cache) - Proxy Server 원래의 웹 서버들을 대신하여 HTTP 요청 메시지를 처리하는 중간 서버 대상 웹 브라우저의 HTTP 요청 메시지를 웹 캐시로 방향 전환 (redirect) 웹 캐시에 요청된 객체가 존재하면 웹 브라우저에 전송 그렇지 않으면 웹 캐시가 원래의 웹 서버에 요청 메시지를 보내 응답 메시지를 수신 웹 캐시가 웹 서버로부터 수신한 객체를 자신의 서버에 저장하고 웹 브라우저로 전송 웹 캐..
페이징(Paging) 페이징은 어떤 프로세스의 메모리 공간을 연속되지 않게 쪼개어서 관리하는 것을 의미한다. frame - 물리 메모리를 고정된 크기로 쪼갠 것 page - 논리 메모리를 동일한 크기의 블록으로 쪼갠 것 페이징 방법 페이지 번호와 페이지 오프셋을 통해 논리 메모리 주소를 표현한다. 아래 그림의 페이지 테이블에서 p 값(페이지 번호)에 해당하는 f 값(프레임 번호)을 알 수 있다. Free-Frame-List 리스트로 구현된 free-frame list에서 차례로 프로세스의 페이지를 매핑하는 방식으로 메모리를 할당한다. PTBR (page-table base register) PTBR에 페이지 테이블의 시작점 주소를 저장하여 CPU에서 페이지 테이블에 접근하는 시간을 줄인다. TLB (Tr..
클래스를 이용한 타입 계층 구현 타입은 객체의 퍼블릭 인터페이스를 가리킨다. 클래스는 객체의 타입과 구현을 동시에 정의하는 것과 같다고 볼 수 있다. 이러한 점이 객체지향 언어에서 클래스를 사용자 정의 타입(user-defined data type)이라고 부르는 이유다. public class Phone { private Money amount; private Duration seconds; private List calls = new ArrayList(); public Phone(Money amount, Duration seconds) { this.amount = amount; this.seconds = seconds; } public Money calculateFee() { // 생략 } } Phon..