GoF 디자인 패턴 수강 후기 (feat. Youtube)
안녕하세요. yeTi입니다.
오늘은 백기선님의 디자인 패턴 강의를 본 후기를 기록하려고 합니다.
수강 계기
디자인 패턴은 주기적으로 공부를 시도하는 영역인대도 불구하고 끝을 보기가 쉽지 않은거 같습니다.
같은 이유로 시도할 때가 되서 본게 아닌가 싶습니다.
싱글톤 패턴
싱글톤 패턴
은 프로그램내에 유일한 인스턴스를 가지게하고 싶을 때 사용할 수 있는 패턴입니다.
구현 방법으로 간단하게 syncronozed 키워드
를 사용하는 방법과
클래스 로드시점에 인스턴스를 생성하는 eager initialized
방법
인스턴스를 생성하는 시점에 syncronozed 를 활용하는 double checked locking
방법
static 키워드의 단일 인스턴스의 특성을 활용하는 static inner class
방법이 있습니다.
해당 강의에서는 언급하지 않았지만 Enum
을 활용하여 싱글톤 패턴을 구현할 수도 있습니다.
구현 방식은 개발자의 선호도에 따라서 double checked locking, static inner class, enum 중 선택해서 사용하시면 됩니다.
프록시 패턴
프록시 패턴
은 객체지향 원칙 중 SRP
와 OCP
를 유지하면서 클래스를 변경할 수 있는 패턴입니다.
즉, 기존 클래스의 기능을 변경하지 않으면서 새로운 기능을 추가할 수 있습니다.
구현 방법으로는 상속을 사용하는 방법과 인터페이스를 사용한 방법이 있습니다.
Java 에서는 런타임시에 프록시를 생성할 수 있도록 다이나믹 프록시
기능을 제공하도 있으며
스프링 프레임워크에서는 AOP와 같이 다이나믹 프록시를 활용한 서비스 추상화 계층을 제공합니다.
느낀점
그 동안은 디자인 패턴을 공부해 보면 원론적으로 그렇구나..
하고 느껴지는 경우가 많았는데요.
나름데로 자바와 스프링을 공부한 이후에 디자인 패턴을 봐서 패턴의 필요성이나 패턴의 구현 예시가 좀 더 실질적으로 느껴져서 매우 재미있게 봤습니다.
이후 인프런 강의로 좀 더 자세한 내용을 봐야할거 같습니다.