다시 웹, 백엔드로/스프링 46

Spring Multi Module

Spring Multi Module- 필요한 기능별로 Module을 생성- 레고를 조립하듯 필요한 Module을 조립- N개의 Module이 조립 되어 있는 프로젝트를 Multi Module 프로젝트라 함- ex) 로그인 Module, 인증 Module, DB 엔티티 Module 등 사용 이유는?- API 서버에서도 DB Entity가 필요하고 Batch 서버에서도 동일한 DB Entity가 필요하다면- 중복된 Entity를 Module화 시켜 사용하기 위해 Multi Module 프로젝트를 사용함- 독립적으로 관리 한다면 중복해서 관리해야하므로 Risk가 늘어남  Exception 핸들링- 언어 혹은 프레임워크에서 발생한 Exception은 반드시 Custom하게 Wrapping하여 처리해야함- @Re..

웹 서비스 확장 전략

웹 서비스 확장 전략  HA (고가용성) / Resilience (회복 탄력성) 웹 서비스 확장 전략실무 개발 유형솔루션 개발 (B2B) / SI 개발 / 서비스 개발 (B2C) (고가용성) 스케일업을 통한 서비스 확장Scale Up (스케일 업)기존 서버의 사양을 업그레이드해 시스템을 확장하는 것CPU나 RAM 등을 추가하거나 부품, 서버로 교환하는 방법 Scale Out (스케일 아웃)서버 여러대를 추가하여 시스템을 확장하는 것여러대로 나눠지기 때문에 각 서버에 걸리는 부하를 균등하게 해주는 로드밸런싱이 필수적으로 동반되어야 함   블루그린 배포블루를 구버전, 그린을 신버전으로 지칭하여 붙여진 이름으로 운영 환경에 구버전과 동일하게 신버전의 인스턴스를 구성한 후, 로드밸런서를 통해 신버전으로 모든 트..

Swagger를 통한 API 공개

Swagger를 통한 API 공개  Swagger란?개발한 REST API 를 편리하게 문서화 해주고, 이를 통해서 관리 및 제 3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트 Spring Boot 에서는 간단하게  springfox-boot-starter 를 gradle dependencies 에 추가함으로 사용할 수 있음 (2.x 사용)   ➡️3.x 대에서는 springdoc 을 사용하는게 좋음 주의할 점은 운영환경과 같이 외부에 노출되면 안되는 곳에는 사용할 땐 주의 해야함   Swagger Annotation   예제                   feat. 패스트캠퍼스 - Java/Spring 웹 개발 마스터 초격차

JUnit으로 테스트 하기

JUnit으로 테스트 하기 TDD (Test-Driven-Development)테스트 주도 개발에서 사용하지만, 코드의 유지 보수 및 운영 환경에서의 에러를 미리 방지하기 위해서 단위별로 검증 하는 테스트 프레임워크 단위테스트작성한 코드가 기대하는 대로 동작을 하는지 검증 하는 절차 JUnitJava 기반의 단위 테스트를 위한 프레임워크, Annotation 기반으로 테스트를 지원하며, Assert 를 통해 (예상, 실제)를 통해 검증 JacocoJava 코드의 코드 커버리지를 체크하는 라이브러리, 결과를 html, xml, csv 로 확인 가능    예제        REST API CRUD 테스트          테스트 커버리지 확인하기 test 가 실행 되어야함 (더블클릭으로 실행)         ..

Server(Client) to Server 연결

Server(Client) to Server 연결지금까지는 Server의 입장에서 API 를 제공하는 방법에 대해서 학습함Back-end 에서 Client로 다른 Server 와의 연결은 필수임     예제 GET- Client     - Server     POST- Client     - Server    exchange / genericExchange - Client      - Server                feat. 패스트캠퍼스 - Java/Spring 웹 개발 마스터 초격차

Spring Boot Filter 와 Interceptor

Spring Boot Filter 와 Interceptor  FilterWeb Application에서 관리되는 영역으로써 Spring Boot Framework 에서 Client 로 부터오는 요청 / 응답에 대해 최초 / 최종 단계의 위치에 존재요청/응답의 정보를 변경하거나 Spring에 의해서 데이터가 변환되기 전의 순수한 Client 의 요청 / 응답 값 확인 가능유일하게 ServletRequest, ServletResponse 의 객체 변환Spring Framework 에서는 request / response 의 Logging 용도로 활용하거나 인증 관련된 Logic 들을 해당 Filter 에서 처리선 / 후 처리함으로써 Service business logic 과 분리 시킴     Interce..