전체 글
-
HTTP (2) - URI와 웹 브라우저 요청 흐름카테고리 없음 2023. 9. 13. 11:19
1. URI (Uniform Resource Identifier) - URI는 로케이터와 이름 또는 둘다 추가로 분류 가능 U: 리소스 식별하는 통합된 방식 R : 자원 URI로 식별 가능한 모든것 I : 다른 항목과 구분하는데 필요한 정보 URL: 리소스가 있는 위치를 지정 URN : 리소스에 이름을 부여 -> 거의 URL만 씀 1.2 URL 스키마: - 주로 프로토콜 사용 - http 프로토콜은 80, https는 443 포트 사용 userinfo : URL에 사용자 정보 포함해서 인증 (거의 사용안함) 호스트: 도메인명 IP 주소 사용 포트: 접속 포트번호 (서버측) path: 리소스 경로 (계층적구조) query: key=value형태 ?로 시작, 웹서버에 제공되는 파라미터, 문자형태이다. fra..
-
HTTP (1) - 인터넷 네트워크카테고리 없음 2023. 9. 13. 10:40
1. 인터넷 통신 - 클라이언트와 서버는 인터넷 망을 통해 연결된다. - 복잡한 인터넷 망에서 어떤 방식으로 서버를 찾아갈까? 2. IP (인터넷 프로토콜) - 클라이언트와 서버는 고유의 IP주소가 있다. - 지정한 IP주소에 데이터를 전달하는 것이다. - 이때 패킷이라는 통신 단위로 데이터를 전달한다. - IP 패킷에는 클라이언트 IP, 목적지 IP, 기타정보와 전송 데이터가 들어있다. 2.1 IP 프로토콜의 한계 - 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다. - 비신뢰성: 중간에 패킷이 사라지거나, 패킷이 순서대로 전달되지 않을 때 문제가 발생할 수 있다. - 프로그램 구분: 같은 IP를 사용하는 서버에서 클라이언트와 연결될 수 있는 애플리케이션이 두개 이상이라면 ..
-
디자인패턴 (8) - 어댑터 패턴언어/디자인패턴 2023. 9. 12. 16:41
1. 어댑터 패턴이란? - 클래스를 어댑터로 사용하는 구조 패턴이다. - 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들을 함께 작동하도록 변환해주는 역할 - 이미 구축되어 있는 것을 새로운 어떤것에 사용할 때 양 쪽 간의 호환성을 유지해 주기 위해 사용하는 것 - 호환성 및 신규 기능 확장 2. 어댑터 패턴 구조 - 상속 혹은 합성해서 작업할 수 있다. 2.1 객체 어댑터 - 합성된 맴버에게 위임을 이용한 어댑터 패턴이다. - 자기가 해야할 일을 클래스 멤버 객체의 메소드에게 다시 시킴 - 합성을 활용하여 런타임 중 어댑터가 결정되어 유연하다. - 하지만, Adaptee객체를 필드 변수로 저장해야해서 공간을 차지한다. - Adaptee : 어댑터 대상 객체 -> 기존 시스템/외부 시스템/..
-
디자인 패턴 (7) - 커맨드 패턴언어/디자인패턴 2023. 9. 12. 11:31
1. 커맨드 패턴이란? - 실행될 기능을 캡슐화하여 여러 기능을 실행할 수 있는 재사용성이 높은 클래스 설계 패턴 - 이벤트가 발생했을 때 실행될 기능이 다양+변경 가능성이 있을때, 이벤트 발생 클래스 변경하지 않고 재사용 - 행위 패턴 중 하나이다. - 실행할 기능 캡슐화하여 실행 요구 호출자(클라이언트)클래스와 실제 기능 수신자 클래스 의존성 제거 - 실행될 기능이 변경되어도 호출자 클래스에 어떠한 수정 없이 그대로 사용가능 1.1 커맨드 패턴의 구조 - Command : 실행될 기능에 대한 인터페이스 - ConcreteCommand: 실제 실행되는 기능 구현 - Invoker : 기능의 실행을 요청하는 호출자 클래스 - Receiver: ConcreteCommand에서 execute 메서드 구현시 ..
-
디자인 패턴 (6) - 싱글톤 패턴언어/디자인패턴 2023. 9. 11. 16:23
1. 싱글톤 패턴이란? - 단 하나의 유일한 객체를 만들기 위한 코드 패턴 - 메모리를 절약하기 위해 인스턴스 필요시 새로 만들지 않고 기존의 인스턴스 가져와 활용하는 기법 - 보통 싱글톤 패턴이 적용된 객체가 필요한 경우는 리소스를 많이 차지하는 역할을 하는 무거운 클래스들 ex 데이터 연결 모듈 (스레드풀,커넥션 풀 등등) 1.1 싱글톤 패턴 구현 원리 - 생성자에 private를 붙여주기만하면된다. - 전역변수로 미리 생성된 객체를 얻는다. 1.2 여러가지 싱글톤 패턴 구현 방법 - Eager Initialization > 가장 직관적이면서 심플한 방법 > static final이라 멀티 쓰레드 환경에서도 안전하다. > static멤버는 당장 객체 사용하지 않더라도 메모리에 적재하기 때문에 리소스가..
-
디자인 패턴 (5) - 추상 팩토리 패턴언어/디자인패턴 2023. 9. 11. 14:09
1. 추상 팩토리 패턴이란? - 연관성 있는 객체 군이 여러개 있을 경우 이를 묶어 추상화 - 구체적 상황이 주어지면, 팩토리 객체를 통해 객체 군을 구현화 하는 생성 패턴이다. - 핵심은 제품군 집합을 타입별로 찍어낼 수 있다는 점이다. 1.1 추상 팩토리 패턴 구조 1. AbstractFactory: 최상위 공장 클래스 -> 여러 제품군을 생성하는 여러 메서드를 포함 2. ConcreteFactory: 서브 공장 클래스들은 타입에 맞는 제품 객체 반환하도록 메소드 오버라이딩 3. AbstractProduct: 각 제품군을 추상화 (대분류)한 인터페이스 4. ConcreteProduct : 각 타입 제품의 구현체 -> 팩토리를 통해 생성됨 5. Client : 추상화된 인터페이스만으로 제품을 받으므로,..
-
디자인 패턴 (4) - 팩토리 패턴언어/디자인패턴 2023. 9. 11. 12:28
1. 팩토리 메소드 패턴이란? - 객체 생성 고장 클래스로 캡슐화 처리하여 대신 생성하는 생성 디자인 패턴이다. - 즉 클라이언트가 직접 new 연산자를 통해 객체를 생성하는 것이 아닌, 제품 객체 생성을 도맡은 공장 클래스 생성 -> 이를 상속하는 서브 클래스에서 제품 생성 책임 - 객체 생성에 필요한 템플릿 미리 구성하고, 객체 생성에 관한 전처리나 후처리를 생성 과정을 다양하게 처리 1.2 팩토리 메서드 패턴 구조 1. Creator : 최상위 공장 클래스, 팩토리 메서드 추상화 -> 서브클래스가 구현하도록 한다. -> 객체 생성 처리 메서드: 객체 생성 관한 전처리, 후처리 템플릿 메소드 -> 팩토리 메서드 : 서브 공장 클래스에서 재정의할 객체 생성 추상 메서드 (각 서브 팩토리의 공통코드) 2..
-
디자인패턴 (3) - 데코레이터패턴언어/디자인패턴 2023. 9. 8. 16:42
1. 데코레이터 패턴이란? - 데코레이터 패턴은 대상 객체에 대한 기능 확장이나 변경이 필요할 때 - 상속이나 구현이 아닌, 객체의 결합을 통해 서브 클래싱을 대신 쓸 수 있는 구조 패턴이다. - 데코레이터 패턴을 이용하면 필요한 추가 기능의 조합을 런타임에서 동적으로 생성할 수 있다. - Component : 원본 객체와 장식된 객체 모두 묶는 역할 ( 모두를 하나의 타입으로 묶음 [공통 책임 수행]) - ConcreteComponent: 원본 객체 (추후에 데코레이팅 될 객체임) - Decorator: 추상화된 장식자 클래스 -> 원본 객체를 구성(의존)한 필드와 인터페이스의 구현 메서드 가짐 - ConcreteDecorator : 구체 장식자 클래스 * 변화할 수 있는 행동을 인터페이스화 -> 이를..