본문 바로가기
관리자

Programming-[Base]/Design, Architecture

(4)
Strategy 패턴 w/ Spring 다형성 1. Strategy 패턴 사용 배경 및 목적 Strategy 패턴은 코딩을 하다보면 자주 쓰이는 type별 if 분기구문을 정리하고 고도화하고 싶을 때 사용하기 좋다. 아래와 같은 코드를 예로 들 수 있다. 요청으로 들어오는 GrantType의 값에 따라 body 값이 형태가 조금씩 바뀌는 형태이다. 이런 경우 formatted 내부 메서드를 공통화하여 메서드로 만들 수 없으므로 if문으로 분기해놓은 것인데, 코드가 길고 유연성이 떨어진다.String body;String grantType = tokenPayload.getGrantType();if(Objects.equals(grantType, GrantTypeEnum.AUTHORIZATION_CODE.getValue())) { body = """ ..
[작성중][헥사고날 아키텍처] - 1. 기본 개념, 도메인 헥사곤 아키텍처의 중요성보통 서비스가 고도화됨에 따라 누적 기능이 증가하는 속도가 느려진다. 도메인의 로직이 고도화되고 상호 작용이 늘어날수록 기능을 추가하는게 어려워지기 때문이다. 선행 설계에 드는 비용 대비 기능 추가 비용의 조화가 필요한 것이 원칙이지만, 아키텍처도 이런 tradeoff를 줄여주는 중요한 요소이다.  1. 헥사고날 아키텍처의 기본 개념 내부에서부터 도메인 헥사곤, 애플리케이션 헥사곤, 프레임워크 헥사곤으로 구성된다.   필요성 ⭐️내부에서 사용하는 Framework, 외부에서 붙이는 MYSQL 등에 의존하지 않는 프로젝트를 만들기 위함. 보통 많이 사용하는 Layered Architecture(repository- service - controller) 구조만으로는 각 레이어를 인터페이스화..
[작성중][잠정 중단] 2. Bridge - 예제 : 구체적 이해 디자인 패턴은 글로는 이해가 되나, 아직까지 실무적으로 와닿지는 않는 것 같다. 향후 기회가 된다면 다시 공부해보자. 예시 - Remote And Device 리모컨이 Abstraction이고 어떤 Device를 interface로 만든다. 리모컨으로 표현되는 Remote에서는 device를 참조값으로 갖는다. device가 아니라 animal을 참조값으로 갖는다면 동물이나 사람을 조종할 수도 있지 않을까!? 어쨌든 device의 구현체들이 radio, tv 등이다. 이것들이 실제 기능을 하게된다. 또한 사용자는 리모컨만 있으면 어떤 device든지 켜고 끄고, 소리를 키우거나 줄일 수 있다. 응용처 실제 Bridge 패턴은 크로스 플랫폼 애플리케이션, 여러 종류의 데이터베이스를 지원하는 서비스 등에서 ..
1. Bridge - 개념 : 기본 이해 Bridge는 추상(Abstraction)과 구현(implementation)으로 구조를 설계한다는 뜻이다. 자바 스프링에서는 추상과 역할을 분리한다. 정도로 이해하면 될 것 같다. 자바에서는 abstract - interface