오늘은 스프링 숙련 강의를 계속해서 듣고 따라해보는 시간을 가졌다. 강의를 들으면서 그대로 따라하는 것도 쉽지는 않았고 과정을 이해하려다 보니 시간이 더 걸리기도 했다. 전체적인 그림을 파악하는 것에 초점을 맞춰서 진행했던 것 같다.
그리고 강의를 그대로 보면서 따라하다보니 문제가 생기는 부분이 있었다. DB 연결이 제대로 되지 않았고 환경변수 설정이 제대로 되지 않는 부분이 있었는데 그것을 해결해본 과정을 적어본다.
1. Spring DB 연결 오류 해결
먼저 사용중인 IDE인 인텔리제이와 DB를 연결하는 것은 어렵지 않았다. 그런데 만든 어플리케이션과 DB를 연결하는 과정에서 문제가 있었다.
외부 설정 파일인 application.properties에 연결 정보를 쭉 적어줬는데 제대로 실행이 되지 않았다.
사실 해결 과정은 너무나도 허무했는데 강사님의 username과 내 username이 달라서 발생한 오류였다. 무슨 이유에선지 강사님의 username은 postgres로만 되어있었고 내 username은 뒤에 .과 함께 id비슷한 무언가가 더 붙어있었다.
사진에서 일부 글씨가 지워져있는 User에 있는 부분이다.
spring:
datasource:
url: jdbc:postgresql://aws-0-ap-northeast-2.pooler.supabase.com:5432/postgres
password: {비밀번호}
username: postgres{.유저이름}
위와 같이 username을 내 username에 맞게 수정만 해주었더니 깔끔하게 문제가 해결되었다.
그리고 키를 노출하면 안되기에 위 내용을 환경변수 설정으로 넣어주는 부분에서도 또 오류가 발생했다.
강의를 따라서 해봤는데 여러번 고치고 반복해봐도 잘 되지 않았다.
SPRING_DATASOURCE_URL={URL}?user={USERNAME}&password={PASSWORD} 형식으로 집어넣어줬지만 잘 되지 않았다.
그래서 아예 세 개의 값을 분리해서 넣어주기로 하였다.
SPRING_DATASOURCE_URL={URL};SPRING_DATASOURCE_PASSWORD={PASSWORD};SPRING_DATASOURCE_USERNAME={USERNAME}
위와 같이 작성했더니 문제없이 잘 작동되었다.
이렇게 목록으로도 한눈에 알아보기 좋게 확인할 수 있다는 것도 알게되었다.
그렇지만 왜 SPRING_DATASOURCE_URL={URL}?user={USERNAME}&password={PASSWORD} 형식으로 집어넣을 때 제대로 작동하지 않았는지 궁금해서 다시 시도해보았다.
마지막으로 다시 한 번만 시도해보자는 생각으로 다시 해보았더니 이번에는 정상적으로 실행이 되었다. username과 user를 혼동하고 ?와 &를 혼동한 것, 그리고 Username이 강의와 내 것이 달라서 혼동스러웠던 것들이 모두 합쳐져서 반복적으로 잘못 입력했었던 것 같다.
어찌되었든 시간이 좀 걸리긴 했지만 혼자서 문제를 잘 해결할 수 있었다. 문제가 발생했을 때 원인을 빨리 파악하는 법을 잘 알아야 겠다는 생각도 들었고 여러가지 배울 수 있었던 것 같다.
2. 오늘 배운 것
- 데이터베이스와 SQL에 대해 조금 더 자세히 알아보았다.
- 데이터베이스와 어플리케이션을 연결하는 것 까지 해보았다. 내일은 끝까지 완성해보려고 한다.
'오늘 배운 것' 카테고리의 다른 글
24-05-10 Spring 과제 시작 (0) | 2024.05.10 |
---|---|
24-05-09 인증/인가, 쿠키/토큰 (0) | 2024.05.09 |
24-05-07 Spring 입문 (0) | 2024.05.07 |
24-05-06 Kotlin 구조 분해 선언 (2) (0) | 2024.05.06 |
24-05-05 Kotlin 구조 분해 선언 (0) | 2024.05.05 |