Home
계발하는 개발자
Cancel

[Numble Backend Challenge] 6일차

Product의 Formula Query삭제 리뷰 참여자수, 별점 평균은 단일 상품에 대한 정보를 보여줄때만 필요한데 전체 상품 리스트를 가져올 때에도 Formula Query가 실행되기 때문에 List를 가져오는 Server의 동작이 매우 느려진다. Formula를 제거하고 단일 상품 요청에 대해서만 리뷰 참여자 수 와, 별점 평균을 따로...

[Numble Backend Challenge] 5일차

Category, Company 같은 카테고리의 상품 혹은 같은 판매자의 상품 리스트를 볼 수 있어야한다. Category의 경우 다음과 같은 계층 구조를 사용하였다. public class Category { @Id @GeneratedValue(strategy = GenerationTyp...

[Numble Backend Challenge] 4일차

RocketMembership관련 기존 authorit로 관리하려고 생각했던 RocketMembership을 User table의 rocket_membership을 통해 관리 멤버쉽 가입/해제 기능은 하나의 url로 요청을 전송하고 서버에서는 현재 요청한 user의 rocket_membership을 toggle 해준다. Home Page...

[Numble Backend Challenge] 3일차

Exception Handler DB 조회 실패 요청, Validation 실패에 대한 Exception을 모두 RuntimeException을 Throw하게 해두었다. Controller Advice를 통해 RuntimeExcpetion일때 BadRequest를 반환하는 하나의 Handler를 추가하였다. 우선 기능 구현에 초점을 맞추...

[Numble Backend Challenge] 2일차

Login spring security 기본 Login 페이지 대신 사용할 login.html 구현 Signup Post 요청 받을 UserDto @NoArgsConstructor @Getter @Setter public class UserDto { @Email(message =...

[Numble Backend Challenge] 1일차

요구사항 DB 설계 개발 환경 설정 Local Database MySql 8.0.20 및 Timezone설정(Asia/Seoul) Spring project (boot version : 2.5.6, java version : 1.8) 배포, 개발 환경 분리(appl...

Jenkins Publish over SSH Plugin 설정

Jenkins Publish over SSH Plugin 설정(AWS) Jenkins 시스템 설정 Jenkins에서 빌드 성공 후 EC2와 SSH연결을 통해 빌드 된 파일을 전송하고, 서버 실행 스크립트 실행을 위해 Publish over SSH Plugin을 먼저 설치하였다. 해당 플러그인을 설치하면 Jenkins 환경 설정에 아래와 같이 ss...

Jenkins Github 연동

Jenkins, Github 연동 Github의 특정 Branch에 push와 같은 작업이 실행 되었을 때 Jenkins에서 Clone받아 최신 버전을 빌드 및 테스트를 진행하고 배포하도록 하기위해 Github WebHook을 사용하였다. Jenkins Credential추가 GitHub token 생성 ...

Session

세션 서버는 로그인을 통해 요청을 보낸 사용자를 구분한다. 하지만 모든 요청마다 ID/PW를 확인할 수 없으므로 토큰을 발급하고 세션에는 토큰을 저장해 해당 세션이 유지되는 동안 로그인없이 토큰만 가지고 사용자를 인증한다. SecurityContextPersistenceFilter 세션이 유지되고 있는 동안 SecurityContex...

UserDetails 와 UserDetailsService

UserDetailsService, UserDetails구현 UserDetailsService와 UserDetails 구현체만 구현하면 스프링 시큐리티가 나머지는 쉽게 사용할 수 있도록 도움을 많이 주기 때문에 UserDetails와 UserDetailsService를 구현해야한다. Username password의 인증 방식 ...