분류 전체보기 212

2단계: "SQL Error 1049: Unknown database"

[인용 및 참고 자료 출처]1. 구글 검색: 티스토리, "spring.jpa.hibernate.ddl-auto=create", ddl-auto 설정 시 주의 사항, (2024.12.15) [문제]이젠 프로그램을 실행할 때 오류가 안 나면 이상할 지경이다. 데이터베이스(database)를 제대로 생성한 줄 알았는데 아니었다. 오류 메시지를 볼 때마다 심장은 아직 철렁거리긴 하나, 이미 전날 새벽에 데이터베이스와 씨름한 전적이 있는지라 담담한 마음으로 데이터베이스를 확인했다. [원인]오류가 발생한 원인은 역시나, 데이터베이스가 이상하게 만들어진 데에 있었다. plans2라는 이름으로 데이터베이스를 만든 줄 알았는데 테이블로 생성되어야 할 'members2'가 데이터베이스로 있었다. [해결]문제는 금방 해결했..

1단계: "200 OK인데 왜 username이 null일까?"

[문제]400번 대이든 500번 대이든 오류 났다는 메시지가 뜨면 그나마 코드를 잘못 썼다고 짐작할 수 있는데, 200 OK 메시지와 다르게 입력한 값이 제대로 반영되지 않으면 더 골치 아팠다. null도 문제였으나, 수정됐다면서 일정 수정 날짜인 updatedAt의 값이 그대로인 점이 더 골치 아팠다. 도대체 원인이 뭔지 추측조차 못 한 채, '코드 또 전부 다 뜯어고쳐야겠구나.' 해탈한 심정으로 튜터님께 찾아갔다. [원인]package com.example.plan.plan.dto.request;import lombok.Getter;// 일정 수정 요청에 해당하는 request DTO@Getterpublic class UpdatePlanRequestDto { // (1) 속성 privat..

Spring 본캠프 Day 069 - 1단계 일정 관리 앱 Develop 완료, 2단계 진행 중

어제 새벽에 데이터베이스(database)를 직접 생성하다가 오류가 나서 딱따구리가 나무를 쪼듯이 챗GPT에 엄청나게 물어보고 나서야 해결했다. 데이터베이스가 제대로 삭제되지 않아서 생긴 문제였다. 혹시라도 비슷한 오류를 겪는 사람이 있을 수도 있고, 미래의 내가 또 같은 문제를 겪을 수 있으므로 문제 해결용 코드를 적어놓으련다. (1) MySQL 버전: 9.1.0(2) 윈도우/맥북: 맥북(3) 터미널에서 사용하지 않는 데이터베이스 삭제하기 ⓐ 위치 이동▼cd /usr/local/mysql/binⓑ MySQL 접속▼./mysql -u root -pⓒ 비밀번호 입력▼ ⓓ 데이터베이스 확인▼show databases;ⓔ 데이터베이스 삭제▼drop database 데이터베이스이름;오늘 오후에 느지막이 일어나 ..

Spring 본캠프 Day 068 - 일정 관리 앱 Develop 1단계 진행 중

도전 단계까지 포함하여 총 8단계인 과제 중 1단계만 하는 중인데도 벌써 트러블슈팅(troubleshooting)으로 작성할 오류를 두 개나 냈다. 이번엔 낸 오류는 쉼표와 관련이 없지만 평소 쉼표를 깜빡해서 빨간 줄을 자주 마주하곤 했는데, 오늘부터는 쉼표를 맨 앞으로 옮기기로 했다. 튜터님께서 알려주신 방법인데, 이렇게 하면 쉼표를 빠뜨릴 일이 줄어들 거라고 하셨다. 확실히 앞에 쓰니 쉼표가 눈에 더 잘 들어오기도 하고, 앞에 쓸지 뒤에 쓸지 고민하는 그 몇 초 덕에 '쉼표 쓰기'를 더 잘 의식하게 되었다. 개인 프로젝트를 한 뒤로, 정확히는 스프링(Spring)을 공부한 뒤로 갖가지 오류를 내면서 유입 키워드에 오류의 비중이 커졌다. 트러블슈팅(trooubleshooting)을 작성할 땐 보통 해결..

1단계: "not-null property references a null or transient value"

[문제]'일정 관리 앱 Develop' 과제는 JPA를 활용해야 했다. 필수 과제 1단계에서는 일정을 생성, 조회, 수정, 삭제할 수 있도록 CRUD를 구현해야 했는데, 생성(Create)에 해당하는 C를 구현한 다음 프로그램을 실행하자, 바로 500 Internal Server Error 메시지가 떴다. 우선 null이 들어가면 안 되는 곳에 null이 들어가서 생긴 문제라 짐작했다. [원인]package com.example.plan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.data.j..

Spring 본캠프 Day 067 - 숙련 Spring 3주차 완강, "오류의 가호가 있기를!"

package com.example.board.repository;import com.example.board.entity.Member;import org.springframework.data.jpa.repository.JpaRepository;import java.util.Optional;// repository layer의 인터페이스(interface)public interface MemberRepository extends JpaRepository { Optional findById(Long id); /* [수정 전] findByIdInRepository(Long id) [수정 후] findById(Long id) */}어제 본 Error creating bean wit..

3단계: "406 Not Acceptable"

[문제]이러다가 정말 400번 대 오류를 전부 한 번 이상 만나겠다 싶었다. 데이터베이스(database) 구성이 완전히 바뀌고, 자료구조 대신 JdbcTemplate를 사용하면서 한 문제를 해결하면 다른 문제가 생겼다. [원인]package com.spring.weekthree.dto.member.response;import com.spring.weekthree.entity.Member;import lombok.Getter;// response DTO 클래스(class) @Getter // @Getter가 없으면 JSON 변환이 안 된다.public class MemberResponseDto { //(1) 속성 private long memberId; private String name..

3단계: "순환 참조 오류라니, 돌아가는 각도가 예술이군요."

[문제]열심히 코드를 고치고 나서 실행했더니만, 축하한다는 메시지인 양 APPLICATION FAILED TO START 오류 메시지가 떴다. 일명 순환 참조 오류였다. 화살표가 정말 한 치 오차도 없이 완벽한 각도로 꺾였다. [원인]// [1/1] Data Access Layer(Repository Layer)@Repositorypublic class JdbcTemplatePlanRepository implements PlanRepository { private final JdbcTemplate jdbcTemplate; private final PlanService planService; /* [오답] private final PlanService planService; [정..

3단계: "사용자 Id를 입력했는데 왜 자꾸 0이 나오니?"

[문제]몇몇 사용자가 이미 가입한 상황이라고 가정하고, 즉 데이터베이스에 몇몇 사용자 정보를 저장한 다음 3단계 도전 과제를 했다. 문제는 일정을 생성하는 데에는 성공했는데, memberId를 입력해도 계속 0이 나왔다. 아무래도 무언가를 빠뜨린 듯싶었다.  [원인]package com.spring.weekthree.dto.responsedto;import com.spring.weekthree.entity.Plan;import lombok.AllArgsConstructor;import lombok.Getter;import java.time.LocalDate;import java.time.LocalDateTime;// 클라이언트(client)에 응답하는 response DTO 클래스(class) @AllA..

Spring 본캠프 Day 066 - 숙련 Spring 2주차 완강, 다 끝내려고 했으나…….

오류가 났다.3주 차 강의를 모두 듣기까지 딱 40여 분 남았을 때, CRUD 중 R 기능을 작업하고 실행을 눌렀을 때, 종료 버튼을 누르지 않았는데도 애플리케이션(application)이 자기 마음대로 꺼졌다. 이 오류는 챗GPT에 물어보면 어찌저찌 해결할 수 있긴 하겠으나, 왠지 어제 받은 과제를 하는 도중에 또 겪을 듯한 직감이 들어서 튜터님께 물어보기로 했다. 유일하게 확신하는 사항은 분명 내 손가락이 또 무언가를 잘못 쳤다는 점! 컴퓨터는 하라는 대로 했을 뿐이라는 사실! 문제는 그 무언가가 뭔지 모르겠다! 오류는 이미 2주 차 강의를 들을 때도 발생했다. 일정 생성인데 POST 메서드(method)가 아니라 GET 메서드를 써서 405 Method Not Allowed 오류 메시지를 아침부터 ..