๐ Java Spring, JPA ํ๋ก์ ํธ ๋ฐฐํฌ ๋์ ๊ธฐ, ๊ทผ๋ฐ ์ด์ ์ค๋ฅ๋ฅผ ๊ณ๋ค์ธ...
์์ฒญ๋๊ฒ ๋์ด ๋ ์จ์ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ์์ํ์๋๋ฐ, ์ด๋๋ง ์์นจ์ ๋
์ด๋ฉด ์๋ํด์ก๊ณ ๋์์ ํ๋ก์ ํธ๋ ๋ฐฐํฌ ๋จ๊ณ์ ๋์
ํ๋ค. ๋ง๋ก๋ง ๋ค์ด ๋ณด์๋ 'AWS'๋ฅผ ํตํด '๋ฐฐํฌ'๋ฅผ ํด๋ณด๋ ๊ฒ์ด ์ฌ๋ฏธ์์์ง๋ง, ๋ง๋ก๋ง ๋ค์ ๋งํผ ๋ง์ฃผ์ณค๋ ์๋ง์ ์ค๋ฅ๋ค์ ๊ธฐ๋กํด๋ณด๋ ค ํ๋ค.ใ
ใ
๐ EC2 ์ธ์คํด์ค git clone ์คํจ
EC2 ์ธ์คํด์ค๋ฅผ ์์ฑ ํ, ์ ์ํ์ฌ git์ ์ค์นํ๋ค. ์ฐ๋ฆฌ ํ๋ก์ ํธ repository ํตํด clone์ ์๋ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๋ฉ์ธ์ง๊ฐ ๋ฐ์ํ๋ค.
Permission denied (publickey).
https://chucoding.tistory.com/23
ํด๋น ์ธ์คํด์ค์ ๋ํ SSHํค๋ฅผ ๋ฑ๋กํ์ง ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์๋ค.
๋ฑ๋ก ํ ์ ์์ ์ผ๋ก clone๋๋ ๋ชจ์ต.
๐ gradlew test์ ์คํจ
ํด๋น ๋ฌธ์ ๋ ํด๊ฒฐํ๊ธฐ์ ์๋นํ ๊ธด ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
1. permission denied
๊ทธ๋ ๊ฒ clone์ ํ๊ณ ์ค๋ ๋ ๋ง์์ผ๋ก ./greadlew test
๋ฅผ ์งํํ์ง๋ง ๋ฐ๊ฒจ์ฃผ๋ ๊ฒ์ ๋ง์ฐฌ๊ฐ์ง๋ก permission denied์๋ค.
https://velog.io/@donghyeondev/.gradlew-test-%EC%8B%9C-Permission-denied
permission์ ๊ด๋ จ๋ ๋ฌธ์ ์ด๋ค๋ณด๋ ํด๋น ์ฌ์์ ๊ธ๋ฐฉ ์ฒ๋ฆฌํ ์ ์์๋ค. chomod +x ./gradlew
๋ฅผ ํตํด ๊ถํ์ ์ฃผ๋ ์คํํ ์ ์์๋ค.
2. java ๋ฒ์ ์ผ๋ก ์ธํ ๋น๋ ์คํจ
๋ค๋ฅธ ํํ์ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๋ฐ๊ฒฌํ ์ ์์๋ค.
invalid source release: 11
๋ผ๋ ๋ฉ์ธ์ง๋ฅผ ํตํด java ๋ฒ์ ์ ๋ฌธ์ ์์ ์ ์ ์์๋ค. ์ฐ๋ฆฌ์ ํ๋ก์ ํธ build.gradle
๋ฅผ ์ดํด๋ณด๋ฉด sourceCompatibility = '11'
, ์ฆ java 11์ด์๊ณ , ๋ด๊ฐ EC2 ์ธ์คํด์ค์ ์ค์นํ ๋ฒ์ ์ 8 ์ด์๋ค.
ํด๋น ๊ฒ์๊ธ์ ๋์์ ๋ฐ์ Java 11์ ์ค์นํ๊ณ ๋ค์ ์๋ํ๋ค.
3. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ธ๊ฐ..?
์ด์ ๊ณผ ๋ค๋ฅธ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ์ด ์์ ๋ถํฐ ์๋นํ ์๊ฐ์ด ์๋ชจ๋์๋ค.
๊ตฌ๊ธ๋ง์ ํตํด
https://velog.io/@kot8585/AWS-%EC%97%90%EB%9F%AC
์ฒซ๋ฒ์งธ ๋ฐฉํฅ์ผ๋ก์ ์ด ๊ฒ์๊ธ๊ณผ ๋น์ทํ ์ค๋ฅ์ธ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌธ์ ์ผ ๊ฒ ์ด๋ผ๋ ์๊ฐ์ด์๋๋ฐ, ์ฐ๋ฆฌ ํ๋ก์ ํธ์ Test๋ค์ ์งํํ๋ ๋ฏ ๋ณด์๋๋ฐ, Java Spring์์ application.yml
ํ์ผ์ DB์ ๋ํ ๋ช
์๊ฐ ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ์งํํ๋ค.
aws ํ๋ฆฌํฐ์ด๋ก์ ๋ฌด๋ฃ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ธ์คํด์ค, ์ฆ ์ฌ์์ด ๋งค์ฐ ๋ฎ์ ์ปดํจํฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํ ์ค๋ฅ์ผ ๊ฒ์ด๊ณ , ๋๋ฌธ์ swap memory๋ฅผ ์ค์ ํด๋ณด์๋ค.
https://transferhwang.tistory.com/506
ํด๋น ๊ธ์ ๋ฐ๋ผ swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ํ๋ค.
3-1. swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ํ๋ฉด์..
swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ํ ๊ณต๊ฐ์ ํ๋ณดํ๋ฉด์ ๋ ์์ํ ์ค๋ฅ๋ค์ ์ ํ ์ ์์๋๋ฐ..(๋์๋ ์ค๋ฅ์ ์ฐ์)
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
์ฌ์ง ์ฒซ์ค์์ ํ์ธํ ์ ์๋ ์ ์ฝ๋๋, swap ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ํ ๊ณต๊ฐ์ ํ๋ณดํ๋ ์ฝ๋์ด๋ค. ๊ฐ๋จํ ๋งํ์๋ฉด bs
๋ ๋ธ๋ญ ์ฌ์ด์ฆ
๋ฅผ ์๋ฏธํ๋๋ฐ, 128MB์ ๋ธ๋ญ์ ํ๋ณดํ๋ ํ์๋ฅผ 16๋ฒ ๋ฐ๋ณตํ๋ค๋ ์๋ฏธ์ด๋ค.
์ฌ๊ธฐ์ ๋๋ ํด๋น ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋ ๋ฐ์์ด ์์๋๋ฐ, ์ด์ ๋ ๋ธ๋ญ ์ฌ์ด์ฆ๊ฐ ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ์ ์ฉ๋๋ณด๋ค ์์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ฌ์ง์ ๋ค์ ํ์ธํ๋ฉด, Mem:
, free
๊ฐ 110M์ด๋ค.
4. ํ ์คํธ์ ์คํจ
swap๋ฉ๋ชจ๋ฆฌ ์ถ๊ฐ ์ดํ ๋๋ค์ ์๋ฌ ๋ฉ์ธ์ง๊ฐ ๋ฌ๋ผ์ก๋ค.
์ด์ ๋ ํ ์คํธ ์คํ ๋จ๊ณ๊น์ง ์์ง๋ง, ํ ์คํธ๊ฐ ํต๊ณผ๋์ง ์์๋ค.
์ฌ๊ธฐ์ ๋๋ค์ ์๋นํ ์๊ฐ์ ๊ณ ๋ฏผํ๋๋ฐ (๊ณผ๋ถํ)
๊ณ ๋ฏผ์ ์ ๋ค์๊ณผ ๊ฐ์๋ค. ์ฐ์ ์ค๋ฅ ๋ฉ์ธ์ง๋ dataSource
์ ๊ด๋ จ๋, ์ฆ ํ
์คํธ๋ฅผ ์คํ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๋๋ก ์ค์ ํด ์ฃผ์ง ์์๋ค๋ ๋ด์ฉ ๊ฐ์๋ค. ํ์ง๋ง ์์ ์ธ๊ธํ๋ฏ, application.yml
์ ๊ด๋ จ๋ ๋ด์ฉ์ด ์์ผ๋ฉด ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ์งํํ ํ
๋ฐ ๊ณ์ํด์ ์๋ฌ๋ฉ์ธ์ง๊ฐ ๋ฐ์ํ๋ค. EC2 ์ธ์คํด์ค๊ฐ ์๋ ๋ก์ปฌ์์ ํ
์คํธ๋ฅผ ์งํํ ๋๋ ์ด๋ค ๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๋ฐ์ํ์ง ์๋์ง ์ ํํ ๊ตฌ๋ถํ ์ ์์๋ค.
๊ฒฐ๊ตญ ๋ค์๋ ์ด์ ๋ฅผ ์ฐพ์ ์ ์์๋๋ฐ, ์ญ์ ์์ธ์ ๊ฐ๊น์ด ๊ณณ์ ์์๋ค.
์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ๋ก์ปฌ ๊ฐ๋ฐ์์๋ถํฐ mysql์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, build.gradle
ํ์ผ์ mysql๋ง ์์กด์ฑ์ด ์ถ๊ฐ๋์ด์ ธ ์์๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํด์ ๊ฒฐ๊ตญ H2 ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ๊ณ , ์ด๊ฒ๋ ์์กด์ฑ์ ์ถ๊ฐ๋ฅผ ํด์ผํ๋ค๋ ์ ์ ๋์ณค๋ค.
์ด๋ ๊ฒ ์์กด์ฑ์ testImplementation('com.h2database:h2')
ํ์ค์ ์ถ๊ฐํ๊ณ ,
BUILD SUCCESSFUL
์ ๋ฐ๊ฒฌํ ์ ์์๋ค!!
๋ง๋ฌด๋ฆฌ
application.yml
, build.gradle
๋ฑ ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ๋จ ๊ฒ์ ํ์คํ ๋๋ ์ ์์๋ค.. ๊ทธ๋ฆฌ๊ณ ์์ง ๋๋์ง ์์๋ค ใ
ใ
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ Java Spring, JPA ํ๋ก์ ํธ ๋ฐฐํฌ ๋์ ๊ธฐ, ๊ทผ๋ฐ ์ด์ ์ค๋ฅ๋ฅผ ๊ณ๋ค์ธ...), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@timointhebush/Java-Spring-ํ๋ก์ ํธ-๋ฐฐํฌ-๋์ ๊ธฐ1์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค