๐Ÿ˜… Java Spring, JPA ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ๋„์ „๊ธฐ, ๊ทผ๋ฐ ์ด์ œ ์˜ค๋ฅ˜๋ฅผ ๊ณ๋“ค์ธ...

5038 ๋‹จ์–ด SpringJPAawsJavaec2JPA

์—„์ฒญ๋‚˜๊ฒŒ ๋”์šด ๋‚ ์”จ์™€ ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์—ˆ๋Š”๋ฐ, ์–ด๋Š๋ง ์•„์นจ์ €๋…์ด๋ฉด ์„œ๋Š˜ํ•ด์กŒ๊ณ  ๋™์‹œ์— ํ”„๋กœ์ ํŠธ๋„ ๋ฐฐํฌ ๋‹จ๊ณ„์— ๋Œ์ž…ํ–ˆ๋‹ค. ๋ง๋กœ๋งŒ ๋“ค์–ด ๋ณด์•˜๋˜ '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 ์ด์—ˆ๋‹ค.

https://pompitzz.github.io/blog/Java/awsEc2InstallJDK11.html#jdk-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5

ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์˜ ๋„์›€์„ ๋ฐ›์•„ 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 ๋“ฑ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜๋‹จ ๊ฒƒ์„ ํ™•์‹คํžˆ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.. ๊ทธ๋ฆฌ๊ณ  ์•„์ง ๋๋‚˜์ง€ ์•Š์•˜๋‹ค ใ…Žใ…Ž

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ