Archive 29

[트러블슈팅] PasswordEncoder 등 빈 주입 오류, 컴포넌트 스캔 누락

문제 상황Parameter 1 of constructor ... required a bean of type 'PasswordEncoder' that could not be found(서비스 생성자 파라미터에서 주입 오류 발생)AppConfig에서 @Bean으로 PasswordEncoder를 정상 등록했음에도Could not autowire. No beans of 'PasswordEncoder' type found.라는 에러가 계속 발생원인 분석AppConfig(설정 클래스)를com.example.config(=최상위) 패키지에 두었으나,메인 클래스(@SpringBootApplication)가 com.example.board 하위에 위치→ Spring Boot의 기본 컴포넌트 스캔 정책상메인 클래스 “하위..

Archive/예전 TIL 2025.07.23

[트러블슈팅] Spring 단위 테스트 실패

1. 문제 상황회원(유저) 서비스의 단위 테스트 코드가NullPointerException이나IllegalStateException("id를 찾지 못함") 등각종 에러로 실패.테스트 흐름:회원가입 → 전체 유저 목록에서 id 찾기 → 단건 조회/삭제 검증2. 증상/에러 메시지가입 후 전체 유저: 0찾은 id: nullid를 찾지 못함 예외NullPointerException: ... because "user" is null3. 원인 분석Mock 환경에선 실제 DB 저장/조회가 발생하지 않음.→ 단순히 메소드 호출만 검증하는 구조라가짜 데이터의 반환값을 직접 세팅하지 않으면항상 빈 값(0개)만 반환.테스트 코드에서 반환값 세팅을 생략해서,전체 유저 목록이 항상 0명 → id 찾지 못함.엔터티 클래스에 테스..

Archive/예전 TIL 2025.07.10

[트러블슈팅] 윈도우 한글 경로(ClassNotFoundException)로 인한 자바/테스트 에러

문제 현상메인 메소드 실행은 정상JUnit 테스트, Gradle 빌드, 외부 명령 실행 등에서 아래와 같은 에러 발생 오류: 기본 클래스 worker.org.gradle.process.internal.worker.GradleWorkerMain을(를) 찾거나 로드할 수 없습니다. 원인: java.lang.ClassNotFoundException: worker.org.gradle.process.internal.worker.GradleWorkerMain 추가로, JAVA_HOME/PATH 에러, 파이프 닫힘 등 부가적 메시지 반복 발생원인 파악을 위한 시도들JDK/Gradle 재설치JDK, Gradle 최신 버전으로 재설치환경변수 JAVA_HOME, Path 재설정→ 여전히 동일 에러 발생인텔리제이 캐시/빌드..

Archive/예전 TIL 2025.07.08

[트러블슈팅] FK 무결성 오류와 로그인 미구현 상태에서 user_id 입력 문제

문제 상황Spring Boot + MyBatis + MySQL 환경에서문의글(inquiry) 생성 시 FK 무결성 오류가 발생했다.또, 로그인/인증 기능 없이 user_id를 자동 세팅하려다 문제가 생김.주요 에러/현상FK 무결성 오류Cannot add or update a child row: a foreign key constraint fails ...Column 'user_id' cannot be null로그인 기능 없이 user_id 자동 세팅 시도서버가 로그인된 유저 정보를 알지 못해 user_id 값을 자동으로 넣지 못함원인 분석FK 무결성 오류:inquiry 테이블의 user_id 값과user 테이블의 id 값이 일치하지 않았음로그인/인증 미구현:서버가 "현재 로그인한 유저" 정보를 모름→ u..

Archive/예전 TIL 2025.07.02

[트러블슈팅] @Controller vs @RestController, 404 에러 & 정상 동작 차이

문제 상황Spring Boot에서 API를 개발하다가,DB에는 데이터가 잘 들어가는데, Postman에선 404 Not Found 에러가 발생했다.원인 분석InquiryController에 @Controller 애노테이션을 붙이고, @PostMapping으로 API를 작성했다.하지만 @RestController가 아닌 @Controller만 쓰면, 기본적으로 “뷰(HTML 화면)”를 반환하려고 동작한다.API에서 리턴 값이 없거나, JSON/객체/문자열 등 데이터만 내려줄 때는 @RestController를 사용해야 한다!이걸 놓치면, 요청 자체가 매핑이 안 되거나(특히 void 리턴 시), 예상과 다른 동작(404, 응답 없음 등)이 발생한다. 해결 과정@Controller 애노테이션을 @RestCon..

Archive/예전 TIL 2025.06.28

[트러블슈팅] MyBatis Mapper가 Bean으로 등록되지 않는 런타임 에러 해결

문제 상황Inquiry(문의) 도메인 관련 기능을 개발 중,InquiryMapper를 DI로 주입하려고 하자 다음과 같은 런타임 에러가 발생했다.원인 분석InquiryMapper.java에 분명히 @Mapper 애노테이션을 붙였고,Mapper XML의 namespace도 정확하게 일치했다.application.properties의 mybatis.type-aliases-package 설정도도메인 패키지별로 꼼꼼히 등록했다 그런데도 InquiryMapper가 Bean으로 등록되지 않아 DI가 실패했다! 해결 과정1. 설정 파일 확인@Mapper 누락, type-aliases-package, XML 경로, 파일명, 오타 등여러 설정을 점검했으나 모두 이상 없었음.2. Application 클래스에서 @Map..

Archive/예전 TIL 2025.06.28