[책 정리] 디자인 패턴 - 옵저버 패턴
·
책&강의 정리
1. 옵저버 패턴 옵저버 패턴(Observer Pattern)은 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴 여기서 주체란 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버들이란 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들을 의미한다. -> 위의 그림처럼 주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 한다. 1) 트위터 옵저버 패턴을 활용한 서비스 내가 어떤 사람인 주체를 '팔로우'했다면 주체가 포스팅을 올리게 되면 알림이 '팔로워'에게 가야한다. 2) MVC 패턴 주체라고 볼 수 있는 모델(model)에서 변경..
[책 정리] 디자인 패턴 - 전략 패턴
·
책&강의 정리
전략 패턴은 정책 패턴이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴 컨텍스트 프로그래밍에서의 컨텍스트는 상황, 맥락, 문맥을 의미하며 개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보를 말한다 1. 자바의 전략 패턴 어떤 것을 살 때 네이버페이, 카카오페이 등 다양한 방법으로 결제하듯이 어떤 아이템을 살 때 LUNACard로 사는 것과 KAKAOCard로 사는 것을 구현한 예제 결제 방식의 '전략'만 바꿔서 두 가지 방식으로 결제하는것 구현 import java.text.DecimalFormat; import java.util.ArrayList; import java.u..
[책 정리] 디자인 패턴 - 팩토리 패턴
·
책&강의 정리
시작하기전 질문 ✏️ 9. 팩토리 패턴이 무엇인가요? 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴입니다. 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴입니다. ✏️ 10. 팩토리 패턴은 그럼 왜 사용하나요? 객체 생성 로직을 추상화하여 유지보수성을 향상하고, 클라이언트 코드와 객체 생성을 분리하기 위해 사용합니다. 주로 다양한 객체 유형을 생성해야 하고, 생성 과정이 복잡하거나 변경 가능한 경우에 유용하게 사용됩니다. ✏️ 11. 팩토리 패턴은 어떻게 사용하나요? Java의 경우, 팩토리 메서드나 추상 팩토리 인터페이스를 정의하고, 서브클래스에서 구체적인 객체를 생성하도록 구현합니다. ✏️ 12...
[책 정리] 디자인 패턴 - 싱글톤 패턴
·
책&강의 정리
시작하기전 질문 ✏️ 1. 디자인 패턴에 대해 설명해주세요. 디자인 패턴은 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책입니다. 이는 코드에서 반복되는 디자인 문제들을 해결하기 위해 맞춤화할 수 있는 미리 만들어진 청사진과 비슷합니다. 디자인 패턴 계의 교과서로 불리는 GoF의 디자인패턴에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴(Creational Pattern)", "구조 패턴(Structural Pattern)", "행동 패턴(Behavioral Pattern)" 3가지로 구분하고 있습니다. 생성패턴에는 싱글톤 패턴, 팩토리 메서드 패턴, 빌더 패턴등이 있고 구조패턴에는 어댑터 패턴, 프록시 패턴 행동 패턴에는 전략 패턴, 옵저버 패턴 등이 있습니다. ✏️ 2. ..
[Java] 모던 자바 인 액션 Chapter 1 - 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가
·
책&강의 정리
자바는 처음부터 많은 유용한 라이브러리를 포함하는 잘 설계된 객체지향 언어로 시작했다. 코드를 JVM 바이트 코드로 컴파일하는 특징 때문에 자바는 인터넷 애플리케이션의 주요 언어가 되었다. JVM의 업데이트 덕에 JVM에서 실행되는 경쟁 언어는 더욱 부드럽게 실행될 수 있으며, 자바와 상호 동작할 수 있게 되었다. 또한 자바는 다양한 임베디드 컴퓨팅 분야도 장악하고 있었다. 하지만 프로그래밍 언어 생태계에 변화의 바람이 불었다. 프로그래머는 빅데이터라는 도전에 직면하면서 멀티코어 컴퓨터나 컴퓨팅 클러스터를 이용해서 빅 데이터를 효과적으로 처리할 필요성이 커졌다. 또한 병렬 프로세싱을 활용해야 하는데 이전의 자바로는 충분히 대응할 수 없었다. 그렇기에 자바는 변화하였다. 자바 8은 다양한 프로그래밍 도구와..
[Java / Spring] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 11. 파일 업로드
·
책&강의 정리
본 내용은 인프런 김영한님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의 내용을 정리한 것입니다. 📕 HTML 폼 전송 방식 📗 application/x-www-form-urlencoded HTML 폼 데이터를 서버로 전송하는 가장 기본적인 방법 Form 태그에 별도의 enctype 옵션이 없으면 웹 브라우저는 요청 HTTP 메시지의 헤더에 다음 내용을 추가 Content-Type: application/x-www-form-urlencoded 그리고 폼에 입력한 전송할 항목을 HTTP Body에 문자로 username=kim&age=20와 같이 &로 구분해서 전송 파일을 업로드하려면 파일은 문자가 아니라 바이너리 데이터를 전송해야 하므로 문자를 전송하는 이 방식으로 파일을 전송하기는 어..
마볼링
'책&강의 정리' 카테고리의 글 목록