백엔드/객체지향 | 디자인패턴
-
우테코 레벨 1이 끝나고 다시 보는 SOLID백엔드/객체지향 | 디자인패턴 2023. 4. 6. 00:55
https://hello70825.tistory.com/530 [SOLID] 객체지향 설계 원칙 우아한테크코스 프리코스를 할 때, 인터넷에서 뒤적뒤적 거리면서 공부를 했었지만 간단한 코드와 글만 봐서는 이해가 되지 않았었다. 그런데 지금 객체지향 책을 읽어보니 이해가 되어서 나중 hello70825.tistory.com 우테코 프리코스가 끝나고, 본 과정을 시작하기 직전에 SOLID에 대한 글을 포스팅 했었다. 하지만 이때에는 실제 코드로 적용을 하면 어떻게 될지 제대로 가늠이 안갔는데, 레벨 1을 진행하면서 어느정도는 알게 되었다고 말할 수 있다. TDD를 하면서 SRP가 무엇인지 제대로 알게 되었고, 체스 미션에서 다중 if문을 제거하면서 OCP가 얼마나 중요한지 알게 되었다. 이외에도 다른 원칙들이..
-
[디자인 패턴] 템플릿 메서드 패턴 (Template Method)백엔드/객체지향 | 디자인패턴 2023. 1. 29. 09:56
템플릿 메서드 패턴의 경우에는 일부 구현이 다르지만, 실행 과정은 동일한 코드를 여러개 작성할 상황에서 적용하면 코드 중복을 줄여주는 디자인 패턴이다. 만약 네이버페이와 카카오페이의 결제 방식이 다음과 같다고 해보자 [네이버페이] 1. 네이버 아이디와 비밀번호를 입력하여 인증한다. 2. 포인트 충전을 한다. (+ 네이버 포인트 추가 적립) 3. 결제한다. [카카오페이] 1. 카카오 아이디와 비밀번호를 입력한다. 2. 포인트 충전을 한다. 3. 결제한다. 템플릿 메서드 패턴은 두 가지 종류가 있다. - 실행 과정을 구현한 상위 클래스 - 실행 과정의 일부 단계를 구현한 하위 클래스 본인 인증은 아이디와 비밀번호를 입력하는 것은 같지만, 내부 인증은 카카오와 네이버가 서로 다르다. 아이디와 비밀번호를 입력하..
-
[디자인 패턴] 전략 패턴 (Strategy)백엔드/객체지향 | 디자인패턴 2023. 1. 29. 09:55
전략 패턴은 특정 행동을 할 수 있는 알고리즘이 여러가지일 때, 프로그램을 실행 중에 알고리즘을 선택할 수 있도록 하는 패턴이다. 위 문장만 보면 이해하기 어렵지만, 알고보면 간단한 패턴으로 개방-폐쇄 원칙(OCP)을 지킬 수 있도록 도와주는 디자인 패턴이다. 만약 어떤 물건을 사고 결제를 할 때, 현금 결제나 카드 결제, 카카오페이를 선택할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public class consumer { public void credit(int strategy, int money) { if (strategy == 1) { 현금 결제 } else if (strategy == 2) { 카드 결제 } else if (strategy == 3) { 카카오페이 결제 }..
-
[SOLID] 객체지향 설계 원칙백엔드/객체지향 | 디자인패턴 2023. 1. 28. 01:03
우아한테크코스 프리코스를 할 때, 인터넷에서 뒤적뒤적 거리면서 공부를 했었지만 간단한 코드와 글만 봐서는 이해가 되지 않았었다. 그런데 지금 객체지향 책을 읽어보니 이해가 되어서 나중에 까먹어도 최대한 쉽게 다시 이해할 수 있도록 정리를 해보았다. SOLID를 이해하려면 기본적인 객체지향 지식은 있어야 의미를 제대로 알 수 있다. 참고로 객체지향 설계는 지키면 지킬수록 좋은 이상적인 방법론이지 무조건 지켜야 한다는 것은 아니다. 그래서 완벽한 객체지향 설계가 아니더라도 최대한 객체지향 설계를 맞추게 된다면 유지보수하기 좋은 코드가 될 것이다. 1. 단일 책임 원칙 (SRP) 한 클래스는 하나의 책임을 가져야 한다. 객체지향 설계에서 중요한 것은 한 객체에 최소의 책임을 부여하는 것이다. 그래서 단일 책임..