본문 바로가기

옵저버 패턴(Observer Pattern) 옵저버 패턴(Observer Pattern) - 옵저버 패턴은 JDK에서 가장 많이 쓰는 패턴 가운데 하나라고 한다...... - 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체(연락받기를 희망하는)들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(ont-to-many)의존성을 정의한다. - 'Head First Design Patterns' 책 중에서... 위에 정의에서 "한 객체의 상태가 바뀌면"에서 한 객체는 어떤 객체를 말하는 걸까? 옵저버 패턴은 '신문 구독'을 생각하면 이해하기 쉽다. 어떤 사람이 특정 출판사의 신문을 구독하기를 원한다. 따라서 구독을 등록을 하게 되고 출판사는 구독을 희망하는 사람에게 매일 새로운 신문을 배달한다. 이 때 출판사가 '한 객체'가 되며 구독을 ..
스트래티지 패턴 (strategy pattern) 스트래티지 패턴(strategy pattern) 알고리즘 군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지 패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 우선 이 정의는 내가 지금 공부하고 있는 'Head First Design Patterns'이란 책에서 정의하고 있다. 그런데 개인적으로는 잘 와닿지가 않는다. 조금 더 쉽게 이해해보자. 예를 들어 RPG 게임에서 캐릭터는 직업을 갖기 전 무기는 맨손이다. 캐릭터의 공통적인 행위(걷기, 앉기, 뛰어다니기) 등은 일반적으로 변하지 않는 행위(어떤 캐릭터든 동일한 행위)라고 보고, 캐릭터의 직업에 따라 들 수 있는 무기의 경우 검, 지팡이, 활, 총 등 직업에 따라 무기를 드는 행위는 ..
aws -> ec2 -> putty 삽질 '자바 웹 프로그래밍 next step' 책을 공부하던 중 ubuntu 환경에서 jdk.tar.gz 파일을 다운로드 하라는 예제가 있었다. wget을 통해 오라클 로그인을 한 상태에서 tar.gz 파일을 받으려 했으나, 401 인증 에러 및 Username/Password 인증 실패 에러가 떴다. 책에 나온 동영상을 보고 그대로 따라해도 나한테만 나는 에러에 당황을 했다. 리눅스를 잘 모르는 내가 구글링을 통해 추측할 수 있었던 것은, 1. /etc/sudoers 에서 해당 계정에 권한을 추가 했는데, 이 권한이 적용이 안됐나? 2. 오라클을 로그인 한 상태에서 jdk를 다운로드 받아야 하는데, 이 과정에서 뭔가가 잘못 됐나? 3. 해당 디렉토리에 어떤 권한이 없어서 제대로 다운을 못 받나? 대충 이정도..