본문 바로가기
반응형

Server System/Software Architecture4

객체 지향적 사고, 객체 지향적 프로그래밍 Part 1. 객체 지향적인 프로그래밍을 한다고 했을 때 떠오르는 것들 SOLID Single Responsibility Principle Open Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle GoF Factory Pattern Strategy Pattern Decorator Pattern Visitor Pattern … 구조적(절차지향적) 프로그래밍 vs 객체지향 프로그래밍 이 둘의 가장 큰 차이점은, 객체 지향 프로그래밍에서는 “Shift of responsibility”(책임의 이동) 라는 개념이 적용되었다는 것이다. 그것이 핵심이다. 예를 들어, “모든 학생들에.. 2020. 10. 24.
싱글톤의 모든 것. Singleton A to Z 싱글톤의 모든 것. 까지는 좀 구라고. '이 정도 알면 어디가서 싱글톤이 뭔지는 안다고 할 수 있다' 정도가 아닐까 싶다. 1. 전통적인 싱글톤 방식 public class Singleton { private static Singleton uniqueInstance; // other instance variable in here public static Singleton getInstance() { if (uniqueInstance == null) { uniqueInstance = new Singleton(); } return uniqueInstance; } } 문제점: 멀티스레드 환경에서, if 문에 두 스레드(혹은 그 이상)가 동시에 들어가서 인스턴스가 두 개(혹은 그 이상)가 만들어질 수 있음. 2.. 2020. 5. 12.
Clean Architecture - 2. 클린 아키텍쳐의 핵심: Use Case 중요한건 Use case다. 클린아키텍쳐를 한마디로 표현하면, 그건 Use case다. 그럼 그 Use case라는게 뭘까. Use case란 내가 만들고자하는 시스템(혹은 서비스라고 하자)을 사용하는 클라이언트가 그 시스템을 통해 하고자 하는 것을 말한다. 예를 들어, '영화관' 이라는 서비스가 있다고 가정해보자. 영화관에서 손님(클라이언트)는 '영화 예매'를 할 수도 있고, '예매 취소'를 할 수도 있고, '환불', 심지어 '팝콘 사기'를 할 수도 있을 것이다. 이 때, 이런 '영화 예매', '예매 취소', '환불', '팝콘 사기' 등등이, '영화관'이라는 시스템에 사용자가 요청할 수 있는, '영화관'의 Use case이다. 클린 아키텍쳐에서 말하는 좋은 아키텍쳐란, 아키텍쳐(설계도)가 그 시스템이 .. 2020. 3. 4.
Clean Architecture - 1. 클린 아키텍쳐의 기본 철학 한 줄 요약. 들어가면서 인터넷을 검색해보면, 클린 아키텍쳐에 대한 수 많은 자료들이 있다. 대부분 성실하고, 또 자세하게 기술되어 있지만, (나도 그랬고) 초보자들이 한번에 그 방대한 양의 클린 아키텍쳐를 이해하기는 힘들거란 생각이 든다. 그래서, 클린 아키텍쳐를 몇 번에 나누어서 설명해보고자 하는데, 먼저 가장 기본인, "그래서 그 유명한 클린 아키텍쳐라는게 대체 뭔데? 그걸 하면 뭐가 좋은 건데?"에 대해서 이야기 해보고자 한다. 한 줄 요약 먼저 한 줄로 가장 중요한 클린 아키텍쳐의 목적과 철학에 대해 말하자면, "나의 핵심 비즈니스 로직(코드)와 나머지 툴들에 대한 결합도를 낮추겠다" 라는 것이다. 간단한 예시 예를 들어, '영화 예매를 도와주는 웹서비스'를 만든다고 가정해보자. 해당 웹서비스를 만들기 위해서.. 2020. 2. 29.
반응형