전체 글 5

[개발기록/CEC 프로젝트] 4. 테스트 코드 작성기

이번 글에서는 CEC 프로젝트에 아래 내용들을 적용한 이야기를 작성하겠다.1. 픽스처 재사용1-1. 테스트 코드와 픽스처에 대해서1-2. 픽스처 재사용 코드 작성하기2. S3 파일 업로드 테스트2-1. 현재 프로젝트의 파일 업로드 방식에 대해서 (Presigned URL)2-2. S3ApiUtil 클래스 작성하기2-3. S3 파일 업로드 테스트 코드 작성하기3. 로그인 테스트3-1. 현재 프로젝트의 로그인 방식에 대해서 (JWT)3-2. 로그인 테스트 코드 작성하기1. 픽스처 재사용1-1. 테스트 코드와 픽스처에 대해서테스트 코드란 어플리케이션의 특정 기능을 테스트 하는 코드이다.테스트가 실패하면, 코드에 수정이 필요함을 알려주고,성공하면 코드가 의도대로 동작하고 있다는 신뢰를 준다.예를들어, 덧셈 기능..

[개발기록/CEC 프로젝트] 3. Rate Limit 기능을 어노테이션으로 구현하기

이 프로젝트가 마무리 되고, 내가 구현한 기능중에 개선점이 없는지 다시한번 살펴보았다.그런데 로그인 기능에 실패 횟수 제한 기능이 없는 것이었다. 아무리 기획한 내용에 해당 기능이 명시되지 않았다고는 해도, 아주 기본적인 기능조차 없는데도 내 기술력을 어필하기 위한 개선점을 찾고 있었던 것이 부끄러웠다.이후 로그인 실패 횟수 제한 기능을 찾아보며, Rate Limit(= 클라이언트가 서버에 요청할 수 있는 횟수를 제한하는 기술)에 대해 알게 되었다. Rate Limit 와 로그인 실패 횟수 제한 기능 는 비슷한 점이 많은 기능이므로 함께 구현하게 되었다.주요 요구사항은 아래와 같다.로그인 실패 횟수 제한로그인 성공시 로그인 실패한 횟수가 초기화 되어야 한다.10분당 5회까지만 실패할 수 있게 해도 보안이..

양구군에서 다양한 축제와 행사 즐기기

지금으로부터 약 1주일 전, 학창시절 친구 하나가 같이 놀러가자며 양구군에서 열리는 축제의 서포터즈를 신청 하자고 했다. 1박 2일 일정이었고, 첫날 서포터즈로서 축제를 돕고, 이튿날 관광을 하는 코스였다.그 친구가 축제까지 쫓아다닐 정도로 외향?적이고 활동적인 친구였는지 잠시 의문을 품었지만, 서포터즈에게 주는 여행 지원 혜택에 대한 안내를 보고, 나도 오랜만에 힐링 여행을 즐기기 위해 신청하게 되었다. 나중에 알고보니 친구 역시 지인에게 영업당한 것이었다 ㅋㅋ아무튼, 친구에게 영업당해 가긴 했지만 정말 재미있었고, 특히 같이 가신 서포터즈 분들의 활기찬 성격과 즐기는 모습에 나까지 점점 동화되어 더 재미있게 느껴졌다.여행 기록공수리 마을 주막할매 축제내가 서포터즈 활동을 하게된 축제이다. 파로호가 내..

기타 2025.09.30

[개발기록/CEC 프로젝트] 2. HTTPS 인증서 발급 및 갱신 자동화 스크립트 짜기

서론팀원들의 프론트 개발을 돕기 위해, 백엔드 API 서버를 구축하여 원격으로 요청할수 있게 했다.이때 내부적인 사정이 있어서, 추후 더 좋은 성능의 EC2 인스턴스로 마이그레이션하기로 예정되어 있었고,나중에 편하게 마이그레이션하기 위해, 인증서 발급 과정을 쉘 스크립트로 자동화하게 되었다.쉘 스크립트 파일에 작성한 로직은 아래와 같고, 실제 코드는 여기서 볼수 있다.---config: theme: redux---flowchart TD subgraph 인증서_생성 E["이메일 입력 받기 (read -r EMAIL)"] E --> F["임시 nginx 실행"] F --> G["(도메인 소유권을 증명) 인증서 생성"] G --> H["임시 ng..

[개발기록/CEC 프로젝트] 1. OpenAPI 양식으로 명세서 작성하기

1. 개요1-1. 문제 상황프론트가 화면을 API 와 연동하면서, API 간의 일관성의 부족으로 프론트가 수정 요청하는 상황이 있었다.관리자 웹 API는 어떻게든 수정해서 프론트와 연동을 완료했지만, 사용자 웹 API는 관리자 웹보다도 훨씬 더 일관성이 떨어졌다.문제 사례는 다음과 같다.페이지네이션 공통 응답 DTO 를 사용해야 하는데, JPA Pageable 을 그대로 응답하는 경우가 있었다.모든 API 응답은, status, message, data 필드가 있어야 하는데, 그 규칙을 따르지 않은 경우가 있었다.필드명이 일관성 없는 경우는 너무나 많았다.필요한 API 가 없는 경우도 있었다. (게시글 좋아요 취소 / 조회)당시 사용자 웹 API는 Swagger Editor에서File > Import U..