본문 바로가기

OOP3

[GoF Design Pattern] 1. 전략(Strategy) 패턴 [GoF Design Pattern] 1. 전략(Strategy) 패턴 흔히 디자인 패턴이라고 말하면, GoF(Gang of Four)라 불리는 소프트웨어 공학자 4명이 구체화한 23개의 디자인 패턴을 말한다. 디자인 패턴은 모듈 단위가 아닌 클래스 레벨에서 설계를 하는 기교이며 다음과 같이 목적(클래스, 객체), 범위(생성, 구조, 행위)에 따라 구분하기도 한다. 생성 패턴(Creational Pattern) : 객체를 생성하는 방법에 대한 패턴들이다. 생성 로직을 숨기면서, 사용 목적에 따라 어떻게 객체를 생성할 지에 대한 유연성을 제공한다. 특히 객체의 생성과 조합을 캡슐화하여 객체의 생성 또는 변경과정에서 프로그램 구조가 영향받지 않도록한다. ex) 팩토리 메서드(Factory Method) 패.. 2023. 5. 14.
[Clean Code] 3. 객체와 자료구조 [Clean Code] 3. 객체와 자료구조 객체와 자료구조 : 자료 추상화 자료구조 : 구체적으로 데이터를 그대로 보여준다. 즉 데이터를 있는 그대로 표현하는 것으로, 쓸데없이 멤버변수를 private으로 하고 public 한 getter와 setter를 만드는 것은 매우 무의미한 행위 (이런 행위를 한다고 추상화가 된다고 착각해선 안된다.) public class Point { public double x; public double y; } public interface Vehicle { double getFuelTankCapacityInGallons(); double getGallonsOfGasoline(); } 객체 : 추상적인 개념으로 함수를 통해 자료를 설명한다. 이 객체를 사용하는 사용자는 .. 2023. 3. 17.
[Clean Code] 1. 의미있는 이름과 함수 Clean Code 1 . 의미 있는 이름과 함수 이직 후 생각보다 큰 규모의 프로젝트를 담당하다 보니, 학부 때는 정말 그 의미가 크게 와닿지 않았던 것들이 이제야 왜 중요한지 알게 되어가는 중이다. 알게 되어간다는 말도 오만한 표현일 것 같을 정도로 생각보다 정말 많이 중요하더라. 특히 아키텍처와 패턴을 다루기 이전, [코드] 라는 것은 개발자 간 일종의 대화로도 볼 수 있다. 코드를 명료하게 표현하지 못한다면 대화를 못하는 개발자라 할 수 있다. 때문에 먼저 클린한 코드란 무엇인가부터 공부하고자 한다. (패턴에 대해, 아키텍처에 대해 수많은 임시 저장 글들이 있지만, 클린코드부터가 역시 순서상 맞는 것 같다) 사실 책은 입사 초에 읽었지만 정리가 귀찮았는데, 프로젝트가 조금 여유가 생겨 정리하면서 .. 2023. 2. 26.