โจ ์๋ ๋ด ์
๋ฌด์ ์ฃผ์ ์ผ์ ์ค ํ๋๋ ๋ฐ์ดํฐ ์
๋ฐ์ดํธ์ ์๋ค. ์ด๊ฒ์ด ์๋ํ๊ฐ ๋์ด์๋ ๊ฒ์ด ์๋๋ผ, ํ 3๋ถ์ 1์ ์๋์ด๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. ๊ทธ์ค์์ ๋๋ ํน์ ์ฌ์ดํธ์์ ํ์ผ์ ๋ค์ด๋ก๋๋ฐ๊ณ , ๊ทธ๊ฒ์ aws s3 ๋ฒํท์ ์
๋ก๋๋ฅผ ํด์ผ ํ๋ ์ผ์ด ์๋๋ฐ, ์ด๊ฒ์ ๊ฒฝ์ฐ ๋ด๊ฐ ๋ค์ด ๋ฐ์ ํ ํน์ ์์์ ๋ง๊ฒ ์ด๋ฆ ๋ณ๊ฒฝ ํ์ ์ฌ์
๋ก๋๋ฅผ ํด์ผ ํ๋ค. ํนํ ์๋์ฐ ํ๊ฒฝ๊ณผ ๋ค๋ฅด๊ฒ ๋งฅ์ ๊ฒฝ์ฐ๋ ๋์์ ์์ถ์ด ์ ๋๊ธฐ ๋๋ฌธ์ ์ด์ ์๋ ํ๋ํ๋ ์ง์ ์
๋ก๋๋ฅผ ํ์ด์ผ ํ๋ค. ์ด๊ฒ์ ๊ฐ๋ตํํ์ฌ ์ ์คํฌ๋ฆฝํธ๋ก ํ๋ฒ์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ , ์ด๊ฒ์ ๋ง๋๋ ๊ณผ์ ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค. ๐ชก ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ค์ ๋จผ์ ์์
์ ํ์ํ ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ์ ๋ณ์๋ค์ ์ค์ ํ๋ค. #!/bin/bash# ์์
๋๋ ํ ๋ฆฌ ์ค์ WORK_DIR=..
์ ์ฒด ๊ธ
๐โฌhttps://github.com/jeje-jjo
์ ๊ฑฐ ๋ค ๋ค์ผ๋ฉด ๋ด ํ๋ฆฌ๋ ์์๋๊ณ ๋๋ ํ๋ณตํ๊ณ ์ฆ๊ฒ๊ฒ ์ง,, ์ ๋ฐ ๋น์ฒจ ์ ๋ฐ ๊ธฐ์ ๊ธฐ๋๋ฐฑ๋ฒ์ค,,
โจ ์ค๋์ ๋ด๊ฐ ์ต๊ทผ์ ๊ฒช์ ๋ฌธ์ ์ด๊ณ , ๊ทธ๊ฒ์ ํด๊ฒฐํด์ ํฌ์คํ
์ ๋์ ์ฌ๋ณธ๋ค... ๋ด ์ฃผ์ ์
๋ฌด๋ ๋ฐ์ดํฐ ๋ฐฐ์น๋ฅผ ์คํํ๊ณ , ๊ทธ๊ฑธ ๊ด๋ฆฌํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ DB๋ฅผ ์ต์ ํํ๋ ๊ฒ์ด๋ค.. (์ฌ์ค 1์ธ ๊ฐ๋ฐ์๋ ๋ค ํด์ผ ๋ผ.) ๊ทผ๋ฐ ๋ง์ด์ผ, ์ต๊ทผ์ S3 ๋ฒํท์์ ์คํธ๋ฆฌ๋ฐ์ผ๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๋ ๊ฒ ์๊พธ ์ค๋ฅ๊ฐ ๋๋ค? ๊ทธ๊ฒ๋ ์ง์ง ๋ค์ํ๊ฒ!SSL ์ธ์ฆ ์ธ์
๋ง๋ฃ ๋ฌธ์ ๐๋ฐ์ดํฐ ๊ธธ์ด ์ ๋ง์ ๋ ์์ธ ์ฒ๋ฆฌ ๋ชปํ๋ ๋ฌธ์ ๐์ ์ ๋ถ์์ ๋ฌธ์ ๐์ด ์ธ ๊ฐ์ง ๋ฌธ์ ๋๋ฌธ์ ์ ๋ง ๋จธ๋ฆฌ๊ฐ ์ํ ๋ค.. ์์ธ ์ฒ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ ๋ง๋ค๊ณ , ๊ณ์ํด์ ์์ ํ์ง๋ง... ๋ฌธ์ ๋ ๋์์ด ๋ฌ๊ณ . ์ ๋ง ์ ๋ง์ ์ด์๋ค. (๋ฌด๋ ค ์์์ผ๋ถํฐ ๊ธ์์ผ๊น์ง ๊ณ์ ์์ธ์ฒ๋ฆฌ๋ง ๊ตฌ์ฑํ๋ค.) ์ต์ ์ด๋งํผ์ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋ง๋ค์๊ณ , ๋ ๋ง์,,, ์์ธ์ฒ๋ฆฌ ๊ณผ์ ์ด ์๋ค...
โจ ์ฐ๋ฆฌ ํ์ฌ์์ ์ฃผ์ํ ์ผ ์ค ํ๋๋ ์ ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ์ ๋ํ ์
๋ฐ์ดํธ๋ฅผ ์ํํ๋ ๊ฒ์ด๋ค. ์์ง์ ์ธ์์ด ๋ ํผ์! (์จ๋ฆฌ ์!) ์ํ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ ์๋ ํํ๋ก ์์ ํ ๋ฐฐ์น๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์ธ๋ฐ, ์ ๋ฒ์ ์น api๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ , ๊ทธ๊ฒ์ ์ ์ ํ๋ ๊ณผ์ ์ ๋ง๋ค๊ฒ ๋๋ฉด์(์ด๊ฒ๋ ๊ธฐํ๊ฐ ๋๋ฉด ๋ธ๋ก๊น
์ ํด์ผ์ง) WebFlux ๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ฑธ? ์ด๊ฑธ ์ฌ์ฉํ๋๊น ๋ฐฐ์น ํ๋ก์ธ์ค ์ข
๋ฃ ํ ์๋์ผ๋ก 8080 ํฌํธ๊ฐ ๋ซํ์ง ์๋ ๊ฒ์ด๋ค! ์ฐธ๊ณ ๋ก, ์๋ ์ ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ์ง ์์์ ๋๋ ํฌํธ๋ ์ฌ์ฉ์ ํ์ง ์์๋ค(...!) ๊ทธ๋์ WebFlux์ ์ ์ฌ์ฉํ๋์ง, ์ด๊ฑธ ์ฌ์ฉํ๊ณ ๋์ ๋ซํ์ง ์๋ ์ด์ ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ํ๋ฉด ๋ซ์ ์ ์๋์ง๊น์ง ์์ฑํด๋ณด๊ณ ์ ํ๋ค ๐ชก WebFlux ? ..
โจ Spring batch๋ฅผ ๋ง๋ค๋ ์ค, ๋ฐ์ดํฐ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ์๊ฐ์ด ์๋ค. ํ 6๋
์ ์ ๊ตญ๋น ๊ต์ก์ ๋ค์ ๊ฐ๋ฐ์๋ค์ด๋ผ๋ฉด ์๊ฒ ์ง๋ง, ๊ทธ๋๋ ๋ฌด์กฐ๊ฑด vo, service, controller, interface๋ก ์ด๋ฃจ์ด์ง ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ์ ๋๊ฐ ์์ด vo๋ผ๊ณ ๋ง๋ค๋ค๊ฐ, VO์ DTO์ ์ฐจ์ด๋ฅผ ์กฐ๊ธ ๋ ๋ช
ํํ๊ฒ ์์์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ค. ๋ค. ์ 3๋
์ฐจ ๋ง์์. ๐ชก VO(Value Object) VO๋ ๊ฐ์ ๋ํ๋ด๋ ๊ฐ์ฒด๋ก, ๋๋ฉ์ธ ๋ก์ง์ ํฌํจํ ์ ์๋ ํน์ง์ด ์๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ผ๋ถ๋ก ์ฌ์ฉ๋๋ค. ๐ฃ ํน์ง๋ถ๋ณ์ฑ(Immutability) : VO๋ ์์ฑ ์ดํ ๋ด๋ถ ์ํ๊ฐ ๋ณํ์ง ์๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ ํ๊ฒ ๊ณต์ ๋๊ณ ์บ์ฑ๋ ์ ์๋ค.๋๋ฑ์ฑ(Equality) : ๋ด๋ถ ๊ฐ์ด ๊ฐ..
โจ ํ์ฌ์ ์
์ฌํ๊ณ ์ ์ผ ๋ง์ด ํ๋ ์ผ, ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ํด์ผ ํ๋ ์ ์ผ ์ค์ํ ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธ ํ๋ ์ผ์ด๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด aws ๋ฒํท์ ์๋ ๋ฐ์ดํฐ๋ค์ ๊ฐ๊ณตํ๊ณ , ์คํ๋ง ๋ฐฐ์น๋ฅผ ํตํด ์คํํ๋ค. ์ด ๊ณผ์ ์ ์ฒ์ ํด๋ณด๋ฉด์ bean๊ณผ jobScope์ ๊ฐ๋
์ ์กฐ๊ธ ๋ ๋ช
ํํ๊ฒ ์ดํดํ ํ์๊ฐ ์์์ ๋๊ผ๋ค. ๐ชก Bean์๋ฐ๊ฐ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ผ๋ ๊ฒ์ ๋๊ตฌ๋ ์๊ณ ์๋ ์ฌ์ค์ด๋ค. bean์ ๊ทธ๊ฒ์์ ์ข ๋ ๋ค์ด๊ฐ์, ์คํ๋ง ์ปจํ
์ด๋์ ์ํด ๊ด๋ฆฌ๋๋ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์คํ๋ง ์ปจํ
์ด๋์ ์ํด์ ๊ด๋ฆฌ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ถ๋ฌ์ฌ ๋, new ๋ฅผ ์ด์ฉํด์ ์ด๊ธฐํ๋ ์ญ์ ํ ํ์๊ฐ ์๊ณ , ๋์ผํ ์ญํ ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ๊ณ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ณณ์์ ๋์์ ์ฌ์ฉํ ์ ์๋ค. ํจ์จ์ฑ์ด..
์คํํธ์
์ ํ์ฌ ๊ธฐ์กด ๊ฐ๋ฐ์๊ฐ ๋๊ฐ ์ํ, 1์ธ ๊ฐ๋ฐ์ ๋ ํผ์ ๋จ์ ์ํ์์ DB๋ฅผ ๋ดค์ ๋ ์ํ๊ฐ ์ ํ ๊ด์ฐฎ์ง ์์๋ค. FK๊ฐ ์์ผ๋ฉด ๊ทธ๊ฒ๋์ ํธ๋ฆฌ๊ฑฐ๋ผ๋ ์์ด์ผ ํ๋๋ฐ, ๊ทธ์ผ๋ง๋ก ๊ทธ๋ฅ ํ
์ด๋ธ๋ง ๋ก! ์๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฏธ๊ฐ ์กด์ฌํ์ง ์๋ ์ํ์ธ ๊ฒ์ด๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌํฉํ ๋ง์ ๋ํ๋์๊ฒ ์ ์ํ๊ณ , ์ต์ 6๊ฐ์ ์ต๋ 1๋
์ ๋ฐ์๋๋ค. ๊ธฐํ๊ณผ ์ค๊ณ์ ์ฝ 6๊ฐ์ ์ด์์ ์ก๊ณ , ์ค์ ์ค๊ณ๋ฅผ 3๊ฐ์๋ก ์ก์์ผ๋ ๊ธฐ๊ฐ์ ์ ๋ฒ ๋๋ํ๋ค. ํ์ฌ ์๋น์ค๊ฐ ์ด๊ธฐ ์ํ์ด๊ธฐ์ ์ฌ์ฉํ๋ ํ
์ด๋ธ์ด 9๊ฐ, ์คํค๋ง๊ฐ 100๊ฐ ์ด๋ด์ธ ๊ฒ์ ์๊ฐํด๋ณผ ๋ ์ง๊ธ์ด ๋ฐ๋ก์ก๊ธฐ์ ์ ์ผ ์ข์ ์๊ธฐ์์ ํ์คํ๋๊น ๋ฐ๋์ ์ง๊ธ ํด์ผํ๋ค๋ ์๊ฐ์ด ๊ฐ๋ํ๋ค. ๋, ๋ด ์ต์ข
๋ชฉํ์ธ DBA๊ฐ ๋๊ธฐ ์ํด์ ์์ฒญ๋ ๊ธฐํ๋ผ๊ณ ์๊ฐํ ๊ฒ๋ ์๋ค!..
ํ์ฌ์ ๋ค์ด์ค๊ณ , ์ ์ผ ํฐ ์ผ ์ค์ ํ๋๊ฐ ์ฃผ๊ธฐ์ ๋ฐ์ดํฐ ๊ฐฑ์ ๊ณผ ํจ๊ป view๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ์ ์์๋ค.๊ทธ๋์ ์
๋ฐ์ดํธ๋ฅผ ํ๊ฒ ๋๋๋ฐ, ํ๋คํ๋ค ์ด๊ฒ ์๊ฐ์ด ๋๋ฌด ๊ฑธ๋ฆฌ๋ ๊ฒ์ด ์๋๊ฐ? ์ด์ฌํ ํ๋๋ฐ, view ์
๋ฐ์ดํธ ์๊ฐ์ด ๊ฑฐ์ ํ์๊ฐ์ด ๋์ด๊ฐ๋ ์ํฉ์ ๊ฐ๋งํ ๋ฐ๋ผ๋ณด๋ค๊ฐ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ์๊ฒ ๋์๋ค. Materialized view๋ ์ผ๋ฐ view์๋ ๋ค๋ฅด๊ฒ ์ฌ์ฉ์๊ฐ ์ง์ ์
๋ฐ์ดํธ ๋ช
๋ น์ด๋ฅผ ์คํํด์ผ ํ๋ค. view์ ๊ฐ์ด ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ์์ด ๋
ผ๋ฆฌ์ ์ ๊ทผ์ ํ๋ ๊ฒ ์๋๋ผ, ์
๋ฐ์ดํธ ๋ช
๋ น์ ํตํด ๋ฌผ๋ฆฌ์ ์ผ๋ก db์ ์ ์ฉ์ด ๋๋ค. ๋ณต์กํ ๋ค์ค ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋์ , ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ฌ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๋ฐ๋ฅธ ๋น์ฉ์ด ๋ฐ์ํ๊ณ , update๋ฅผ ์คํํ๋ฉด ์
๋ฐ์ดํธ ๋๋ ๊ฒ๋ง ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ด ์๋๋ผ, ์ ์ฒด๋ฅผ ๋ค์ ..