본문 바로가기
반응형

Study/Design Pattern4

[OOP] 객체지향 설계 5원칙 SOLID (SRP, OCP) SOLID를 공부하는 이유 다른 개발자들은 몇 년의 경험이 쌓여야 잘 이뤄진 객체지향 설계에 대한 필요성을 느낀다 한다. 대부분의 개발자가 그렇게 말하는 것을 보았고 그 말은, 개발자 인생에서 반드시 익혀두어야 하는 개념임은 확실하다 생각했다. 그래서인지 공부를 해 보며 알 수 없는 부분들이 많았다. 굉장히 철학적이고 추상적으로 느껴졌다. 하지만 내용을 알면서 경험하는 것과 그렇지 않은 것은 큰 차이가 있다고 생각하기에 아직 걸음조차 떼지 못한 주니어 개발자이지만 앞으로의 경험을 대비해 지금이 SOLID를 공부하기에 효율적인 시기가 아닐까란 생각이 들었다. SOLID의 탄생 배경 컴퓨터의 연산은 자료구조를 담당하는 memory와 연산을 담당하는 cpu의 합작이다. 초기 이 memory와 cpu의 성능이 .. 2022. 8. 13.
SOLID SOLID란? 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것. SOLID의 5가지 내용 SRP : 단일 책임 원칙 OCP : 개방-폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP : 의존관계 역전 원칙 하나하나 뜯어 보자! SRP (single responsibility principle) 한 클래스는 하나의 책임만을 가져야 한다. 쉽게 말해 변화가 있을 때 최대한 적은 수정을 할 수 있어야 한다. OCP (Open/Closed principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 다형성을 최대한 활용해야 함. LSP (Liskov substitution principle) 프로그램의 속성을 변경하지 않고.. 2022. 3. 18.
[Design Pattern] 어댑터 패턴(Adapter Pattern) 어댑터 패턴이란? 어댑터를 다들 아실꺼라 생각한다. 어댑터는 기본적으로 이러한 친구들을 어댑터라 한다. 그렇다면 어댑터 패턴이란 무엇일까? 일반적으로 알고있는 어댑터와 비슷하다 생각하면 편할 듯 하다. 예시를 한번 들어보겠다. 비트코인 지갑을 컴퓨터에 연결할 수 있는 type-A의 USB에 저장해 놓았다. 그런데 나는 맥북밖에 없다;; 5분 뒤 비트코인이 반토막 날 것이라는 엄청난 비밀 정보를 들은 나는 지금 가격에 팔아야 하는데 지갑이 없으니 내가 비트코인을 가지고 있다는 것을 증명할 방법이 없다. 하지만 이를 가능하게 해줄 어댑터 라는 것이 있다. type-A의 USB를 type-C를 사용하는 맥북에 연결을 할 수 있게 해주는 위 사진의 어댑터 말이다. 정말 다행이다. 이렇게 실용적인 기기가 있다니!.. 2021. 8. 26.
[Design Pattern] 싱글톤 패턴(Singleton Pattern) with Golang 싱글톤 패턴이란? 싱글톤 패턴(Singleton Pattern)은 GoF가 정의한 23가지 디자인 패턴 중 생성 패턴에 속한다. 불필요한 객체의 생성을 없애고 단 한 번의 객체 생성으로 전역에서 효율적으로 객체를 사용할 수 있게 돕는 유용한 패턴이라 할 수 있다. 장점 한번의 객체 생성을 통해 그 객체를 재활용하기 때문에 불필요한 메모리를 사용하지 않는다. 처음 객체의 초기화 이후에는 따로 객체를 생성하지 않기에 읽어 들이는 시간이 크지 않다. 전역인 하나의 인스턴스를 사용함으로 써 객체의 데이터를 공유하기가 간편하다. 단점 멀티 쓰레드를 사용하는 작업을 진행할 시에 초기화가 여러 번 일어날 수 있다. 멀티 쓰레드를 사용하는 작업을 진행할 시에 데이터 수정에서 데이터 레이스가 일어날 수 있다. Go에서의.. 2021. 8. 26.
반응형