전체 글
☰ Index Stock BookMark - Refactoring 변경 Stock BookMark - Refactoring 기존 코드 @Transactional public List findStockByTicker(StockDomainDto.StockSearchDto searchDto){ // ticker 로 조회 if(searchDto.ticker().isEmpty()){ throw new RuntimeException("TICKER 가 ..
☰ Index Workflow 실행을 위한 Tree 구조 사용하기 -->발단실행을 위한 순서문제점 Workflow 실행을 위한 Tree 구조 사용하기--- -->발단현재 개발하고 있는 Workflow 기능을 구현하려고 한다.Workflow 를 구현하기 위한 테이블을 간략히 설명하면 다음과 같다.Workflow테이블 명 : WorkflowId ( PK )title : worfklow 이름Node테이블 명 : NodeId ( PK )taskId ( FK ) : 실행할 작업Edge테이블 명 : EdgeId ( PK )soruceId ( FK ) : 시작되는 Node IdtargetId ..
☰ Index 1. Workflow 생성 로직2. Update 로직 시 문제 알아차림해결 ? 1. Workflow 생성 로직Workflow를 생성하는 과정은 Node와 Edge를 화면에서 만든 후, 이를 DB에 영구적으로 저장하는 단계로 이루어진다.**1.1. 임시 ID 사용 (화면)**Workflow 의 Node 의 Id 로 Node Id 필드가 있다.이 Node Id 는 Edge 의 source, target Id 로 사용하며 다음과 같다.Workflow Node, Edge 구조// Node{ nodeId: '임시데이터' ... }// Edge{ edgeId: sourceId : '노드 아..
☰ Index 개발 환경Mybatis Result Map 중첩 객체 Mapping 및 Grouping 실패 문제첫번째 시도문제점해결 방법핵심 정리 개발 환경SqlMapper ( Mybatis )Mybatis Result Map 중첩 객체 Mapping 및 Grouping 실패 문제오늘 회사에서 하나의 쿼리로 여러 테이블을 조인하여, 메인 객체와 그 안에포함된 객체들을 한번에 매핑하고 하나의 객체로 표현하려고 했다.데이터 구조를 예시로 들면 다음과 같다.데이터 구조- orders ( 주문 )- order_items ( 주문 상품 )- payments ( 결제 정보 )객체 구조public class OrderDet..
☰ Index 지금어떻게로직 지금Work Flow 기능을 추가하려고 한다.React Flow 를 써서 구현하고 있으며, Flow 의 순서에 따라 프로그램이 실행되는 로직이다.Work Flow 를 만들고 저장하기 전에 작업이 순환하여 무한하게 실행 되는 것을 막아야 한다는 것을 깨닫고,이에 따른 검증 로직을 구하려고 한다.어떻게구현할까 생각하다가 그냥 간단하게 DFS 를 사용하여 검증 로직을 구현하려고 한다.내용은 다음과 같다.로직const nodes = [{id:10},{id:202},{id:32},{id:72},{id:33}]const edges = [{source:10,target:32},{source:10..
☰ Index 복합 패턴여태껏 배운 디자인 패턴 복습MVC 와 복합 패턴 복합 패턴정의여러 패턴을 함께 사용해서 다양한 디자인 문제를 해결하는 방법!→ 패턴을 몇개 결합 한다고 무조건 복합 패턴이 되는 것이 아니다.→ 여러 가지 문제의 일반적인 해결법을 제시 해야한다.여태껏 배운 디자인 패턴 복습1. Adapter Pattern어떤 클래스를 수정없이, 특정 클래스로 변경해주는 디자인 패턴public interface Duck { public void quack(); // 꽥꽥 public void fly(); // 난다}public interface Turkey { public void g..
☰ Index 1. 일상에서 생각해 볼 수 있는 문제2. 논리적으로 풀어보기3. State Pattern 1. 일상에서 생각해 볼 수 있는 문제우리 생활 속에는 상태에 따라 수행되는 일들이 달라지는 경우가 많다.일상 생활에서 타는 대중교통을 예로 들어 보자3,000 원이 충전되어 있고 버스비가 3,000원을 넘긴다면카드 리더기에서는 잔액이 부족하다고 할 것이다.3,000 원 이상인 경우는 정상 적으로 결제가 될 것이고이미 결제가 완료된 경우에는 환승이 찍히고,환승까지 찍힌상태의 카드는 이미 처리된 카드라고 말하는 것을 들은 적이 있을 것이다.이를 참고하여 코드를 작성하면 다음과 같다.BusCard.javacla..
☰ Index 08. Template Pattern들어가기필요한 예시구현 과정Template Method 조금 더 자세히 들어가기두 가지 이상의 클래스에서 유사한 알고리즘을 공유해야 할 때 유용한 디자인 패턴이다.오늘은 이에 대해서 알아보려고 한다.필요한 예시앞서 말했 듯이 두 가지 이상의 클래스에서 유용하다고 적었는데,구체적으로 어떨때 필요할까 ?프로젝트 중에서 소셜 로그인 부분을 구현해야 한다고 해보자.우리가 흔히 하는 소셜 로그인은 네이버 , 카카오 , 구글 등 이 있을 것이다.이때 카카오의 경우 AccessCode 를 통해 AccessToken 을 받는 로직이다른 소셜로그인에 비해 ..



