책
-
[1%의 네트워크 원리] 6장 : 웹 서버에 도착하여 응답 데이터가 웹 브라우저로 돌아간다책/성공과 실패를 결정하는 1%의 네트워크 원리 2024. 2. 25. 21:40
STORY 1. 서버의 개요 1. 클라이언트와 서버의 차이점 서버 머신은 하드웨어나 OS 부분에서 클라이언트와 다를 수 있다 그러나 LAN 어댑터, 프로토콜 스택, socket 라이브러리 등은 전혀 다르지 않음 하지만 사용법은 조금 다를 수 있음 2. 서버 애플리케이션의 구조 하나의 프로그램으로 여러 클라이언트와 소통하기는 어려움 그래서 서버 프로그램으로의 접속을 기다리는 부분, 클라이언트와 소통하는 부분 두 부분으로 나눔 클라이언트가 접속 요청 시 접속 기다리는 부분에서 소통하는 부분으로 소켓을 넘겨줌 클라이언트는 결과적으로 하나의 태스트/스레드와 1대1로 소통하게 됨 3. 서버측의 소켓과 포트 번호 데이터를 송수신하는 입장에서는 클라이언트, 서버 개념이 없을 수도 있지만, 접속 동작을 수행할 때는 좌..
-
[1%의 네트워크 원리] 5장 : 서버측의 LAN에는 무엇이 있는가책/성공과 실패를 결정하는 1%의 네트워크 원리 2024. 2. 25. 21:39
STORY 1. 웹 서버의 설치 장소 1. 사내에 웹 서버를 설치하는 경우 가장 간단한 방법 사내 LAN에 서버 설치하고, 인터넷에서 직접 액세스 IP 주소가 부족하여 이 방법 안씀 또한 보안 문제 → 공격에 노출 그래서 방화벽을 둠 특정 서버에서 동작하는 특정 애플리케이션에 액세스하는 패킷만 통과, 나머지는 차단 그러나 만능은 아님 → 액세스를 허가한 애플리케이션에 보안 구멍이 있으면 공격받음 2. 데이터센터에 웹 서버를 설치하는 경우 데이터센터 시설에 서버를 가지고 들어가서 설치하거나 프로바이더가 소유하는 서버를 빌려쓰는 형태 고속 액세스 가능 안전성도 높음 STORY 2. 방화벽의 원리와 동작 1. 패킷 필터링형이 주류이다 지금은 거의 무조건 서버의 바로 앞에 방화벽이 있는 것이 보통 방화벽은 패킷..
-
[1%의 네트워크 원리] 2장 : TCP/IP의 데이터를 전기 신호로 만들어 보낸다책/성공과 실패를 결정하는 1%의 네트워크 원리 2024. 2. 25. 21:37
STORY 1. 소켓을 작성한다 1. 프로토콜 스택의 내부 구성 애플리케이션 네트워크 애플리케이션 (웹 브라우저 등) Socket 라이브러리 (리졸버) OS 프로토콜 스택 (TCP, UDP) 프로토콜 스택 (IP, ICMP, ARP) 드라이버 소프트웨어 LAN 드라이버 (LAN 어댑터 제어) 하드웨어 LAN 어댑터 2. 소켓의 실체는 통신 제어용 제어 정보 소켓 - 제어 정보를 기록한 메모리 영역 통신 상대의 IP 주소, 포트 번호, 통신 동작의 진행 상태 등 프로토콜 스택은 소켓에 기록된 제어 정보를 참조하며 동작 3. Socket을 호출했을 때의 동작 프로토콜 스택은 소켓 한개 분량의 메모리 영역을 확보한다. 그 다음 초기 상태를 나타내는 제어 정보를 소켓에 기록 소켓이 만들어지면 디스크립터를 애플리..
-
[1%의 네트워크 원리] 1장 : 웹 브라우저가 메시지를 만든다책/성공과 실패를 결정하는 1%의 네트워크 원리 2024. 2. 25. 21:34
STORY 1. HTTP 리퀘스트 메시지를 작성한다 1. 탐험 여행은 URL 입력부터 시작한다 URL은 http:// 만 있지 않고, ftp:// 등 다양하게 있다. http://user:password@www.cyber.co.kr:80/dir/file1.htm http: - 프로토콜 명 user - 사용자 명 (생략 가능) password - 패스워드 (생략 가능) www.cyber.co.kr - 웹 서버의 도메인 명 80 - 포트 번호 (생략 가능) /dir/file1.htm - 파일의 경로명 2. 브라우저는 먼저 URL을 해독한다 URL의 요소 http: + // + 웹 서버명 + / + 디렉토리명 + / + 파일명 http: - 프로토콜 // - 나중에 이어지는 문자열이 서버의 이름임을 나타냄 /..
-
[토비의 스프링] 1장 : 오브젝트와 의존관계책/토비의 스프링 3.1 2024. 2. 24. 23:12
1.1 초난감 DAO 1.1.1 User public class User { String id; String name; String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 1.1.2 UserDa..
-
[자바의 정석] 12장 : 지네릭스, 열거형, 애너테이션책/자바의 정석 3판 2024. 2. 18. 21:35
1. 지네릭스 (Generics) 지네릭스란? 다룰 객체의 타입을 미리 명시해줌으로써 형변환을 줄여줌 지네릭 클래스의 선언 class Box 와 같이 선언 T는 임의의 문자도 상관없고, 처럼 여러개 해도 됨 단, 이는 임의의 참조형 타입을 의미 → 원래는 원시 타입은 안됨 Box 과 Box는 별도의 클래스를 의미하는 것이 아님 → 타입 매개변수이므로 add(1,2)와 add(3,4)가 다른 함수가 아니라는 것으로 이해하면 됨 제한 static 멤버에는 T 사용 불가 → 인스턴스 변수로 간주하므로 new T[] 불가 → 컴파일 타입에 타입을 추정할 수 없으므로 지네릭 클래스의 객체 생성과 사용 Apple이 Fruit의 자손인 경우 Box box = new Box(); 불가능하다 그러나 지네릭 클래스 자체의..
-
[자바의 정석] 7장 : 객체지향 프로그래밍 II책/자바의 정석 3판 2024. 2. 18. 21:31
1. 상속 (inheritance) 상속의 정의와 장점 extends 키워드로 가능 부모 클래스의 모든 멤버 변수와 메서드를 상속받음 private 또는 default인 멤버들은 상속되지 않는게 아니라 상속은 되는데 접근이 안되는 것 코드의 중복을 최소화할 수 있음 클래스간의 관계 - 포함관계 (composite) 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것 클래스간의 관계 설정하기 is - a → 상속 has - a → 포함 단일 상속 자바에서는 다중 상속을 허용하지 않음 → 단일 상속만 가능 Object 클래스 - 모든 클래스의 조상 누군가에게 상속받지 않는 클래스는 모두 자동적으로 extends Object가 붙는다. 2. 오버라이딩 (overriding) 오버라이딩이란? 조상 클..
-
[자바의 정석] 6장 : 객체지향 프로그래밍 I책/자바의 정석 3판 2024. 2. 18. 21:29
1. 객체지향언어 역사 기본 개념 : 실제 세계는 사물(객체)로 이루어져 있고, 사물간의 상호작용으로 모든 사건이 발생한다 객체지향 코드의 재사용성이 높고 유지보수 편함 처음에는 기능 구현에 초점을 맞추고, 객체지향적으로 바꾸는 게 좋음 2. 클래스와 객체 클래스와 객체의 정의와 용도 클래스 : 설계도 (TV 설계도) 객체 : 실제 사물 (TV) 객체와 인스턴스 클래스 → 객체 과정을 인스턴스화(instantiate) 라고 함 클래스로부터 만들어진 객체를 인스턴스(instance)라고 함 객체의 구성 요소 - 속성과 기능 객체는 속성과 기능으로 구성 객체가 가지고 있는 속성과 기능을 객체의 멤버라고 함 속성 : 멤버변수(member variable), 특성(attribute), 상태(state) 기능 :..