JDK ์ค์น
JDK ๋ฒ์ ์ ํ์ฌ 17 ๊น์ง ๋์์ผ๋ ๊ณต๋ถ ์ฉ๋๋ก 8 ์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค.
๐ JDK 8 ์ค์น ๋ก ๋ค์ด๊ฐ JDK 8์ ์ค์นํ๊ณ ํฐ๋ฏธ๋์์ ํ์ธํ๋ค. ์ค์น ์์๋ ์ค๋ผํด ๋ก๊ทธ์ธ์ด ํ์ํ๋ ํ์๊ฐ์ ์ ํด์ค๋ค.
user@userui-MacBookPro ~ % java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
๋งฅ๋ถ์์๋ homebrew ๋ก ๊ฐํธํ๊ฒ ์ค์นํ ์ ์๋ค.
user@userui-MacBookPro ~ % brew cask install java8
ํ์ํ ๊ฒฝ์ฐ JDK ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํ๋ค.
ํ๊ฒฝ๋ณ์ ์ค์ ์ด์ : JDK ์ ๊ธฐ๋ณธ ๋ฒ์ ์ 1.8๋ก ์ก์์ฃผ๊ณ , ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ฃผ๋ฉด java ๋ช ๋ น์ด ํ๋๋ก ๋๋ ํฐ๋ฆฌ ์ด๋์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋ค. IDE ์์๋ง ์ฌ์ฉํ๋ค๋ฉด ํ ํ์๋ ์๋ค.
.bash_profile ํ์ผ์ ํธ์งํ์ฌ JAVA_HOME ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํด์ค๋ค. mac ์์ JDK๊ฐ ์ค์น๋๋ ๊ฒฝ๋ก๋ /Library/Java/JavaVirtualMachines ์ด๋ค.
user@userui-MacBookPro ~ % vi ~/.bash_profile
...
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
์ฐธ๊ณ ) ๋ฐฉํฅํค๋ก ์ปค์๋ฅผ ์ด๋์ํค๊ณ , i ๋ฅผ ๋๋ฅด๋ฉด ๊ทธ ์๋ฆฌ์์ ํธ์ง์ด ๊ฐ๋ฅํ๋ค. ํธ์ง ํ ese ๋ฅผ ๋๋ฅด๊ณ :wq! ๋ฅผ ์ ๋ ฅํ๋ฉด ์ ์ฅํ๊ณ ์ข ๋ฃํ๋ค.
IDE ์ค์น
Java IDE ๋ eclipse ์ IntelliJ ๊ฐ ์๋ค. ์ดํด๋ฆฝ์ค๋ ์ธํ ๋ฆฌ์ ์ด ์ค์ ๋ญ๊ฐ ๋ ๋์์ง๋ ์ง์ ์ฌ์ฉํด๋ณด๊ณ ๋น๊ตํ๋ ๊ฒ ์ ์๋ฏธํ ๊ฒ ๊ฐ๋ค. ์ด๋๊น์ง eclipse ๋ฅผ ์ด์ฉํด์๊ธฐ ๋๋ฌธ์, ์์ฆ ํซํ๋ค๋ IntelliJ๋ฅผ ์จ๋ณด๊ธฐ๋ก ํ๋ค.
IntelliJ๋ ์ ๋ฃ ๋ฒ์ ๊ณผ ๋ฌด๋ฃ๋ฒ์ ์ธ Community ๋ฒ์ ์ด ์๋๋ฐ spring boot ๊ณต๋ถ์ฉ์ผ๋ก๋ Community ๋ฒ์ ๋ง์ผ๋ก ์ถฉ๋ถํ๋ค. ๐ IntelliJ ์ค์น ๋ก ๋ค์ด๊ฐ์ ์ค์นํด์ค๋ค. ํ๋ก์ ํธ ์์ฑ ์ SDK ๋ฅผ ์ค์ ํ๋ผ๊ณ ํ ํ ๋ฐ, ์ด๋ฏธ ์ฐ๋ฆฌ๋ JDK ๊ฐ ์์ผ๋ฏ๋ก ์๋์ผ๋ก ์ ํ๋ ๊ฒ์ด๋ค.
SDK(Software Development Kit) ๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๊ณ ํตํฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ฝ๋ ์ํ, IDE, ๊ฐ๋ฐํ๊ฒฝ, ํ ์คํธ/๋ถ์ ํด, ํ๋กํ ์ฝ ๋ฑ์ ๊ฐ๋ฐ ๋๊ตฌ๋ค์ ๋งํ๋ค. JDK(Java Development Kit) ๋ ์๋ฐ ํ๋ซํผ์์ ์ฌ์ฉํ๋ SDK ์ด๋ค.
๋ง์ฝ ์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๐ ์ดํด๋ฆฝ์ค ์ค์น ๋ก ๋ค์ด๊ฐ์ dmg ํ์ผ์ ๋ค์ด ๋ฐ๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์์ ์ด๋ฏ๋ก for Enterprise java and Web Developers ๋ก ์ค์นํ๋ฉด ๋๋ค.
Gradle ์ค์น
๊ทธ๋๋ค์ ๋น๋ ์๋ํ ํด์ด๋ค. ๊ทธ๋๋ค์ด ์๋ค๋ฉด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ jar ํ์ผ์ ๋ค์ด๋ฐ์ ์ถ๊ฐํ๋ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ ํด์ผ ํ๋ค. ๊ทธ๋๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๋ณด๋ฅผ build.gradle ํ์ผ์ ๋ช ์ํ๋ฉด ์์์ ๋ค์ด๋ฐ์ ์ถ๊ฐํด์ฃผ๋ ๋๋ํ ๋๊ตฌ๋ค. ๊ทธ ์ธ์๋ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๊ธฐ์ ์ ์ ๊ณตํ๋ค.
์ด๋ฌ๋ฉด ๋ญ๊ฐ ์ข๋... ๋ฒ๊ฑฐ๋ก์์ ๋๋ ๊ฒ๋ ํธํ์ง๋ง, ํ๋ก์ ํธ๋ฅผ ๋ค๋ฅธ ํ๊ฒฝ์ ๋น๋ํด์ผ ํ ๋ ๋ณ๋์ ๊ณผ์ ์์ด ๋ฐ๋ก ๋น๋ํ ์ ์๊ฒ ๋๋ค. ์คํธ๋ง๋ถํธ์์ ์ฃผ๋ก ์ฐ์ด๊ณ , ์๋๋ก์ด๋ ์คํ๋์ค์ ๊ณต์ ๋น๋ ์์คํ ์ด๊ธฐ๋ ํ๋ค. ์คํ๋ง์์๋ Maven ์ ์ด๋ค๊ณ ํ๋ค
mac ์์๋ ๊ฐ๋จํ ๋ช ๋ น์ด ํ๋๋ก ๋ค์ด๋ฐ์ ์ ์๋ค.
brew install gradle
์ดํด๋ฆฝ์ค์ ๊ฒฝ์ฐ ๊ทธ๋๋ค ํ๋ฌ๊ทธ์ธ์ด ํ์ํ์ง๋ง, ์ธํ ๋ฆฌ์ ์ด์์๋ ์๋์ผ๋ก ์ง์๋๋ฏ๋ก ํน๋ณํ ํ์ ์๋ค.
Docker ์ MariaDB ์ค์น
๋๋ homebrew ๋ก mariaDB๋ฅผ ์ค์นํ๋๋ ๊ณ์ Can't connect to local server through socket '/tmp/mysql.sock' (2) ์ค๋ฅ๊ฐ ๋ฌ๋ค. ์ ๋ง ์ฌ๋ฌ ๋ฉฐ์น ์ ๊ฑธ์ณ ๋ฐฉ๋ฒ์ ์๋ํด๋ดค๋๋ฐ ๋ค ์คํจํด์... ๋์ปค๋ฅผ ์ด์ฉํด DB์๋ฒ๋ฅผ ๊ตฌ์ถํ ๊ฒ์ด๋ค. ๋์ปค์ ๊ดํด์๋ ๐
[Docker] ๋์ปค๋? ๋์ปค ๊ฐ๋จ ํํ ๋ฆฌ์ผ ๋ฅผ ์ฐธ๊ณ ํ์.
๐ [Docker] ๋์ปค์ mariaDB ์ค์นํ๊ธฐ ๋ฅผ ์ฐธ๊ณ ํด์ mariaDB๋ฅผ ์ค์นํ๋ฉด ๋๋ค.
๋ง์ฝ homebrew๋ฅผ ์ด์ฉํ๊ณ ์ถ๋ค๋ฉด ๐ mariaDB ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด ์ค์นํ๋ฉด ๋๋ค.
todolist Database ์์ฑ
๋ง๋ค์๋ mariadb ์ปจํ ์ด๋๋ฅผ ์์ํ๊ณ ์คํํ๋ค. ์ต์ ์ ๊ทธ๋๋ก ๋ถ์ฌ์คฌ๋ค๋ฉด ํ๊ธ ์ ๋ ฅ์ด ๊ฐ๋ฅํ๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ๋ ๊ฒ์ด๋ค.
$ docker container start mariadb
$ docker exec -e LC_ALL=C.UTF-8 -it mariadb bash
mariadb์ ๋ก๊ทธ์ธํ๋ค.
root@8c66d4754f83:/# mysql -u root -p
MariaDB [(none)]>
todolist db ๋ฅผ ์์ฑํ๋ค.
MariaDB [(none)]> create database todolist;
Query OK, 1 row affected (0.001 sec)
JPA ๋ฅผ ์ธ ๊ฒ์ด๋ฏ๋ก ํ ์ด๋ธ์ ๋ฐ๋ก ์์ฑํ์ง ์์๋ ๋๋ค.