목록IT/개인 프로젝트 (3)
유비무환

스프링 부트로 만들고 있는 개인 프로젝트에 로그인 기능이 필요해서 개발을 진행했습니다. 로그인 기능을 개발한 이유는 특정 기능을 사용하기 위해선 회원 정보가 필요하기 때문입니다. 로그인을 한 이후에 고객은 자유롭게 애플리케이션을 이용할 수 있습니다. 만약 사이트를 이용하는 고객 입장에서 어떤 작업을 할 때마다 로그인을 반복해서 해야 한다면 더 이상 사이트를 이용하고 싶지 않을 겁니다. 이럴 때 세션을 통해 서버가 로그인 정보를 가지고 있음으로써 고객은 한 번의 로그인으로 사이트를 자유롭게 이용할 수 있게 됩니다. 물론 세션이 만료되기 전까지만요. 세션 불일치 지금까지 한 대의 서버에서 세션을 사용한 경우를 생각해봤다면 지금부터는 여러 대의 서버에서 세션을 사용할 경우를 생각해봐야 합니다. 클라이언트와 서..
개인 프로젝트를 진행하면서 서비스 이용을 위해서 로그인 기능을 추가하게 되었습니다. 주로 비즈니스 로직에 로그인 기능을 사용하게 되는데 예를 들면 '물건을 장바구니에 넣는다'는 행위가 있겠네요. 물론 비회원으로 서비스를 제공하는 사이트도 있겠지만 여기서는 논외로 하겠습니다. 로그인 기능은 고객뿐만 아니라 관리자도 자주 그리고 반복해서 사용하게 되는 기능입니다. 그렇다면 이렇게 중복해서 사용되는 기능을 어떻게 제거할 수 있을까요? 지금부터 단계별로 알아보도록 하겠습니다. 기본 로직 >> CartController.java(리펙토링 전) @PostMapping public HttpStatus create(@RequestBody CartItem cartItem, HttpSession session) { Str..

전략 패턴은 디자인 패턴의 한 종류로 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 서적에서는 디자인 패턴의 꽃이라고 말할 정도로 중요한 패턴 중 하나입니다. 전략 패턴은 3가지 요소로 구성됩니다. 전략 메서드를 가진 전략 객체 전략 객체를 사용하는 콘텍스트 전략 객체를 생성해 콘텍스트에 주입하는 클라이언트 즉, 클라이언트가 여러 가지 전략들 중 하나를 선택해서 콘텍스트에 주입하는 방식입니다. 개인 프로젝트를 진행하면서 겪었던 문제를 해결하는 과정에서 전략 패턴을 적용했던 사례를 소개하고자 합니다. 결제 인터페이스 구현 최근 결제 방법이 카드, 휴대폰, OO페이 등 굉장히 다양해지면서 코드를 작성할 때 확장성에 대한 고민이 생겼고 '어떻게 확장성을 높일 수 있는지'에 대한 질문이 따라 나왔습니다...