-
03/20(Sat) ์ธํ ๋ฆฌ์ ์ด(IntelliJ) ํ๋ก์ ํธ ์ธํ ๊ธฐ๋ณธ - ์คํ๋งHangHae99/TIL-hanghae99 2021. 3. 20. 23:19
๐ฉ
์ ํ๋ก์ ํธ ํด๋๋ฅผ 4๊ฐ ์งธ ๋ง๋ค๊ณ ์์ด์ ์ง๊ธ์ ์กฐ๊ธ ๋์์ก์ง๋ง, ๋ค์๋ฒ์ ๋ฒ๋ฒ ๋ ๊ฒฝ์ฐ๋ฅผ ์ํด ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ์.
1. File -> New -> Project
2. Spring initializr์์ Project SDK ์ค์
์๋ฐ 8๋ฒ์ ์ผ๋ก ์งํ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ SDK๋ 1.8 version์ผ๋ก ์ ํํ๊ณ Next ํ๋ค.
3. ํ๋ก์ ํธ ์ธํ
1) Group๊ณผ Artifact๋ ์์์ ์๋ง๊ฒ ์ ํ๋ค.
2) ๋น๋๋ Gradle๋ก ํ ๊ฑฐ์ฌ์, Gradle์ ์ฒดํฌ
3) ์ธ์ด๋ Java
4) Java version์ ๊ธฐ๋ณธ 11๋ก ์ค์ ๋ผ์๋๋ฐ, 8๋ก ๋ณ๊ฒฝ ํ Next ํ๋ค. (์๋ฐ 8๋ฒ์ ์ผ๋ก ์งํ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ)
4. Dependencies ์ธํ
spring์ ํ๋ ๊ฑฐ๋๊น ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 5๊ฐ๋ฅผ ๊ฒ์ ํ ์ถ๊ฐํด์ค๋ค.
1) Spring Web
2) Lombok
3) Spring Data JPA
4) H2 Database
5) MySQL Driver
Next๋ฅผ ๋๋ฅด๊ณ ์ ์ฅํ ์์น๋ฅผ ์ ํํ ํ Finish ๋ฒํผ์ ๋๋ฅธ๋ค.
5. ํ๋ก์ ํธ ์์ฑ ํ ํญ์ ํ์ธํด์ค์ผ ํ๋ ์ต์
1) Auto Import
File -> Settings ํด์ ์ฐฝ์ ๋์๋ ๋๊ณ , ๋จ์ถํค ctrl + alt+ s ๋ก Settings ์ฐฝ์ ๋์ด๋ค.
Auto Import๋ import๊ฐ ํ์ํ ๋ถ๋ถ์ด ์์ผ๋ฉด ์๋์ผ๋ก import ํด์ค ์ ์๊ฒ ์ธํ ํ๋ ์ต์ ์ด๋ค.
๋ณดํต ์ฝ๋๋ฅผ ๋ณต๋ถํ๊ฑฐ๋ import๊ฐ ํ์ํ ์๋ฃํ์ ์ฐ๋ฉด import๊ฐ ํ์ํ ๋ถ๋ถ๋ค์ ๋นจ๊ฐ ๋ฌผ๊ฒฐ ํ์๊ฐ ๋ํ๋๊ณ ๋ด๊ฐ import๋ฅผ ์ง์ ํด์ค์ผ ํ๋๋ฐ, Auto Import ์ค์ ์ ํด๋์ผ๋ ๋ณต๋ถ ํ๊ณ 1์ด ์ ๋ ํ์ ์๋์ผ๋ก import๊ฐ ๋๋ฉด์ ๋ฐ์ค์ด ์ฌ๋ผ์ง ๊ฑธ ํ์ธํ ์ ์์๋ค.
๋นจ๊ฐ ๋ค๋ชจ ๋ฐ์ค ์์ insert imports on paste ์ต์ ์ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ ํ์ ๋ import๋ฌธ์ ์ฝ์ ํ๋ ์ต์ ์ด๊ณ , ์ ํ์ Always, Never, Ask ์ค ํ๋๋ฅผ ํ๋ฉด ๋๋๋ฐ, ๋๋ ์ด ์ต์ ์ ๋ถ์ฌ๋ฃ๊ธฐ ํ ๋๋ง๋ค ์๋์ผ๋ก ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Always์ ์ฒดํฌํด์คฌ๋ค.
๊ทธ๋ฆฌ๊ณ Add unambiguous imports on the fly์ ์ฒดํฌํ๊ณ OK๋ฒํผ์ ๋๋ฅธ๋ค.
๊ฐ์์์๋ Add~ ์ฌ๊ธฐ์๋ง ์ฒดํฌ๋ฅผ ํ๊ณ , Optimize imports on the fly๋ ๊ทธ๋ฅ ๋๊ณ ๋์ด๊ฐ๋๋ฐ ๋ ๋ค ์ฒดํฌํ๊ณ ๋์ด๊ฐ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
Optimize ~ ์ด ์ต์ ์ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์ ๋ ํ์ํ ํจํค์ง๋ ์๋์ผ๋ก importํด์ฃผ๊ณ , ํ์ ์๋ ํจํค์ง๋ ์๋์ผ๋ก ์ญ์ ํด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.
์ฝ๋ ์น๋ฉด์ ์๋์์ฑ์ผ๋ก ๋ค๋ฅธ ํจํค์ง๋ฅผ import ํด๋ฒ๋ ค์, ์๋ ํจํค์ง๋ฅผ ๋ค์ importํด์ฃผ๊ณ ๋๋ ์๋ชป import๋ import๋ฌธ์ ์ฌ์ฉ๋์ง๋ ์๋๋ฐ ์ฝ๋๊ฐ ์ด์์์ด์(?) ์ง์ ์ญ์ ํด์ฃผ๊ณค ํ๋ค. (์ฌ์ฉ๋์ง ์์ ํ๋ฆฐ ์์ผ๋ก ํ์๋ผ์์ด์ ๋์ ์ ๋๋ ์ญ์ ํ๋ ๊ฑฐ์ผ ์ด๋ ค์ด ์ผ์ ์๋์ง๋ง)
๋์ฒ๋ผ ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ํด ์กด์ฌํ๋ ๊ธฐ๋ฅ ๊ฐ์๋ฐ, ๋น์ฅ ์ฒดํฌํด์ฃผ๊ณ ์ฌ์ฉํด์ผ๊ฒ ๋ค.
2) Annotation Processors
์์คํ Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ธํ ์ด๋ค. (Lombok ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ค๊ณ ๊ฐ์ ํ๊ณ )
4๋ฒ์ dependencies ์ธํ ์์ lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ผ๋ ๋ค์์ผ๋ก ํด์ผ ํ ์ผ์ ์์๋ณด์.
build.gradle์ dependencies ์์ ์์กด์ฑ ์ถ๊ฐ
dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' }
dependencies ์์ ๋ค๋ฅธ ๊ฒ๋ค๋ ๋ง์ด ๋ค์ด ์๋๋ฐ, lombok๋ถ๋ถ๋ง ๋ณด๋ฉด ์ด๋ ๋ค.
๋ค์์ผ๋ก ํด์ผํ ์ผ์?
Annotation Processors์ ๋ค์ด๊ฐ์ Enable annotation processing์ ๋ฐ๋์ ์ฒดํฌํ๊ณ OK ํ๊ธฐ.
'HangHae99 > TIL-hanghae99' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
03/23(Tue) findById์ window.location.search (0) 2021.03.23 03/21(Sun) 3๊ณ์ธต ์๋ฌ (Controller, Service, Repository) (0) 2021.03.21 03/19(Fri) ์ฃผํน๊ธฐ ์ฃผ์ฐจ ์์ (0) 2021.03.20 03/18(Thu) DFS์ BFS (2) (4) 2021.03.18 03/17(Wed) DFS์ BFS (1) (1) 2021.03.18