ShoppingMall Project 4

[Shop Project] HTTP vs HTTPS, SSL인증서 생성하기(2)

HTTPS를 개발환경(Localhost)에서 적용하는 방법Self-signed SSL 인증서 만들기keytool -genkeypair -alias myshop -keyalg RSA -keystore keystore.p12 -storetype PKCS12 -storepass 123456 -validity 3650HTTPS 적용을 위해 테스트용 인증서를 만드는 명령어이다. Java의 keytool 명령어로 공개키와 개인키 쌍을 생성하고, 이를 keystore.p12라는 파일에 저장했다. 생성된 kestore.p12파일을 resource 폴더에 위치시키면 스프링 부트에서 HTTPS 설정에 사용된다.2. application.yml 설정 확인server: port: 8443 ssl: enabled: t..

[Shop Project] HTTP vs HTTPS, SSL인증서 생성하기 (1)

쇼핑몰 웹사이트를 개발하다 보면, 회원가입, 로그인, 결제 등 민감한 정보를 다루게 된다. 이 때 http://가 아닌 https://를 사용하는 것은 보안에 중요한 영향을 끼친다.HTTP와 HTTPS의 차이를 공부한 다음 쇼핑몰 프로젝트에 HTTPS를 적용해보도록 하겠다. HTTP란 무엇인가?HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버가 대화하는 방식을 정의한 규약이다. 브라우저가 서버에 요청(Request)을 보내고, 서버가 응답(Response)을 보내는 과정에서 사용된다. 처음에는 나도 '규약'이라는 단어가 너무 어색했다. 또한 실체가 없고 너무 추상적인 개념이라 조금 이해하기 어려웠다. 그래서 공부한 이후에 내가 이해한 방향으로 최대한 쉽게 설명해보도록..

[Shop Project] 전략 패턴(Strategy Pattern)을 활용한 결제 방식 구현

문제 정의 및 도입 배경쇼핑몰 프로젝트에서 Customer는 다양한 방식으로 결제할 수 있다.일반 카드 결제포인트 결제쿠폰 할인 결제이러한 다양한 결제 로직을 PaymentService 내부에서 모두 처리하게 되면조건문이 복잡해짐새로운 결제 방식 추가 시 기존 코드를 수정해야 함한 메소드에서 여러가지를 테스트하기 어려움따라서, 전략 패턴(Strategy Pattern)을 통해 결제 방식의 구현을 외부로 위임하여 결제 방식 구현에 확장성을 높이려고 한다.추후에 로그인 방식의 확장도 이 방법을 통해 활용할 수 있을 것 같다. Strategy Pattern을 이용한 다양한 결제 방식 구현public interface Payment { public void pay(int amount, Customer cu..

[Shop Project] 팩토리 메소드 패턴(Factory Method Pattern)을 활용한 주문 방식 분리

현재 상황 및 문제 정의쇼핑몰 프로젝트를 함에 있어 유저가 장바구니에 담아서 결제하는 경우, 상품 상세페이지 칸에서 직접 주문하는 경우 2가지로 방식을 나눌 수 있다. 모든 주문 방식을 하나로 처리하게 되면, 의존성이 커지게 된다. 또한, 결제 페이지까지 가게되면 공통된 부분들이 많으므로 팩토리 메소드 패턴을 이용해서 주문을 구현할 수 있다.장바구니 기본 주문즉시결제에 따른 개별 주문 Factory Method Pattern을 이용한 주문 방식 구현주문 방식에 맞는 Factory 구현public interface OrderFactory { Order createOrder(Customer customer, List products);}public class CartOrderFactory impleme..