본문 바로가기
728x90
320x100

💻 뚝딱뚝딱/북북클럽36

[개발일지 #017] 북(Book) 도메인 API 구현 및 테스트 🎯 오늘의 목표북(Book) 도메인 API 구현⚙️ 진행한 작업(Book) 도메인 API 구현 (Book) 도메인 API 테스트 🛠️ 개발내용📌 북(Book) 컨트롤러 생성package ddururi.bookbookclub.domain.book.controller;import ddururi.bookbookclub.domain.book.dto.BookRequest;import ddururi.bookbookclub.domain.book.dto.BookResponse;import ddururi.bookbookclub.domain.book.service.BookService;import ddururi.bookbookclub.global.common.ApiResponse;import jakarta.valid.. 2025. 4. 29.
[개발일지 #016] 북(Book) 도메인 개발 및 단위 테스트 🎯 오늘의 목표북(Book) 도메인 개발⚙️ 진행한 작업북(Book) 엔티티 생성북(Book) 레파지토리 생성북(Book) 서비스 생성북(Book) 관련 예외 생성북(Book) 도메인 단위 테스트 🛠️ 개발내용📌 북(Book) 엔티티 생성/** * 책(Book) 엔티티 * - 외부 책 API에서 검색된 책 정보를 저장 */@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** 책 제목 */ @Column(nullable = false) .. 2025. 4. 29.
[개발일지 #015] 이메일 인증 실패 시도 횟수 제한 기능 🎯 오늘의 목표이메일 인증 실패 시도 횟수 제한 기능⚙️ 진행한 작업이메일 인증 실패 시도 횟수 제한 기능🛠️ 개발내용보안과 남용 방지를 위해 필요한 기능으로, 일반적으로는 Redis 같은 인메모리 저장소를 활용해서 이메일 주소별로 제한 시간 동안 실패 횟수를 카운트하고, 기준 초과 시 인증 요청을 차단하는 방식으로 구현한다고 하여 해보기로 함.구성 요소설명Redis Keyemail:fail: 형태로 저장TTL(Time to Live)일정 시간 후 자동 삭제 (예: 10분)허용 실패 횟수예: 5회차단 메시지"인증 요청이 너무 많습니다. 잠시 후 다시 시도해주세요." 📌 예외 클래스 추가EmailVerificationLimitExceededException.java@Getterpublic class .. 2025. 4. 25.
[개발일지 #014] 글로벌 예외처리 및 API 응답 포맷 통일 🎯 오늘의 목표글로벌 예외처리 및 API 응답 포맷 통일⚙️ 진행한 작업글로벌 예외처리API 응답 포맷 통일🛠️ 개발내용📌 공통 응답 구조 ApiResponse 설계 (ApiResponse.java)package ddururi.bookbookclub.global.common;import lombok.AllArgsConstructor;import lombok.Getter;@Getter@AllArgsConstructorpublic class ApiResponse { private boolean success; private T data; private String message; public static ApiResponse success(T data) { retur.. 2025. 4. 24.
[개발일지 #013] 회원 프로필 사진 등록 기능 구현 🎯 오늘의 목표회원 프로필 사진 등록 기능 구현⚙️ 진행한 작업회원 프로필 사진 등록 기능 구현🛠️ 개발내용✅ 개발 흐름로컬에 프로필 사진을 저장할 수 있도록 구현하고 추후 AWS S3와 같은 스토리지에 저장되도록 전환할 예정. 📌 User 엔티티 필드 추가 (User.java)@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructor@EntityListeners(AuditingEntityListener.class)public class User { //생략// @Setter @Column(length = 1000) private String profileImageUrl; .. 2025. 4. 24.
[개발일지 #012] Oauth 로그인 구현 (네이버) 🎯 오늘의 목표Oauth 로그인 구현 (네이버) ⚙️ 진행한 작업Oauth 로그인 구현 (네이버)🛠️ 개발내용📌 네이버 개발자 센터에서 앱 등록구글과 마찬가지로 네이버도 네이버 개발자 센터에 등록을 해야 한다.애플리케이션 이름을 정하고 네이버 로그인의 어떤 항목의 권한을 얻을 것인지 선택해준다.나는 연락처 이메일 주소랑 별명을 필수로 나중에 프로필 사진도 넣을 것 같아서 프로필 사진도 추가로 설정해주었음. 내용 들을 쭉쭉 입력하고 아래에 등록하기 버튼을 누르면 클라이언트 아이디와 비밀키가 발급완료됨. 📌 NaverOAuth2UserService 생성GoogleOAuth2UserService와 거의 똑같이 만들되, 응답 형태가 response 내부에 있다는 것만 다름@RequiredArgsCo.. 2025. 4. 24.
728x90
320x100