분석설계고민 4

HttpStatus 잘 사용하는법

RestAPI 요청을 하면 HTTP status와 함게 응답을 내려준다. 이 글은 요청에 대한 값이 없을때 http status가 200인가,400인가 ,404인가에 대한 고민을 하다가 찾아본 결과를 정리하는 글이다. Resources와 representation의 차이 먼저 RFC에서 404 Not Found에 대한 정의를 보자 [https://tools.ietf.org/html/rfc7231#section-6.5.4](https://tools.ietf.org/html/rfc7231#section-6.5.4)The 404 (Not Found) status code indicates that the origin server did not find a current representation for the..

분석설계고민 2024.03.21

msa란? msa 고도화

msa 개념 MicroService Architecture(MSA)는 loosely coupled를 기반으로 여러 개의 작은 서비스로 구성되어 각 서비스가 독립적으로 개발되고 빠른 배포주기, 폴리그랏 프로그래밍, 관심사의 집중 등의 장점을 발휘해 Enterprise IT에서 가장 주목받고 있는 아키텍처이다. 폴리그랏 프로그래밍 : 단일 언어로 제공되지 않는 추가 기능과 효율성을 극대화 하기 위해 여러 언어로 코드를 작성하는 것 msa 장점 MSA를 도입하여 느슨한 결합, 관심사의 집중, 단일 책임 원칙, 빠른 배포주기, 폴리그랏, Scalability, 장애의 격리, 유연성, 확장성 등 여러 이점 msa 단점 Shared 관계형 데이터베이스 장점 사용 불가 데이터를 효율적으로 보관하고 조회/삭제 등 기능..

분석설계고민 2024.02.04

php에서 java로 전환하기(작성중)

10년 가까이 된 php코드를 java로 전환하면서 겪은 문제점, 개선점들을 정리하는중 1. table enum컬럼에 속지않기 table ddl을 봤을때 컬럼이 not null, enum이어서 엔티티에 enum타입의 객체로 선언했다. 그리고 db에서 A,B 등 의미없는 값을 사용하고 있었고 description조차 없어서 매번 컬럼과 상태값을 정리된 쪽지를 보고 매핑해서 찾고있었다. 이런 불편을 해소하고자 코드단에서는 명확한 의미를 가진 변수를 사용하여 두번 찾아보는 일이 없게 하기 위해 converter에서 객체를 매핑해주도록 개발했다. 하지만 문제는 enum타입이라고 너무 믿었던 나머지 실제 db값에 null, ""(null string)등 다른 값이 있었음. converter에서 convertToE..

분석설계고민 2024.01.29

트랜잭션에 대한 고민

상황 업무를 맡고있는 서비스가 msa구조로 가려고 했던것 같음. '했던것 같다'는 이유는 내가 알고있는 얕은 지식으로는 서비스(api)하나 당 db가 1~2개 붙어 있어야 함.(하나의 서비스 트랜잭션을 하나의 api가 담당하기 위해서이지 꼭 1~2개라는 뜻은 아님) 하지만 api를 아주 세부적인 함수단위로 나눠놓고 여러 api가 여러 db를 조회하는 신기한 구조. 문서 하나를 작성하기위해 db는 3개를 갱신하고(table은 더 있음), api도 4개를 요청해서 2개의 디비를 갱신해주어야 함(2개는 조회). -> 예로 문서의 unique id를 구하고 별도로 관리하는 테이블 및 api가 존재, 해당 문서의 서명 정합성 검증 api, 문서저장 api, 발급api, ems요청 api 등등 문서를 작성하는 하나..

분석설계고민 2023.12.29