[LOATODO] 회원가입 후 캐릭터 등록 테스트 코드 작성 + 리팩토링
·
Project/LOATODO
1. 서론로아투두는 회원 가입 후 캐릭터 등록을 따로 두고 있습니다.@ApiOperation(value = "1차 회원가입 이후 캐릭터 추가", notes="대표캐릭터 검색을 통한 로스트아크 api 검증 \n 대표캐릭터와 연동된 캐릭터 함께 저장")@PostMapping("/character")public ResponseEntity saveCharacter( @AuthenticationPrincipal String username, @RequestBody SaveCharacterRequest request) { if (username.equals(TEST_USERNAME)) { throw new IllegalStateException("테스트..
[LOATODO] Spring Custom Annotation으로 구현하는 사용자별 중복 요청 제한
·
Project/LOATODO
1. 서론프로젝트를 하다보면 특정 메소드의 로그를 쌓거나,반복적인 요청을 방지하거나,공통 변수를 받거나 등등공통적으로 작동해야하는 기능을 개발해야할 때가 있습니다. 그렇다면 이러한 기능을 어떻게 개발할 수 있을까요?가장 쉬운 방법은 필요한 곳에 하나씩 개발해서 추가하는 것 입니다.하지만 그렇게 되면 중복코드가 많아질 것이고, 코드를 수정해야한다면 모든 코드를 수정해야 하는 불편함이 존재할 것입니다. 이번 글은 그러한 불편함을 줄인 방법에 대해 글을 쓰려고 합니다.  2. 다수 요청 방지 Annoatation 개발2 - 1) Annotation Value 개발@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Rat..
[LOATODO] 스프링 개발자의 NestJS 찍먹 후기
·
Project/LOATODO
1. 나름 안정적인 운영개발을 하다보면, 익숙한 환경을 벗어나 새로운 환경을 시도해보고 싶을 때가 있습니다. 백엔드 개발자가 갑자기 프론트엔드를 한다던가... 앱 개발을 한다던가.... 국비지원 자바로 시작해서 스프링으로 넘어가고,로아투두도 그렇고 현재는 주로 스프링 부트를 사용해 백엔드 개발을 해오고 있습니다. 최근에 느낀점은새로운 프로젝트를 시작해도, 이미 만들어진 틀이 있어spring starter에서 Security, JPA, QueryDSL 등 필요한 라이브러리 가져오고대충 config 파일 만들어서 세팅해주고 도커 파일 만들고 AWS에서 설정 해주면 CI/CD 들어가서 배포까지 깔끔하게 됩니다. 이렇게 하면 t4g.micro EC2를 예약 인스턴스를 구매했다는 가정하에하루에 2달러 내외의 서버..
[LOATODO] 모집 게시판 API 리팩토링
·
Project/LOATODO
1. 서론로아투두 새로운 기능으로 "모집 게시판"을 개발하는 중이다. 전형적인 게시판 형식이기 때문에 API 개발에 그렇게 큰 시간이 들지않았다.List 조회하는 Get API상세내용 조회하는 Get API글작성 Post API글수정 Put API글삭제 Delete API 2. 문제메인화면 데이터는 각 카테고리별 최신 5개의 데이터를 불러온다.만약 이 데이터를 앞서 개발한 List 조회하는 Get API로 불러온다면새로고침 한번에 6번의 API 요청이 필요하다!! 기획할 때 놓쳐서 새롭게 API를 하나 개발하였다.  3. 개발1) SQL 작성원하는 형태의 데이터를 불러오기 위한 SQL문을 작성해본다.카테고리 별로 최신 5개의 데이터를 불러와야하기 때문에, UNION ALL을 사용해서 작성해보았다.( ..
[LOATODO] 프로젝트 구조 변경 계층형 -> 도메인형 (진행중)
·
Project/LOATODO
1. 서론보통 MVC 패턴을 사용하는 프로젝트 구조는 레이어 계층형과 도메인형으로 구성되어 있습니다. [계층형 예시]  [도메인형 예시] 계층형 구조가 프로젝트 전체 구조 파악은 쉽지만, 세부적으로 어떠한 도메인들이 연결되어 있는지 파악하기 어렵습니다. 예시로 현재 로아투두 Service 단만 보더라도... 한폴더안에 너무 많은 클래스가 모입니다. 그래서 전반적인 프로젝트 구조를 도메인형으로 변경하려고 합니다.   2. 모집 게시판 구조 변경먼저 현재 작업중인 모집 게시판의 구조부터 변경하고자 한다. 최상단이 domainV2인 이유 - 이미 domain 폴더를 쓰고있어서 추후 변경기존 Controller -> Api 로 이름 변경@RestController를 쓰기 때문에 크게 보면 Controller가..
[LOATODO] 어쩌다 서비스 운영 / 약 2년 동안의 회고
·
Project/LOATODO
1. 2022년 9월 ~ 2023년 5월 / 방황- 국비 수료 후 취업, 수습 후 퇴사- 본격적인 Spring Boot 공부- 로스트아크 오픈 API로 여러가지 데이터 비교 (Spring Boot + JSP) 7월에 국비교육을 마치고 9월 쯤 4개의 프로젝트(라고 부르기 민망한)를 가지고 운좋게 취업을 빨리하였다.PHP 기반의 보안 회사의 UI/UX 팀이였는데, 보안 회사라 그런가... 나랑은 좀 안맞았다새로운 것을 배우고 무언가를 만들고 싶어 개발을 시작했는데 조금 다른 느낌...그래서 2달의 수습을 마치고 퇴사를 하였다. 그리고 월급으로 인프런에서 김영한 강사님 인강을 다 샀다. 한 100만원 좀 넘었나..?실력도 많이 오르고 사고방식도 달라지고 지금 2024년인데도 아직까지 반복해서 보고있다. 그러..
[LOATODO] AWS로 스프링 CI/CD 구축하기 (3) ECS 릴리즈
·
Project/LOATODO
앞서 두 포스팅에서VPC 세팅을 하고 [Loatodo] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정기존 Elastic Beanstalk으로 배포중이던 Spring boot 서버 환경에서뭐하나 잘못건드렸는지 새로운 버전 배포시 CPU가 100% 찍히는 현상을 발견했다. 기존에도 물론 배포할 때 CPU가 높게 치긴 했지만 저정repeater2487.tistory.com Code Pipeline으로 빌드까지 해줬다. [Loatodo] AWS로 스프링 CI/CD 구축하기 (2) Code Pipeline 생성지난 포스팅에서 Spring CI/CD 구축의 첫 단계로 VPC 설정을 하였다. [Loatodo] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정기존 Elastic Beanstalk으로 배포..
[LOATODO] AWS로 스프링 CI/CD 구축하기 (2) Code Pipeline 생성
·
Project/LOATODO
지난 포스팅에서 Spring CI/CD 구축의 첫 단계로 VPC 설정을 하였다. [Loatodo] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정기존 Elastic Beanstalk으로 배포중이던 Spring boot 서버 환경에서뭐하나 잘못건드렸는지 새로운 버전 배포시 CPU가 100% 찍히는 현상을 발견했다. 기존에도 물론 배포할 때 CPU가 높게 치긴 했지만 저정repeater2487.tistory.com 두번째로 Code Pipeline을 이용하여 깃허브 레포지토리에 푸쉬가 되면 자동으로 빌드하도록 해보려고 한다. 1. Code Pipeline 생성AWS 파이프라인에서 '파이프라인 생성'을 클릭한다.  따로 추가적인 설정 없이 파이프라인 이름만 입력 후 다음으로 넘어간다.  소스 스테이지에..
[LOATODO] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정
·
Project/LOATODO
기존 Elastic Beanstalk으로 배포중이던 Spring boot 서버 환경에서뭐하나 잘못건드렸는지 새로운 버전 배포시 CPU가 100% 찍히는 현상을 발견했다. 기존에도 물론 배포할 때 CPU가 높게 치긴 했지만 저정도는 아니였는데.... 이참에 예약 인스턴스도 쓸겸 빌드, 배포 환경을 하나하나 설정해보고자 한다. 1. VPC 생성VPC는 가상 프라이빗 클라우드(Virtual Private Cloud)의 약자로, 퍼블릭 클라우드 내에서 사용자가 독립적으로 사용할 수 있는 논리적으로 격리된 가상 네트워크를 의미합니다.우선 AWS Management Console에 로그인하여 생성된 VPC를 확인한다.보통 처음 생성하는 계정에는 기본 VPC 하나가 생성되어 있다.여기에 추가로 loatodo-vpc를..