나를 기록하다
article thumbnail
[디자인 패턴] Prototype 패턴
Java/디자인 패턴 2023. 12. 12. 21:30

Prototype 패턴 Something 클래스의 인스턴스를 만들고자 할 때 우리는 다음과 같이 new라는 Java 언어의 키워드를 사용해서 클래스 이름을 지정하고 인스턴스를 생성한다. new Something() 이처럼 new를 사용해 인스턴스를 만들 때는 클래스 이름을 반드시 지정해야 한다. 그러나 클래스 이름을 지정하지 않고 인스턴스를 생성하고 싶을 때도 존재한다. 다음과 같은 경우에는 클래스로부터 인스턴스를 만드는 대신 인스턴스를 복사해서 새 인스턴스를 만든다. 종류가 너무 많아 클래스로 정리할 수 없는 경우 취급할 오브젝트 종류가 너무 많아서, 하나하나 다른 클래스로 만들면 소스 파일을 많이 작성해야 하는 경우 클래스로부터 인스턴스 생성이 어려운 경우 생성하고 싶은 인스턴스가 복잡한 과정을 거쳐..

article thumbnail
[디자인 패턴] Singleton 패턴
Java/디자인 패턴 2023. 12. 11. 12:52

Singleton 패턴 지정한 클래스의 인스턴스가 반드시 1개만 존재한다는 것을 보증하고 싶을 때 인스턴스가 하나만 존재한다는 것을 프로그램 상에서 표현하고 싶을 때 인스턴스가 하나만 존재하는 것을 보증하는 패턴을 Singleton 패턴이라고 부른다. 예제 프로그램 클래스 목록 이름 설명 Singleton 인스턴스가 하나만 존재하는 클래스 Main 동작 테스트용 클래스 클래스 다이어그램 Singleton 클래스 Singleton은 static 필드(클래스 변수)로 정의되고 Singleton 클래스의 인스턴스에서 초기화된다. 초기화는 SIngleton 클래스를 로드할 때 한 번만 실행된다. Singleton 클래스의 생성자는 private로 되어 있다. 이는 Singleton 클래스 외부에서 생성자 호출을..

article thumbnail
[디자인 패턴] Factory Method 패턴
Java/디자인 패턴 2023. 11. 28. 14:00

Factory Method 패턴 Template Method 패턴은 상위 클래스에서 처리의 뼈대를 만들고, 하위 클래스에서 구체적인 처리의 살을 붙였다. 이 패턴을 인스턴스 생성 장면에 적용한 것이 Factory Method 패턴이다. factory는 공장이다. 인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이 Factory Method 패턴이다. Factory Method 패턴에서는 인스턴스 생성 방법을 상위 클래스에서 결정하되, 구체적인 클래스 이름까지는 결정하지 않는다. 구체적인 살은 모두 하위 클래스에서 붙인다. 이로써 인스턴스 생성을 위한 뼈대(프레임워크)와 실제 인스턴스를 생성하는 클래스를 나누어 생각할 수 있게 된다. 예제 프로그램 예제 프로그램 설명 신분증 카드(..

article thumbnail
[모두의 네트워크] 8장. 네트워크의 전체 흐름 살펴보기
Network/모두의 네트워크 2023. 11. 27. 20:00

네트워크의 구성 웹 사이트에 접속할 때 그림과 같은 OSI 모델 상위 응용 계층부터 하위 물리 계층까지에서 어떤 일이 일어나는지 살펴보자. 다음 그림은 컴퓨터, 스위치, 라우터, 웹 서버로 구성된 네트워크이다. 이 구성은 몇 개의 네트워크로 나누어져 있을까? 192.168.1.0/24, 172.16.0.0/16, 192.168.10.0/24로 총 3개이다. 옆의 그림은 전체 모습을 OSI 모델로 나타낸 것이다. 컴퓨터의 데이터가 전기 신호로 변환되는 과정 OSI 모델의 전체적인 관점으로 데이터가 전달되고 처리되는 과정을 살펴보자. 구체적으로 컴퓨터의 웹 브라우저에 URL을 입력할 때부터 웹 서버에 도착할 때까지 이루어지는 OSI 모델의 캡슐화와 역캡슐화를 살펴보자. 컴퓨터 → 응용 계층으로 전달(캡슐화..

article thumbnail
[디자인 패턴] Template Method 패턴
Java/디자인 패턴 2023. 11. 27. 13:17

Template Method 패턴 템플릿이란 무엇인가? 구멍이 난 얇은 플라스틱 판과 같다. 어떤 형태의 문자인지는 알 수 있지만 실제로 어떤 문자가 될지는 구체적인 필기 도구가 정해지기 전까진 모른다. 사인펜, 연필, 색연필 등 어떤 필기구를 사용하더라도 쓰여진 문자는 템플릿의 구멍 모양과 같다. Template Method 패턴이란 무엇인가? 템플릿 기능을 가진 패턴으로, 상위 클래스 쪽에 템플릿이 될 메서드가 정의되어 있고, 그 메서드 정의에 추상 메서드가 사용된다. 따라서 상위 클래스의 코드만 봐서는 최종적으로 어떻게 처리되는지 알 수 없다. 상위 클래스로 알 수 있는 것은 추상 메서드를 호출하는 방법 뿐이다. 추상 메서드를 실제로 구현하는 것은 하위 클래스이다. 하위 클래스에서 메서드를 구현하면..

article thumbnail
[모두의 네트워크] 7장. 응용 계층
Network/모두의 네트워크 2023. 11. 22. 20:00

응용 계층의 역할 우리가 웹 페이지를 볼 때는 크롬과 같은 웹 브라우저를 이용하고, 메일을 보내고 받을 대는 Gmail 같은 메일 프로그램을 사용한다. 이렇게 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 도와준다. 이러한 애플리케이션은 서비스를 요청하는 측(사용자 측)에서 사용하는 애플리케이션으로 분류할 수 있다. 서비스: 네트워크나 애플리케이션이 제공하는 기능이나 동작, 정보 등 일반적으로 서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다. 웹 브라우저나 메일 프로그램은 사용자 측에서 사용하는 애플리케이션이니 클라이언트가 된다. 반면에 서비스를 제공하는 측인 서버에는 웹 서버 프로그램과 메일 서버 프로그램 등이 있다. 그리고 이러한 애플리케이션은 응용 계층에서 동작한다...

profile on loading

Loading...