본문 바로가기

Develop/Design25

[Design Pattern] 팩토리 패턴 총정리 Factory를 활용한 패턴은 객체생성의 역할을 별도의 클래스에 위임하는 것이 가장 큰 목표이다. 흔하게 실무에서 사용하는 패턴 중 팩토리를 사용하는 패턴은 팩토리 메서드 와 추상 팩토리 패턴이다. 우선 패턴을 제대로 알기전에 기본적으로 팩토리가 어떻게 사용되는지를 알아보자. 1. Simple Factory 팩토리의 기본적인 개념은 생성자 호출을 별도의 클래스인 팩토리에게 시킴으로써 호출하는 쪽이 객체의 생성자에 직접 의존하지 않도록 하는것이다. 만약 직접 의존하는 경우는 나중에 코드가 변경될 때 수정해야하는 코드의 범위가 늘어나게 된다. 간단한 예를 통해 구체적으로 알아보자. 예시는 결제시스템 개발을 위해 신용카드 정보를 생성하는 것으로 가정한다. public interface CreditCard { .. 2022. 8. 23.
[Clean Architecture] 경계 간 모델 매핑 전략 이전 포스팅에서 헥사고날 아키텍처에 대해 포스팅을 좀 했었다. https://devkingdom.tistory.com/341 [Clean Architecture] 계층형 아키텍처의 문제점을 해결하는 육각형 아키텍처(헥사고날 아키텍처) 얼마전에 계층형 아키텍처의 문제점에 다뤘었다. https://devkingdom.tistory.com/340 [Clean Architecture] 계층형 아키텍처의 문제점 최근에 "만들면서 배우는 클린 아키텍처"라는 책을 정독했다. 요즘 웹 아 devkingdom.tistory.com 오늘은 User 도메인에서 비밀번호 변경 로직을 처리하는 상황가정하고 각 계층의 모델을 어떻게 매핑할 지에 대해 포스팅 해보도록 하겠다. 매핑하지 않기 전략 매핑하지 않기 전략은 말그대로 매피.. 2022. 4. 25.
[Clean Architecture] 육각형 아키텍처 - 영속성 계층 구현 이전 포스팅에서 웹 계층인 Controller를 어떻게 설계하면 좋을지를 다뤘었다. https://devkingdom.tistory.com/343 [Clean Architecture] 육각형 아키텍처 - 웹 어댑터 (컨트롤러) 이전 포스팅에서 육각형 아키텍처가 무엇인지? 그리고 패키지 구조는 어떻게 잡아야하는지? 등을 포스팅했었다. 혹시 포스팅을 놓쳤다면 아래 링크를 통해 공부하고 오면 좋을듯하다. 1.육각형 devkingdom.tistory.com 오늘은 코어를 중심으로 (그림상) 오른쪽에 있는 영속성 계층을 어떻게 설계하면 좋을지에 대해 조금 다뤄보도록 하겠다. 보통 MVC 관련 프로젝트르 하다보면 하나의 딜레마에 빠지게 된다. 바로 데이터베이스 주도 설계를 하게 되는 것이다. 이는 일반적으로 사용하.. 2022. 4. 17.
[Clean Architecture] 육각형 아키텍처 - 웹 어댑터 (컨트롤러) 이전 포스팅에서 육각형 아키텍처가 무엇인지? 그리고 패키지 구조는 어떻게 잡아야하는지? 등을 포스팅했었다. 혹시 포스팅을 놓쳤다면 아래 링크를 통해 공부하고 오면 좋을듯하다. 1.육각형 아키텍처란 무엇인가? https://devkingdom.tistory.com/341 [Clean Architecture] 계층형 아키텍처의 문제점을 해결하는 육각형 아키텍처(헥사고날 아키텍처) 얼마전에 계층형 아키텍처의 문제점에 다뤘었다. https://devkingdom.tistory.com/340 [Clean Architecture] 계층형 아키텍처의 문제점 최근에 "만들면서 배우는 클린 아키텍처"라는 책을 정독했다. 요즘 웹 아 devkingdom.tistory.com 2. 육각형 아키텍처의 패키지 구조 https:.. 2022. 4. 16.
[Clean Architecture] 육각형 아키텍처 (헥사고날 아키텍처) 패키지 구조 지난번 포스팅에서 간단하게 육각형 아키텍처에 대해 포스팅을 했었다. https://devkingdom.tistory.com/341?category=838914 [Clean Architecture] 계층형 아키텍처의 문제점을 해결하는 육각형 아키텍처(헥사고날 아키텍처) 얼마전에 계층형 아키텍처의 문제점에 다뤘었다. https://devkingdom.tistory.com/340 [Clean Architecture] 계층형 아키텍처의 문제점 최근에 "만들면서 배우는 클린 아키텍처"라는 책을 정독했다. 요즘 웹 아 devkingdom.tistory.com 오늘은 육각형 아키텍처를 설계할 때 패키지 구조를 어떻게 잡아야할 지에 대한 포스팅을 해보려 한다. 육각형 아키텍처 구조에서 핵심적인 부분은 엔티티, 유스케이.. 2022. 4. 12.
[Clean Architecture] 계층형 아키텍처의 문제점을 해결하는 육각형 아키텍처(헥사고날 아키텍처) 얼마전에 계층형 아키텍처의 문제점에 다뤘었다. https://devkingdom.tistory.com/340 2022. 4. 10.
[Clean Architecture] 계층형 아키텍처의 문제점 최근에 "만들면서 배우는 클린 아키텍처"라는 책을 정독했다. 요즘 웹 아키텍처에서 한번쯤은 들어보셨을 "헥사고날(육각형) 아키텍처에 대한 내용을 알차게 알려주는 책인데, 시간나면 한번쯤 읽어보시길 권해드린다. 오래오래 기억하고 싶어 블로그에 한 챕터씩 중요하다 생각되는 내용들을 정리해볼까한다. 오늘은 1 챕터의 "계층형 아키텍처의 문제는 무엇일까?" 에 대한 내용을 정리해보겠다. 계층형 아키텍처는 아직도 많이 사용되는 아키텍처 방식이다. 심지어 지금 근무하고 있는 회사에서도 이 아키텍처 방식을 사용하고 있다. 1. 계층형 아키텍처는 데이터베이스 주도 설계를 유도한다. 웹 - 도메인 -영속성 계층으로 이루어진 계층형 아키텍처에서는 결국 웹계층은 도메인에, 도메인 계층은 영속성에 의존하기 때문에 결국 데이터.. 2022. 4. 10.
클린코드를 위하여 먼저 글을 시작하기전에 내 자신에게 큰 박수를 보내고 싶다. 정말 부끄러운 얘기지만 여태까지 대학생 시절을 포함해서 10년 넘게 개발하는 삶을 살고 있지만, 정작 처음부터 끝까지 관련 전공 서적을 완독한적은 없었던 것 같다. 올해는 적어도 두, 세 달에 한권 씩은 전공 서적을 완독해보자는 목표를 세웠는데 드디어 처음으로 완독한 책이 생겼다. 바로 "클린코드"이다 겨우 한번 읽은 거 가지고 그러냐 하실 수도 있지만은 ㅎㅎ 저에게는 큰 의미이니 너그럽게 이해해주시길 바란다. 책을 읽고 실무에서 언제든 클린코드를 적용 할 수 있게 나름대로 정리를 좀 해보고자 한다. 1. 클린코드의 철학 훌륭한 개발자는 나쁜 코드를 지양한다. 나쁜 코드는 팀의 생산성을 저하시키고 , 나쁜코드는 기술 부채를 만들어 수정이 어렵게.. 2022. 1. 28.
동시성 프로그래밍에 대하여 백엔드 개발자라면 동시성을 고려한 프로그래밍을 할 줄 알아야한다. 다만 아직 학생이거나 주니어 레벨에서는 이러한 동시성을 이해하기가 쉽지는 않다. 프론트 단의 개발과는 다르게 백엔드 쪽은 명확하게 구조를 이해하기가 쉽지 않다. 서버라는 것 자체가 내용이 방대하고, 구조가 복잡하기 때문이다. 분명 동시성을 이해하는 것은 실무에서의 경험이 어느정도 해결해주기는 하나 그래도 어느정도의 공부가 수반되어야 동시성을 잘 이해할 수 있다. 여러분들의 동시성에 대한 이해를 돕기 위해, 동시성에 대한 내용을 좀 정리해 보았다. 동시성 프로그래밍에 대한 오해 1. 동시성은 항상 성능을 높여준다? 동시성은 항상 성능을 높여주진 않는다. 때로 성능을 높여줄 뿐이다. 구체적으로 말하면 대기시간이 아주 길어 여러스레드가 프로세서.. 2022. 1. 19.