#2 of Basic Concepts of Infra - URL, Protocol 내부 구성 공유 링크 만들기 Facebook X Pinterest 이메일 기타 앱 - 11월 02, 2020 URL and Inside of Protocol 공유 링크 만들기 Facebook X Pinterest 이메일 기타 앱
#5 of Spring - API 개발 고려사항 at MSA 환경 공유 링크 만들기 Facebook X Pinterest 이메일 기타 앱 - 7월 29, 2020 MSA 개념 및 API 개발 주의점개요MSA (Micro Service Architecture)각 기능에 맞게 서비스를 분리하여 모듈처럼 개발하는 설계 방식대규모 및 복잡성이 높은 프로젝트에 유용서비스를 부분적으로 스케일 아웃하기 좋음빌드 / 테스트 / 배포 시간을 다소 줄일 수 있음장애의 영향범위를 최소화 할 수 있음서비스 전체로 장애가 번지는 이슈 사전 방지고려사항서비스 간 API 호출로 인해 통신 비용 및 레이턴시 증가테스트 복잡도 증가데이터 관리 및 정합성 유지 중요API 개발 시 주의점가급적 RESTful 하게 API 요청 및 응답 방식을 규격화GET / 조회POST / 생성PUT / 수정DELETE / 삭제API 호출 통신 방식 종류RetrofitRestTemplate응답 규약 사전 정의JPA 사용 시 엔티티 구조 그대로 노출 X미리 정해둔 API 스펙에 맞게 필요한 데이터만 DTO 변환 후 전달주요항목 예시요청시간요청키 for 서비스 운영 이후 디버그 로그응답시간응답데이터성공 -> 조회 데이터 / "success" 문자열 등save 의 경우, PK 값예외 -> null실패 -> null상태값400 / 500 / 404 / 200 / 403 등 HttpStatusCode커스텀 응답 코드개발자들 간 합의 ex) 10자리의 서비스 통용 응답 코드 규칙커스텀 응답 메시지외부 서버와의 통신 결과 실패 응답 시해당 실패 메시지 그대로 리턴 or 가공해서 리턴서비스 간 기능 목적에 부합하는 설계 및 로직 구성예시Front 서비스service 단에서 비즈니스 로직 생성요청 데이터 가공호출할 API 결정view 단에 리턴해줄 응답 데이터 가공그 외 util 클래스들을 활용한 검증 및 체크 로직Back 서비스 (API)service 단에서 가급적 비즈니스 로직 지양select / 조회데이터 가공 없이 그대로 front 로 전달CRUD 와 관련된 최소한의 로직만 추가repository 단에서 기본 쿼리 / 네이티브 쿼리 구분 when JPA 사용기본 쿼리JpaRepository 상속 받아 그대로 활용findByIdfindAll네이티브 쿼리다소 복잡하거나 장문의 쿼리인 경우Custom 인터페이스 / Impl 클래스 별도 생성Custom 인터페이스findByUsername 등 개발자가 임의 쿼리 추가Impl 클래스Custom 인터페이스에 만든 메소드 구현QueryDSL 활용공통 로직 분리Abstract Class 및 Interface 를 통해 공통 로직 제어특히, service 단References개인 블로그MSA 설명https://www.samsungsds.com/global/ko/support/insights/msa.htmlQueryDSL 레퍼런스 문서http://www.querydsl.com/static/querydsl/4.0.1/reference/ko-KR/html_single/ 공유 링크 만들기 Facebook X Pinterest 이메일 기타 앱 댓글
#2 of Basic Concepts of Infra - URL, Protocol 내부 구성 - 11월 02, 2020 URL and Inside of Protocol 자세한 내용 보기
댓글
댓글 쓰기