프로젝트/E-Commerce

프로젝트/E-Commerce

[5] AccountService (3) 구현

1. Controller @PostMapping("/login") public ApiResponse login(@Valid @RequestBody LoginRequest request) { //login service 구현( JWT ) return ApiResponse.success(accountManager.login(request.toCommand())); } @PostMapping("/signup") public ApiResponse signup(@Valid @RequestBody SignupRequest request) { //signup service 구현 return ApiResponse.success(accountManager.signup(request.toCommand())); } @Pos..

프로젝트/E-Commerce

[4] AccountService (2) SpringSecurity

Spring Security Spring security를 사용하여 인증/인가 시스템을 구현하였습니다. Spring Sercurity는 Dispatcher Servlet으로 요청이 도달하기 전 Filter 구간에서 동작합니다. ❓Spring Security를 사용한 이유 Client에서 보낸 요청에서 Cookie나 Header를 통해 Controller Layer에서 인증/인가를 구현할 수 있습니다. 하지만 요청한 기능에 대한 응답을 하는 Controller Layer에서 인증/인가를 구현하는 것 보다 Filter 단계에서 구현 하는 것이 더 효율적입니다. 또한 Spring Security는 인증/인가에 관한 일련의 행동들을 FilterChain을 Bean으로 등록함으로써 간편하게 구현할 수 있어 Spr..

프로젝트/E-Commerce

[3] AccountService (1) 설계

1. Api 설계 /account/signup : 회원 가입 API /account/login : 로그인 API /account/logout : 로그아웃 API /account/withdraw : 회원 탈퇴 API /account/reissue : AccessToken 재발급 API 2. Api FlowChart 3. 인증/인가 Session vs Token HTTP는 Stateless하기 때문에 매 요청은 Client의 정보를 가지고 있지 않습니다. 사용자가 기능을 하나씩 사용할 때 마다 인증을 해야하는 것은 정말 번거로운 일입니다. Server가 User를 특정하기 위해 사용하기 위해 Session과 Token을 사용합니다. Sesison vs Token Token 방식을 선택하게 된 이유는 인증/인..

프로젝트/E-Commerce

[2] System Architecture

MSA 구조 Monolithc 구조는 프로젝트의 각 서비스들이 하나의 서버에 배포되는 구조입니다. 만약 하나의 서비스에 문제가 생기면 전체 서버에 문제가 생기는 단일 장애 지점이 발생할 수 있습니다. 프로젝트가 상용화되면 각 서비스들은 모두 같은 트래픽을 감당하지 않을 것입니다. 하지만 monolithic은 하나의 서비스만 확장할 수 없는 구조입니다. 그러므로 MSA 구조를 채택하여 확장성을 높일 수 있었습니다. AWS Cloud 서버 배포는 AWS Cloud를 이용하여 사용하였습니다. AWS Cloud를 사용한 이유는 여러 회사에서 사용하는 만큼 안정성을 보장한다고 생각하였습니다. 그리고 네트워크 구성을 위한 많은 서비스를 제공하고 대규모 트래픽을 견디기엔 최적이라고 생각했습니다. ECS Fargate..

프로젝트/E-Commerce

(1) LastOrder Proejct 개요

Commerce 1. 소개 저의 Last-Order Project에 대해서 소개해드리겠습니다. 유통 기한이나 마감이 임박한 상품들을 구매자가 등록하고 주변에 거주하는 서비스 이용자들이 물건을 구매할 수 있도록 중개해주는 프로젝트입니다. 2. Service Prototype 다음은 초기 기능 프로토타입 입니다. - Account - 로그인/회원가입 기능 - 로그아웃/회원탈퇴 기능 - Shop - 상점 추가 - Item - 상품 등록/수정/삭제 - Cart - 장바구니 등록/수정/삭제 - Order - 주문 등록 - Pay - 결제 - Notification - Item 등록 시 제품을 keyword 등록한 유저에게 Notification 3. 프로젝트 목표 대규모 트래픽을 위해 확장성있는 프로젝트로 만든다..

poujis
'프로젝트/E-Commerce' 카테고리의 글 목록