전체 글(193)
-
자바 프레임워크 12주차 / 기말고사 전 정리
CommandLineRunner 최초 실행시 같이 실행예로 초기화를 하고 싶을 때 사용해당 member.java부분 중요"Enable annotation processing" 기능이 무엇을 하는 것인지어노테이션 프로세싱(Annotation Processing)의 역할자바 코드를 컴파일할 때, 소스 코드에 작성된 어노테이션(Annotation, @ 기호로 시작하는 문법)을 스캔하고분석하여 새로운 소스 코드나 추가적인 파일을 컴파일 타임에 자동으로 생성해 주는 기능입니다.왜 이 설정을 켜야 할까요? (주요 사용처)이 설정이 켜져 있어야만 특정 프레임워크나 라이브러리들이 개발자를대신해 반복적인 코드를 짜주며 정상적으로 작동합니다.롬복(Lombok) 사용: 자바 개발 시 가장 흔하게 이 메뉴를 찾는 이유입니다...
2026.06.10 -
Trip-Linker 개발일지 6 - 플래너 API 연동 및 UI 개선 — goPlanStep 검증, 날씨 팝업
플래너 API 연동 및 UI 개선 — goPlanStep 검증, 날씨 팝업📋 한줄 요약플래너 3단계 흐름을 백엔드 API에 연결하고, 미로그인/미입력 상태에서 단계 이동을 막는 검증 로직을 추가했다.🎯 왜 만들었나기존 플래너는 MOCK 데이터로 동작하고 있었고, 로그인 없이도 3단계까지 이동이 가능했다.실제 API 연동 + 단계별 입력값 검증으로 정상 흐름을 완성하는 작업이었다.추가로 클라이언트 측에 있던 로그인 잠금 dead code를 제거해서 서버 응답 기반 단일 로직으로 정리했다.📁 작업 순서 (파일별)1. ApiResponse.java📦 global추가한 코드// 기존 — 두 인자 필요public static ApiResponse success(String message, T data)/..
2026.06.04 -
Trip-Linker 개발일지 5 - User.java — updateNickname·withdraw 메서드 추가
User.java — updateNickname·withdraw 메서드 추가 📋 한줄 요약User.java에 닉네임 변경(updateNickname)과 회원 탈퇴(withdraw) 메서드를 추가했다.같은 날 만든 UserServiceImpl이 이 메서드를 호출하기 때문에 함께 작업했다.🎯 왜 만들었나UserServiceImpl에서 user.updateNickname(), user.withdraw()를 호출하는데User 엔티티에 해당 메서드가 없어서 컴파일 에러가 났다.Entity에 메서드를 추가해서 Service에서 필드를 직접 건드리지 않도록 했다.📁 작업 순서 (파일별)1. User.java — 메서드 2개 추가📦 domain/user/entity추가한 코드// 닉네임 변경public void..
2026.06.04 -
Trip-Linker 개발일지 4 - auth 도메인 전체 구현 — 로그인·토큰·비밀번호 재설정
auth 도메인 전체 구현 — 로그인·토큰·비밀번호 재설정📋 한줄 요약로그인·토큰 재발급·로그아웃·비밀번호 재설정 기능의 auth 도메인 전체를 구현했다.JWT 발급 부분은 팀에서 JwtProvider를 완성하면 연결할 수 있도록 주석으로 자리를 잡아뒀다.🎯 왜 만들었나로그인 시 JWT를 발급하고, 5회 실패 시 계정을 잠그고, 비밀번호 재설정 링크를 이메일로 보내는 보안 흐름 전체가 필요했다.auth 도메인에 필요한 Entity / Repository / DTO / Service / Controller를 한 번에 만들었다.📁 작업 순서 (파일별)1. LoginRequestDto.java📦 domain/auth/dto@Getter@NoArgsConstructorpublic class LoginRe..
2026.06.04 -
Trip-Linker 개발일지 3 - 프론트 리팩토링 — MOCK 위치, go() 렌더러, CSS 버그
프론트 리팩토링 — MOCK 위치, go() 렌더러, CSS 버그📋 한줄 요약프론트엔드 3개 파일의 코드 품질 개선, MOCK 데이터 위치 정리, CSS 버그 픽스.🎯 왜 만들었나go() 실행 후 후기/장소 데이터가 렌더링되지 않는 문제가 있었다.MOCK 데이터 선언 위치가 파일 맨 위에 있어 로드 실패 시 스크립트 전체가 먹통되는 문제도 있었다.📁 작업 순서 (파일별)1. app_main.js📦 src/main/resources/static삭제: 파일 맨 위 _md MOCK 선언// 파일 시작 부분에 있던 하드코딩 데이터 제거const _md = { jeju: {...}, seorak: {...}, ... };이동: _md를 openPreview() 바로 위로파일 로드 실패 시 openPrevi..
2026.06.04 -
Trip-Linker 개발일지 2 - 계정 보안 이력 관리 Entity·Repository 구현
계정 보안 이력 관리 Entity·Repository 구현📋 한줄 요약로그인 실패 횟수 누적·계정 잠금·비밀번호 변경 이력을 DB에 기록하기 위한 Entity와 Repository를 구현했다.🎯 왜 만들었나계정 보안 기능(5회 실패 시 5분 잠금, 90일마다 비밀번호 변경 권장)을 구현하려면상태값을 User 엔티티에 저장하고, 보안 이벤트 발생 시 이력을 별도 테이블에 남겨야 했다.📁 작업 순서 (파일별)1. SecurityEventType.java📦 domain/user/entity추가한 코드public enum SecurityEventType { PW_CHANGE, // 비밀번호 변경 완료 PW_CHANGE_NOTIFIED // 90일 경과 변경 권장 모달 노출}왜..
2026.06.04