목록혼자 공부하는✍ (21)
천천히, 열정적으로

강의 듣다가 오류 때문에 헤멘 적은 오랜만이라 참 당황스러웠다... 메세지와 국제화가 주제였다. 착실하게 강의를 따라서 messages.properties를 작성하고 테스트 코드를 돌렸다. 테스트 성공했습니다 라는 강사님의 말과는 달리 내 IDE는 실패했다는 메세지가 떴다. 사실 별로 흥미로운 주제가 아니어서(지금 사용 할 일이 없어서 그런 것 같다...) 대충 들어서 뭔가 놓친줄 알고 두 번을 돌려 들었는데 놓친 부분이 없었다. 오타도 발견을 못 했다. 그러다가 실패 메세지를 자세히 살펴보니 "??"라고 찍혀있었다. 처음에는 아무 데이터도 못 찾은줄 알았는데 알고보니 물음표 두 개가 찍힌 것이었다..! 다시 한 번 명심하자. 오류 메세지를 잘 읽자!😭 검색 해 보니 [Preferences] - [Fi..

이전 팀 프로젝트에서 커밋 메세지를 중구난방으로 적었던 기억이 있다. 이번에는 혼자 하는 프로젝트지만 제대로 해보자는 마음으로 git 부터 신경써보려고 한다. 다른 블로그를 참고하여 git commit 시 vim을 이용하여 규칙에 따른 commit 메세지를 작성할 수 있도록 파일을 만들었다. 1. .gitmessage 파일 생성 터미널에 vim ~/.gitmessage.txt 명령으로 간단하게 파일을 생성했다. 2. git message 규칙 만들기 3. git 에디터 설정 git config --global core.editor vim 4. git에 경로 설정 git config --global commit.template ~/.gitmessage.txt 5. 확인
CommandAcceptanceException: Error executing DDL "alter table review drop foreign key FKiyf57dy48lyiftdrf7y87rnxi" via JDBC Statement 이 오류가 뜨면서 테이블 생성이 안 되어서 검색 해 보니 mysql이 User 테이블을 사용하고 있어서 생긴 오류였다. @Table(name = "users") 설정해주니 정상적으로 테이블이 생성되었다.
나름대로 아래와 같은 코드로 풀어봤는데 테스트는 통과 됐지만 효율성에서 통과가 안 됐다. class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; List participantList = new ArrayList(Arrays.asList(participant)); List completionList = new ArrayList(Arrays.asList(completion)); for (String s : completionList) { for (String par : participantList) { if (s.equals(par)) { participantList.remov..
엔티티에 isDajim이라는 필드가 있었다. @Getter public class Report { private boolean isDajim; } 다짐인지 아닌지를 true, false로 알려주는 필드인데 이상하게 다른 필드는 getter로 값을 얻을 때 report.getXXX() 로 얻어졌지만 isDajim 필드는 report.isDajim() 으로 완성이 되었다. (롬복이 getter 이름을 isDajim 그대로 놔둔 것 같다.) 이상하다고 생각하면서 postman 테스트를 돌려보니 값은 전달이 됐지만 isDajim의 값을 true로 전달했음에도 false로 바뀌어 전달이 됐다. DB에는 0으로 저장이 되길래1로 다시 값을 보내보니 postman에는 여전히 false, DB 역시 여전히 0으로 저..
@ManyToOne(fetch = LAZY, cascade = CascadeType.ALL) cascade를 없애면 해결! 왜 자꾸 room을 지우는데 member 삭제 쿼리가 같이 나가나 했더니 cascade 때문이었다. 제대로 모르고 썼을 때의 문제가 이런거구나... 피부로 느꼈다. 그치만 JPA 공부한지 얼마 안 되었을 때 시작한 프로젝트로 잘 몰랐어도 이해할 수 있다ㅠㅠ room 지울 때 member도 같이 삭제할 게 아니라면 cascade는 안 붙이는게 맞다. 이것 때문에 며칠 고생했는데 깔끔하게 삭제된다!

오늘 프로젝트를 딱 열었는데 갑자기 오류가 뜨는 것이었다..? 그것도 여러개의 클래스들이... 나는 아직 갑작스런 오류에 의연하게 대처하지 못하는 쪼렙인데... 놀란 마음을 부여잡고 구글링을 했고... 수 많은 방법 중에 내 상황과 비슷하면서 간단히 할 수 있는 해결책은 다시 gradle을 다시 빌드하는 것이었다. 기대 반 의심 반으로 3분여의 시간이 흐르고 빌드가 끝나는 순간! (대충 개비스콘 짤) 모든 파일이 정상적으로 롬복을 인식했다. 오류 해결-!
application.yml에 mysql 환경설정을 끝내고 스프링부트를 돌려보는데 오류가 났다. access denied for user 'root'@'localhost' (using password: yes) 라는 오류메세지가 떠서 구글링을 했는데 나오는 결과가 1. 비밀번호 오류 2. 권한이 없음 두 가지였고 두 케이스 모두 나한테는 해당이 안 되었다. 좀 더 찾아보니 숫자가 0으로 시작했을 때 오류라는 제목의 블로그가 눈에 띄었다. 정말 예상치 못하게 application.yml 파일에서 0으로 시작하는 숫자 값을 사용해서 오류가 발생한 것이라고 한다. 이 블로그를 보자마자 이거구나 싶었는데 내 mysql 비밀번호가 0000이었기 때문이다. 오류의 원인은 YAML 1.1버전까지는 0으로 시작되는 숫..
오류내용 Repeated column in mapping for entity: "엔티티명" column: "컬럼명"(should be mapped with insert="false" update="false") 해결 방법 @JoinColumn 혹은 (name = "각각 다른 이름으로 설정") 둘 중에 하나를 사용하면 된다. 엔티티 클래스를 다 작성하고 테이블이 잘 만들어지는지 확인하려고 기대에 부푼 마음으로 스프링부트를 실행해 봤다. 그런데 아래와 같은 오류가 떠서 마음을 답답하게 만들었다. (should be mapped with insert="false" update="false") 오류가 가르키는 곳을 찾아가 보니 친구 요청을 위해 하나의 member 테이블의 member_number 기본키에 re..
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 내 코드 import java.util.*; public class PickTwoNumsAndAdd { public int[] solution(int[] numbers) { List list = new ArrayList(); Arrays.sort(numbers); for (int i = 0; i < numbers.length-1; i++) { for (int j = i+1; j..