์ ๋ฒ์ ๋๋ ๋ง๋ค์๋ค. ๋ฌด์์? ๊ฒฐ์ ์์คํ
์ ์ํ ์ค๊ณ ์ฒซ๋จ๊ณ๋ฅผ. ๊ธฐ์ด์ ์ธ ํ
์ด๋ธ์ ์ ์ํ์ง๋ง, ์์ง ์๋ ๊ฒ๋ค๊ณผ ๋ฌธ์ ๋ค์ด ๋ง์ด ๋จ์์๋ค. ์ง๊ธ ๋ง๋ ๊ฒ์ ํ๋กํ ํ์
์ผ๋ก ์์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ง ๋ค์ด๊ฐ์๊ณ , ๋๋ ์ด์ ์ด๊ฒ๋ค์ ํ์ฅํด๋๊ฐ๋ฉฐ ๋์ฑ ๋ง์ ๊ฒ์ ๋ฃ์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด์ ํฌ์ธํธ์ ์๋ฉธ๊ธฐํ์ด๋ฉด ์๋์ผ๋ก ์๋ฉธ๋ ์ ์๊ฒ ๊ธฐํ์ ์ ํ๋ค๋ ๊ฐ, ๊ด๋ฆฌ์๊ฐ ์ฟ ํฐ์ ๋ง๋ค๊ณ ์ ํด์ง ์๋์ ๋ฟ๋ฆฐ๋ค๋ ๊ฐ, ๊ฒฐ์ ๊ฑด์ ๋ํด์ ์ทจ์๋ฅผ ์์ฒญํ๋ค๋ ๊ฐ ํ๋ ์ฌํญ๋ค ๋ง์ด๋ค. ๊ทธ๋ฐ ๊ฒ์ ์งํํ ์ ์๋๋ก! ์ด์ ๋ค์ ์คํ
์ ๋ฐ์์ผ ํ๋ค. ์ด๋ฒ์๋ ๋จธ๋ฆฌ๊ฐ ์์ฃผ ์์ฃผ ์์ฃผ ๋ณต์กํด์ง๋๋ฐ, ๊ทธ๋๋ ์ด์ฉ๊ฒ ์ด? ํด์ผ์ง. ๐ฏ 01. ๋ณด์ํ ์ ์ ์ฐพ์ ํค๋งค๋ ์ฌ์ ์์ฃผ ๊ธฐ์ด๊ฐ ๋๋ ๊ฒ์ ๋ง๋ค์๋ค๋ฉด, ์ด์ ๋ ๊ทธ ๊ธฐ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ๋ฅผ ํด์ผ ..
์ ์ฒด ๊ธ
๐โฌhttps://github.com/jeje-jjoํ์ฌ ์ฐ๋ฆฌ ์๋น์ค์์ ๊ฒฐ์ ์ง์์ ํ์ง๋ง, ์ด๋๊น์ง๋ ๋จ๊ฑด ๊ฒฐ์ ์ด๋ค. ํนํ ๊ฑด๋ณ ๊ฒฐ์ ๊ฐ ํน์ ์ํฉ์๋ง ๋ฐ์ํ๋ ์๋๋ฆฌ์ค์ด๊ธฐ ๋๋ฌธ์, ๊ฒฐ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํ
์ด๋ธ, ๋ฌด์์ ๊ฒฐ์ ํ๊ณ ๊ทธ๊ฒ์ ๊ธ์ก์ด ์ด๋ป๊ฒ ๋์ด์๋์ง์ ๋ํด ๋ค์ด์๋ ํ
์ด๋ธ ์ด ๋ ๊ฐ์ ํ
์ด๋ธ์ ์ฌ์ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒ์ ํฌ์ธํธ ๊ฒฐ์ ๋ก ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ ๋ง์ ์์์ผ๋ก, ์ฒซ ๊ฑธ์์ ๋ด๋๊ฒ ๋์๋ค. (์ด๋ ค์คใ
) ์ด์ ๊ฒฐ์ ์์คํ
์ ์ฒ์๋ถํฐ ๋ง๋ค๋ฉด์ ๊ทธ ๊ธฐ๋ก์ ํฌ์คํ
ํด๋๊ฐ๋ฉฐ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค. ๐ฏ 01. ํฌ์ธํธ ๊ฒฐ์ ๋ก ์ ํ์ ์ํ ์๊ตฌ์ฌํญ ์์งํ๊ธฐ์ ์ผ ์ค์ํ๊ณ ์ค์ํ ์
๋ฌด... ์๊ตฌ ์ฌํญ ํ์ธํ๊ธฐ! ๋ํ์ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค. - ์ ๊ท ํ์์ผ ๊ฒฝ์ฐ์ ๋ฌด๋ฃ ์ถฉ์ ํฌ์ธํธ๊ฐ ์์ด์ผ ํ๋ค.- ํฌ์ธํธ๋ฅผ ์ถฉ์ , ์ฌ์ฉ์ ํ ์ ์์ด์ผ ํ๋ค.- ์ฟ ํฐ์ ํตํ..
โจ ์๋ ๋ด ์
๋ฌด์ ์ฃผ์ ์ผ์ ์ค ํ๋๋ ๋ฐ์ดํฐ ์
๋ฐ์ดํธ์ ์๋ค. ์ด๊ฒ์ด ์๋ํ๊ฐ ๋์ด์๋ ๊ฒ์ด ์๋๋ผ, ํ 3๋ถ์ 1์ ์๋์ด๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. ๊ทธ์ค์์ ๋๋ ํน์ ์ฌ์ดํธ์์ ํ์ผ์ ๋ค์ด๋ก๋๋ฐ๊ณ , ๊ทธ๊ฒ์ aws s3 ๋ฒํท์ ์
๋ก๋๋ฅผ ํด์ผ ํ๋ ์ผ์ด ์๋๋ฐ, ์ด๊ฒ์ ๊ฒฝ์ฐ ๋ด๊ฐ ๋ค์ด ๋ฐ์ ํ ํน์ ์์์ ๋ง๊ฒ ์ด๋ฆ ๋ณ๊ฒฝ ํ์ ์ฌ์
๋ก๋๋ฅผ ํด์ผ ํ๋ค. ํนํ ์๋์ฐ ํ๊ฒฝ๊ณผ ๋ค๋ฅด๊ฒ ๋งฅ์ ๊ฒฝ์ฐ๋ ๋์์ ์์ถ์ด ์ ๋๊ธฐ ๋๋ฌธ์ ์ด์ ์๋ ํ๋ํ๋ ์ง์ ์
๋ก๋๋ฅผ ํ์ด์ผ ํ๋ค. ์ด๊ฒ์ ๊ฐ๋ตํํ์ฌ ์ ์คํฌ๋ฆฝํธ๋ก ํ๋ฒ์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ , ์ด๊ฒ์ ๋ง๋๋ ๊ณผ์ ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค. ๐ชก ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ค์ ๋จผ์ ์์
์ ํ์ํ ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ์ ๋ณ์๋ค์ ์ค์ ํ๋ค. #!/bin/bash# ์์
๋๋ ํ ๋ฆฌ ์ค์ WORK_DIR=..
์ ๊ฑฐ ๋ค ๋ค์ผ๋ฉด ๋ด ํ๋ฆฌ๋ ์์๋๊ณ ๋๋ ํ๋ณตํ๊ณ ์ฆ๊ฒ๊ฒ ์ง,, ์ ๋ฐ ๋น์ฒจ ์ ๋ฐ ๊ธฐ์ ๊ธฐ๋๋ฐฑ๋ฒ์ค,,
โจ ์ค๋์ ๋ด๊ฐ ์ต๊ทผ์ ๊ฒช์ ๋ฌธ์ ์ด๊ณ , ๊ทธ๊ฒ์ ํด๊ฒฐํด์ ํฌ์คํ
์ ๋์ ์ฌ๋ณธ๋ค... ๋ด ์ฃผ์ ์
๋ฌด๋ ๋ฐ์ดํฐ ๋ฐฐ์น๋ฅผ ์คํํ๊ณ , ๊ทธ๊ฑธ ๊ด๋ฆฌํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ 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 ๋ฅผ ์ด์ฉํด์ ์ด๊ธฐํ๋ ์ญ์ ํ ํ์๊ฐ ์๊ณ , ๋์ผํ ์ญํ ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ๊ณ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ณณ์์ ๋์์ ์ฌ์ฉํ ์ ์๋ค. ํจ์จ์ฑ์ด..