본 게시글은 Head First Design Pattern을 읽고 정리한 내용 입니다. 해당 소스코드는, https://github.com/so1gging/Design-Pattern를 참고하세요:) 0. 정의 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. 즉, 어떤 기능에 추가적으로 기능을 덧붙이고 싶은 경우, 그 기능들을 Decorator로 만들어서 덧붙이는 방식이다. 1. 문제상황 이 글을 보고 계시는 대부분의 분들이 카페에 한 번쯤 가보셨을 것이다. 카페에 가서 주문을 하는 상황을 한 번 상상해보자. "따뜻한 카페라떼 한 잔 주세요!", 옆에서 커피가 나오는 동안 기다리는데, 다른 손님이 들어와서 주문을 한다..
개인 기록용 포스팅 공부용으로 적합하지 않음. 오로지 참고용. node.js 는 https://nodejs.org/en/ 해당 사이트를 통해 다운로드할 수 있다. LTS버전은 안정성과 보안성에 초점을 두고 릴리즈하는 버전임으로 서버 운영에 주로 사용하는 버전 Stable버전은 업데이트를 자주하며 기능 개발과 개선을 우선으로 하기에 개발에 주로 사용하는 버전 설치 후 커맨트 창에서 node --version 을 입력하여 노드가 잘 설치되어있는 지 확인. 🤷♂️Node.js란? Node.js는 구글 크롬의 자바 크롬의 JavaScript 엔진(V8 Engine)으로 빌드 된 JavaScript 런타임(=프로그램이 구동되는 환경)이다. JavaScript는 일반적으로 크롬(Chrome)과 같은 브라우저에 내..
나중에 유용하게 쓸 일이 있을 것 같아서 따로 정리한다. 해당 게시글의 뼈대(?)는 https://blog.naver.com/jydev/220797272899블로그를 이다. 정말.. 이해하기 쉽게 설명해주셧고 JSP코드로 이루어져 있지만 이해만 했다면 java코드 및 서블릿로 변환하기 쉬울 것이다. 1. Paging Paging이란 게시판을 page단위로 나누는 행위를 의미한다. 모든 알고리즘은 직접 구현해보는 것이 가장 좋다. 특히, 페이징의 경우는 어느 게시판에서도 적용되는 알고리즘이기 때문에 남의 코드를 가져다 쓰면 매번 페이징을 할 때 마다 남의 코드를 가져다 써야 한다. 처음에는 남의 코드를 참고해서 작성하되, 그 코드를 자신의 것으로 만들어야 한다. 페이징 기능이 적용되지 않는다면 만약 게시판..
본 게시글은 Head First Design Pattern을 읽고 정리한 내용 입니다. 해당 소스코드는, https://github.com/so1gging/Design-Pattern를 참고하세요:) 0. 정의 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. 즉, 어떤 객체에 이벤트가 발생했을 때, 이 객체와 관련된 객체들 (옵저버들)에게 통지하는 패턴. 객체의 상태가 바뀌면 특정 객체에 의존하지 않으면서 상태의 변경을 관련된 객체들에게 통지하는 것이 가능해진다. 이 패턴은 Pub/Sub(발행/구독) 모델으로 불리기도 한다. 신문 구독방법을 생각해보자. 독자가 특정 신문사에 구독 시청을 하면 매번 ..