전체 글(89)
-
애플리케이션 서비스 도입
애플리케이션 서비스@Service 빈으로 구성Application/Service 계층에 존재애플리케이션/도메인 로직 - 도메인 오브젝트/엔티티 활용인프라 서비스의 도움이 필요가장 중요한 도메인/애플리케이션/비즈니스 로직인프라 레이어에 존재하는 기술에 가능한 의존하지 않도록 만들어야 함PaymentService - ExRateService에 적용된 DIP
2024.07.13 -
서비스 추상화
서비스는 일반적인 용어라서 쓰이는 곳에 따라 다른 의미를 가진다 서비스의 종류애플리케이션 서비스(application service) : 애플리케이션 계층에 존재해 주로 @Service라는 애노테이션이 붙음도메인 서비스 (domain service) : 비즈니스 로직을 엔티티에다가 집어넣은 경우인프라 서비스 (infrastructure service) : 도메인/애플리케이션 로직에 참여하지 않는, 기술을 제공하는 서비스, 메일 캐시, 트랜잭션, 메시징, ...
2024.07.13 -
JPA를 이용한 Order저장(예외에 대해 살펴보기)
스프링의 데이터 엑세스 예외처리 방법JDBC SQLExceptionJDBC를 기반으로 하는 모든 기술에서 발생하는 예외JDBC, MyBatis, JPADB의 에러코드에 의존하거나, 데이터 기술에 의존적인 예외처리 코드DataAccessExceptionDB의 에러코드와 데이터 액세스 기술에 독립적인 예외 구조적절한 예외 번역(exception translation)도구를 제공
2024.07.12 -
예외
예외예외는 정상적인 프로그램 흐름을 방해하는 사건예외적인 상황에서만 사용많은 경우 예외는 프로그램 오류, 버그 때문에 발 예외가 발생하면 예외 상황을 복구해서 정상적인 흐름으로 전환할 수 있는가?재시도대안버그인가?예외가 발생한 코드의 버그인가?클라이언트의 버그인가?제어할 수 없는 예외상황인가?예외를 잘못 다루는 코드예외를 무시하는 코드 (catch문에 아무것도 하지 않음,단순히 프린트만 찍는것)무의미하고 무책임한 throws 예외의 종류ErrorException(checked)RuntimeException (unchecked) Error시스템에 비정상적인 상황이 발생OutOfMemoryErrorThreadDeath 체크예외(Exception)catch나 throws를 강요초기 라이브러리의 잘못된 예외 설..
2024.07.12 -
Spring이 제공하는 템플릿
RestTemplateHTTP API 요청을 처리하는 템플릿HTTP Client 라이브러리 확장 : ClientHttpRequestFactoryMessage Body를 변환하는 전략 : HttpMessageConvertor ClientHttpRequestFactoryHTTP Client 기술을 사용해서 ClientHttpRequest를 생성하는 전략SimpleClientHttpRequest(HttpURLConnection)JdkClientHttpRequest (HttpClient)NettyClientRequestJettyClientRequestOkHttp3ClientRequest doExecute()HttpApi 호출 workflow를 가지고 있는 템플릿 메소드로 두 개의 콜백을 받음RequestCal..
2024.07.11 -
ApiExecutor 콜백과 메소드 주입
ApiExecutorpackage tobyspring.hellospring.api;import java.io.IOException;import java.net.URI;public interface ApiExecutor { String execute(URI uri) throws IOException;} SimpleApiExecutorpackage tobyspring.hellospring.api;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URI;import java.util.stream.Collec..
2024.07.11