개요 이번 포스팅에서는 Jenkins를 사용하여 SpringBoot 애플리케이션에 CI/CD를 구축해 보겠습니다. CI/CD (Continuous Integration/Continuous Delivery) Pipeline 먼저 CI/CD Pipeline을 구상해 보겠습니다. 원격 저장소로 Push Github Webhook을 통해 Jenkins에 알림 Jenkins에서 Test & Build 진행 이후 Jenkins 서버에서 SSH로 애플리케이션 서버 접근 Shell을 실행하여 Jar 파일 배포 Jenkins + SpringBoot로 CI/CD 구축해보기(1) - 인스턴스 생성하기 본격적으로 진행하기 앞서 미리 준비해야 할 것들이 있습니다. 일단 이번 포스팅에서는 Jenkins 서버 및 애플리케이션 서버..
개요 저번 포스팅에서는 브랜치 API 중 IP 기반 국가 코드 조회 API를 개발 및 테스트하는 시간을 가졌었습니다. 이번 포스팅에서는 프로모션 API 중 사전예약 API를 개발 및 테스트 코드까지 작성하는 시간을 가져보겠습니다. 사전예약 API 사전예약 API는 위 사진처럼 사전예약에 참가하고 싶은 사용자의 개인 정보와 같은 정보들을 입력받아 저장/등록하는 API입니다. 사전예약은 게임이 출시하기 이전이나 특정 빅 이벤트가 있을 때 게임사의 웹페이지에 종종 등장하는 것을 자주 보셨을 겁니다. 유저가 사전예약에 참여하면 게임사는 이들의 정보를 바탕으로 차후에 아이템을 지급해 주기도 하고 내부에선 마케팅 지표로 사용하기도 합니다. 사전예약 API 같은 경우에는 보통 웹에서 많이 진행되기 때문에 사내에 웹팀..
개요 저번 포스팅에서는 프로젝트의 루트 테이블이 될 Game 엔티티를 설계했었습니다. 이번 포스팅에서는 브랜치 API 중 IP 기반 국가 코드 조회 API를 개발 및 테스트 코드까지 작성하는 시간을 가져보겠습니다. IP 기반 국가코드 조회 API IP 기반 국가코드 조회 API는 말 그대로 사용자의 IP에 따라 국가 코드를 조회해서 응답해 주는 API입니다. 국가 코드는 ISO 3166-1 alpha-2 (두 자리 국가코드) 형식을 따라 응답을 내려주도록 하겠습니다. 보통 위 형식을 가장 많이 사용하는 것으로 알고 있습니다. 세 자리 국가코드도 있고 MCC(모바일 국가 코드) 형식도 있지만 최대한 표준화된 방식을 따라보겠습니다. 이 API를 제작하는 이유는 보통 글로벌 게임에서 유저의 국가를 바탕으로 다..
개요 이번 글에서는 Request시에 @Vaild를 사용하여 @RequestBody와 @ModelAttribute로 DTO 또는 객체를 검증할 때 커스텀 예외처리를 적용하는 방법에 대해 이야기해 보려고 합니다. 1. @Valid 사용시에 @RequestBody에 대한 검증 예외가 발생하는 케이스 위 경우에는 POST 요청시에 총 3가지 예외 케이스가 발생하는 것을 확인할 수 있었습니다. MethodArgumentNotValidException(400 Bad Request) HttpMessageNotReadableException(400 Bad Request) HttpMediaTypeNotSupportedException(415 Unsupported Media Type) 첫번째 MethodArgumentN..