전체 글(89)
-
오브젝트 팩토리
현재 client는 클라이언트로서의 책임과 PaymentService와 ExRateProvider 오브젝트 사이의 관계설정 책임을 두 가지를 가지 고 있다. 관심사의 분리가 필요하다 Clientpackage tobyspring.hellospring;import java.io.IOException;import java.math.BigDecimal;public class Client { public static void main(String[] args) throws IOException { PaymentService paymentService = new PaymentService(new WebApiExRateProvider()); Payment payment = paymen..
2024.07.03 -
관계설정 책임의 분리
런타임에 의존해서 사용해야 할 클래스의 오브젝트를 설정하는 책임이 어디에 있는가? 의존관계를 설정하는 클래스를 따로 추가한다. PaymentServicepackage tobyspring.hellospring;import java.io.IOException;import java.math.BigDecimal;import java.time.LocalDateTime;public class PaymentService { private final ExRateProvider exRateProvider; public PaymentService(ExRateProvider exRateProvider) { this.exRateProvider = exRateProvider; } public..
2024.07.03 -
인터페이스 도입
ExRateProviderpackage tobyspring.hellospring;import java.io.IOException;import java.math.BigDecimal;public interface ExRateProvider { BigDecimal getExRate(String currency) throws IOException;} WebApiExRateProviderpackage tobyspring.hellospring;import com.fasterxml.jackson.databind.ObjectMapper;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav..
2024.07.03 -
클래스의 분리
PaymentServicepackage tobyspring.hellospring;import java.io.IOException;import java.math.BigDecimal;import java.time.LocalDateTime;public class PaymentService { private final SimpleExRateProvider exRateProvider; public PaymentService() { this.exRateProvider = new SimpleExRateProvider(); } public Payment prepare(Long orderId, String currency, BigDecimal foreignCurrencyAmount) t..
2024.07.03 -
오브젝트와 의존관계
클래스 : 설계도오브젝트 : 클래스를 통해 만들어낸 실체, 클래스의 인스턴스자바에서는 배열(Array)도 오브젝트 의존관계
2024.07.02 -
PaymentService 개발
요구사항해외직구를 위한 원화 결제 준비 기능 개발주문번호, 외국 통화 종류, 외국 통화 기준 결제 금액을 전달 받아서 다음의 정보를 더해 Payment를 생성한다.적용 환율원화 환산 금액원화 환산 금액 유효시간PaymentService.prepare() 메소드로 개발Payment 오브젝트 리턴개발방법빠르게 완성해서 가장 간단한 방법을 찾는다.작성한 코드가 동작하는지 확인하는 방법을 찾는다.조금씩 기능을 추가하고 다시 검증한다.코드를 한눈에 이해하기 힘들다면 코멘트로 설명을 달아준다.환율 가져오기https://open.er-api.com/v6/latest/{기준통화} 이용이 서비스가 더이상 유효되지 않는 경우 사용할 다른 서비스 URL을 강의자료에서 확인JSON 포맷으로 리턴되는 값을 분석해서 원화(KRW..
2024.07.01