TIL - Intellij Community로 Spring 구동하기

su·2023년 12월 20일
0

TIL

목록 보기
80/93
post-thumbnail

Java Version 통일

프로젝트를 만들고 구동하는 과정에서부터 에러가 났다
다른 걸 해보겠다고 자바 버전을 다른 걸 깔아두고 설정하다 보니, 버전에 오류가 생긴 모양이다

프로젝트 구동하면서 이런 빨간 글씨는 본 적이 없어서 당황스럽긴 했는데,
생각보다 금방 해결할 수 있었다.

두 가지 설정에 들어가서 확인해보았다.
먼저, Project Structure > Project Settings [단축키 - Ctrl + Shift + Alt + S] 이다.

여기서 SDK의 버전을 확인하고 설정해준다.

그 다음, Settings > Build, Execution, Deployment > Build Tools > Gradle 으로 들어간다.

여기서 Gradle JVM 을 확인하고 설정해준다.

두 가지의 java version 을 통일하니 해당 버전의 오류는 사라졌다.

Intellij에 MySQL 연결

이전까지 Ultimate 버전을 사용하다가 다시 Community 버전을 사용하게 되었다
Community 버전에서는 DB를 연결해서 사용해 본 적이 없어서 몰랐는데,
DB를 확인하는 메뉴가 따로 존재하지 않았다 (...)

다행히! Community 에서도 DB를 볼 수 있게 설정해줄 수 있다고 한다

Settings > Plugins 에 들어가 Database Navigator 을 Install 해준 다음,
상단의 Marketplace에서 Installed 메뉴로 넘어가 Apply 해주면 된다.

비교적 오랜만에 설정을 해봐서 그런지 기억이 없어졌나보다 ㅜ

DB 생성하기

명령 프롬포트로 들어가

mysql -u root -p

명령어를 입력하고, 비밀번호를 입력하여 mysql로 들어간다

그리고 create database [데이터베이스명] 을 입력해 사용할 데이터베이스를 생성한다

application.properties

resources 폴더의 해당 파일에 내용을 채워주어야 한다.

spring.datasource.url=jdbc:mysql://localhost:[포트번호]/[데이터베이스명]
spring.datasource.username=[사용자명]
spring.datasource.password=[비밀번호]
spring.datasource.driver-class-name=[클래스명]

아무 생각 없이 해당 파일을 채우지 않아서 DB 자체에 연결할 수가 없었다 ..

Entity Class 생성

Entity 클래스를 생성하고 JpaRepository에 연결한 후 바로 테이블을 확인하려고 실행했다
그러나 .. 오류가 계속 발생했다 ..

@Column(name = "desc", nullable = false)
private String desc;

이 부분에서 오류가 발생했다
찾아보니 그 이유는, desc가 예약어이기 때문이다
전에도 like로 테이블 명을 사용하려다가 오류가 났었는데, mysql에서 사용하는 예약어를 잘 알아보고 겹친다면 컬럼명이나 테이블명을 수정해주어야 한다

return 클래스에 @Getter

Controller, Service, Repository 클래스를 각각 생성하고,
Postman으로 테스트를 진행하는데 또 귀신같이 오류가 발생했다

Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException
: No acceptable representation]

해당 오류였는데, 이 오류가 두 번 발생했다

처음에는 @ResponseBody 때문인가 싶었는데,
클래스 자체에 @RestController 에너테이션을 달았기 때문에 문제가 되지 않았다

그 이유는 return 해주는 Dto 클래스에 @Getter 에너테이션을 사용해주지 않았기 때문이다
@Getter 에너테이션을 달아주거나, Getter 메서드를 직접 만들어주면 해결된다

profile
(❁´◡`❁)

0개의 댓글