본문 바로가기

코딩4

로버트 마틴이 말하는 Factory Pattern 이란 무엇인가? Photo by Joshua Sortino on Unsplash 반 버논의 도메인 주도 설계에서 팩토리 패턴에 대한 설명이 나옵니다. 반버논이 말하는 팩토리 패턴이란? 이 때와 반버논 책과 중복된 내용도 있지만, 평소 팩토리패턴에 대해서 생각하던 부분과 마침 책에서 다시와서 읽으면서 느낀바를 다시금 정리하고자 관련 내용을 적습니다. 배경 클린 소프트웨어 라는 책은, 객체지향프로그래밍 원칙인 SOLID에 입각한 샘플 프로젝트 코드와, 물론 SOLID도 설명하구요. 마찬가지로 SOLID 원칙 중, 의존 관계 역전 법칙(DIP)에 해당하는 부분을 설명하기 위해 팩토리 패턴을 언급합니다. 개인적으로, DIP를 위해서 다양한 방법이 존재하는데, 템플릿 메소드 패턴- 전략패턴등 여러 방법이 있다고 생각합니다. 팩토.. 2020. 9. 9.
PayrollSystem 프로젝트에서 디자인 패턴은 어떻게 사용되었는가?(feat. 클린 소프트웨어) 들어가기 '클린 소프트웨어 - 로버트 마틴 저자' 에서 payroll 아키텍처 코드를 보고... Slipp 스터디에서 디자인패턴에 대한 학습을 하면서, 클린 소프트웨어 책을 학습하고 있습니다. (이 책의 좋은 점은 따로 또 포스팅하겠습니다.) 책의 일부분으로 로버트마틴이 PayrollSystem 코드가 나오는데, 그 부분을 보고 이해한 부분을 적어볼까합니다. 어떻게 만들어졌을가? 이 책에서는 총 5가지의 명세가 나오고 이를 해결하기 위해 다음과 같은 패턴을 활용합니다. 1. 커맨드 패턴와 액티브 오브젝트 패턴 2. 템플릿 메서드와 스트레티지 패턴 3. 퍼사드 패턴 4. 싱글톤과 모노스테이트 패턴 5. 널 오브젝트 패턴 코드에서 어떻게 사용되고 있는지 확인해봅시다. 각 패턴에 대한 자세한 설명은 스킵하고,.. 2020. 9. 9.
adapter 패턴, 이렇게도 쓰일수 있구나(with IDDD) 디자인 패턴의 착각 중에 모든 코드는 디자인 패턴에 나온 코드가 마치 책에서 나온 내용처럼 나올 것이라는 부분에 존재합니다. 오늘도, 다시한번 위와 같은 디자인 패턴의 착각을 느낍니다. IDDD_sample 코드 중, 서비스 단에서 팩토리의 사용 예를 설명하는 부분에서 흥미로운 부분을 발견했습니다. 레이어드 아키텍처에서 TranslatingCollaboratorService.java 의 존재는 이름과 같이 Collaborator 라는 협력 객체를 해석시켜주는 역할을 하는 클래스입니다. 어떻게 해석할 수 있는가에 대한 질문은, 이 글에서 논외이기 때문에 제외하겠습니다. 우리가 흔히 아는 adapter 패턴이 사용하는 client입장에서는 factory로서 동작할 수 있다는 것이 이 글의 요지입니다. 그럼 .. 2020. 8. 23.
코딩은 어떻게 해야하는가? - 1 항상 피플웨어라는 책을 교보문고에서 찾아본다면, 그 책은 개발서적 가운데에 꽂혀있다. 왜일까? 왜 '피플웨어' 책은 개발서적 사이에서 '나를 읽어주십시오~' 하는걸까? 실제 그책은 경영/관리 주제로 분리되어 있음에도 불구하고? 그 답은 내마음대로 정의내려보고싶다. 심지어 '피플웨어' 책은 10년전에 우리나라가 개발은 3D라 외치던 시절에 출간되었다. 왜일까? 그 당시 프로젝트 하나라도 더 빨리 출시하기 위해 사람을 갈아?서 마셨다는 시절에 미국에서는, 이미 피플웨어라는 책이 출시되 많은 인기가 있었다. 어쩌면, 사람이 우선순위라는 사실에 대해서 인지하고 있었을 수도 있다. "인간 관계는 복잡할 뿐만 아니라 그 파급 효과가 절대로 깔끔하고 명확하지 않지만 업무의 어느 측면보다 더 중요하다." - 피플웨어 .. 2020. 7. 25.