์ง๊ธ ์ฐ๋ฆฌ ํ์ฌ๋
ํ์ฌ ํ์ฌ์์ ์ด์ ์ค์ธ ์ด๋๋ฏผ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ธฐ ์ํด Trimou ๋ฅผ ์ฑํํด ๊ฐ๋ฐํ๋๋ฐ, ํด๋น ํ
ํ๋ฆฟ์ด Spring Boot 2.X ๋ฅผ ์ง์ํ์ง ์๋ ์ด์๊ฐ ์์ด ์ด์ฉ ์ ์์ด(?) Java 8 + Spring Boot 1.5.13 ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ์๋น์ค๊ฐ ์ด์๋๊ณ ์๋ค. ๋ํ ๋ชจ๋ ๋๋ฉ์ธ์ด ํ๋์ ํ๋ก์ ํธ์์ ๋ฉํฐ ๋ชจ๋๋ก ๊ด๋ฆฌ๋๊ณ ์์ด ์ฝ๊ฒ ๋ฒ์ ์ ์ฌ๋ฆด ์ ์๋ ์ํฉ์ด์๋ค.
์ด๋ฌํ ๋ด๋ถ์ ์ธ ์ด์๋ก ์ธํด Spring Boot 2 ๋ถํฐ ์ง์ํ๋ Optional ์ ์ฌ์ฉํ์ง ๋ชปํด ๋งค๋ฒ ๋ณ๋์ Nullable Check ๋ฅผ ํด์ค์ผ ํ๋ ๋ถํธํจ์ ํญ์ ๋๊ผ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ์ปค๋ฎค๋ํฐ์์ Kotlin ์ ๋ํ ์ฃผ์ ๊ฐ ์์ฃผ ์ธ๊ธ๋๋ค ๋ณด๋ ์์ฐ์ค๋ฝ๊ฒ ๊ด์ฌ์ ๊ฐ์ง๊ฒ ๋์๊ณ , ํ ์ด ํ๋ก์ ํธ๋ก ๊ฐ์ง๊ณ ๋๋ค ๋ณด๋ Java ์์๋ ๋๋ ์ ์์๋ ํธ๋ฆฌํจ์ด ํฌ๊ฒ ๋ค๊ฐ์๋ค.
- ํ์ฅ ํจ์๋ฅผ ์ ๊ทน ํ์ฉํด ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋๋ฅผ ์ค์ผ ์ ์์๋ค.
- Java ์์ ์ง์ํ์ง ์๋ ์ฌ๋ ค ๊ธฐ๋ณธ ํจ์๋ฅผ ํ์ฉํด ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋๋ฅผ ์ค์ผ ์ ์์๋ค.
- ๋ชจ๋ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Final ํ๊ธฐ ๋๋ฌธ์ ์๋์น ์๊ฒ ๋ฐ์ํ๋ NPE ๋ฅผ ์ค์ผ ์ ์์๋ค.
- when ๋ฌธ๋ฒ์ ํ์ฉํด ๋ถํ์ํ๊ฒ ์ค์ฒฉ๋ if ๋ฌธ ์ค์ฝํ๋ฅผ ์ค์ฌ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์์๋ค.
- ์์ฑ์ ์๊ท๋จผํธ์ ๊ธฐ๋ณธ ๊ฐ์ ํ ๋นํด ์ด๊ธฐํํ๊ฑฐ๋, Builder ํจํด๊ณผ ์ ์ฌํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํด Lombok ์ @Builder ๋ณด๋ ๋ ์ ์ฐํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์๋ค.
์์ ๊ฐ์ด ๋ด๊ฐ ๊ฒฝํํ ๊ฒ๋ค์ ์ฐ๋ฆฌ ํ์๋ค๋ ํจ๊ป ๋๋ผ๊ณ ์ฑ์ฅํ์ผ๋ฉด ํ๋ ๋ฐ๋์ด ์๊ฒจ ์ฌ๋ด ์ฐจ๊ธฐ ํ๋ก์ ํธ์ Kotlin + Spring Boot ๋ฅผ ๋์ ์ ์ ์ํ๊ณ , ํ์๋ค์ ํ์พํ ๋์ํด์ฃผ์๋ค. ๊ทธ๋์ ์ฌํด ์ด๋ถํฐ Kotlin + Spring Boot 3.0.2 ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ด๋ค.
ํ์ง๋ง ํ์๋ค ๋ชจ๋๊ฐ Kotlin ์ด ์ต์ํ์ง ์์ ์ํ๋ผ ์ด๋ ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ์ ๋ ์ด์ ๋ณด๋ค ๋น ๋ฅด๊ฒ ํด๊ฒฐํ์ง ๋ชปํ๋ ์ํ์๋ค. ๊ทธ๋ ๊ธฐ์ ์ด๋ฏธ Kotlin + Spring ์ ๋์ ํ ํ์ฌ์์๋ ์ด๋ป๊ฒ ์๋ฒ๋ฅผ ์ด์ํ๊ณ ๊ฐ๋ฐํ๋์ง, ํธ๋ฌ๋ธ ์ํ ์ ์ด๋ป๊ฒ ์งํํ๋์ง ๋ฑ ์ ๋ฐฐ๋ค์ ๋์์ด ๊ฐ์ ํ ํ์ํ๋ค.
๊ทธ๋ฐ ์์ค์ ํ๋์ด ๋๋ฅผ ๋๋์ง ๋๋ง์นจ ์ํฐ๋ X ์ธํ๋ฐ์์ ๊ณต๋์ผ๋ก ์ฃผ์ตํ๋ ๋คํธ์ํน ๋ฐ์
ํ์ฌ๊ฐ ์ด๋ฆฐ๋ค๋ ์์์ ๋ฃ๊ณ ๋ฐ์ ธ์ผ ๋ณธ์ ์ด๋ผ๋ ์๊ฐ์ผ๋ก ๋น ๋ฅด๊ฒ ์ ์ํ๋๋ฐ, ์ด๊ฒ ์ฌ๊ฑธ. ๋์ปฅ ๋น์ฒจ์ด ๋์ด ๋ฒ๋ ธ๋ค.
์ฒซ ๋คํธ์ํน ๋ฐ์
๊ฐ๋ฐ์๋ก ์ปค๋ฆฌ์ด๋ฅผ ์์ํ๋ฉด์ ์ฒ์ ๊ฐ์ง๋ ์ธ๋ถ ํ์ฌ๋ผ ์ค๋ ๊ธฐ๋ ํ๋ฉด์ ํํธ์ผ๋ก๋ ๊ธด์ฅ๋๊ธฐ๋ ํ๋ค. ์๋ํ๋ฉด ์๋ด ๋ฉ์ผ์์ ๋คํธ์ํน ์๊ฐ์ด ์์ ์์ ์ด๋ผ ๋ช ํจ์ ๋๋์ด ์ฑ๊ฒจ ์ค๋ผ๋ ๋ด์ฉ์ด ์์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฌด๋ฆฌ E ์ I ์ฌ์ด ๊ทธ ์ด๋๊ฐ์ ์์นํ MBTI ๋ผ๊ณ ๋ ํด๋ ์ฒ์ฑ์ ์ด์ฉ ์ ์๋ ๊ฑธ๊น? ํ์ฌ์ฅ์ ๋์ฐฉํ๊ธฐ ์ ๊น์ง ๋ง์์์ผ๋ก ๊ฐ๋ฐ์ ๋ถ๋ค์ด๋ ํ์ฌ ๊ด๊ณ์ ๋ถ์ ๋ง๋๋ฉด ์ฌ๋ฌ ์ผ์ด์ค์ ์ธ์ฌ ์๋ฎฌ๋ ์ด์ ์ ๋๋ ธ๋ค. ๊ทธ๋งํผ ์ฒซ ํ์ฌ ์ฐธ์ฌ๋ผ ๊ธด์ฅ๋๋ค.
๊ทธ๋ ๊ฒ ํ์ฌ ๋น์ผ, ์๊ฐ๋ณด๋ค ํ์ฌ์ฅ์ ์ผ์ฐ ๋์ฐฉํ๋ค. ์ด๋ฆํ์ ๊ฐ์ข ๊ธฐ๋ ํ๋ค์ ์๋ นํ ๋ค ์ด๋์ ์์ผ๋ฉด ์ข์์ง ๋ฌผ์ํ๋ค. ํ๋ถ์ ์์ ํญ์ ๋ค์๋ง ์์๋ ๊ธฐ์ต์ด ํํ๋ก ๋จ์๊ธฐ์ ์ด๋ฒ์๋ ํฐ ์ฉ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์๋ฆฌ์ ์์์ ์ฐธ์ฌํด ๋ณด๊ธฐ๋ก ํ๋ค.
์๋ฆฌ์ ์์ ์ฑ๊ฒจ ๋ฐ์ ๊ธฐ๋
ํ์ ์ดํด๋ดค๋๋ฐ ๋ชจ๋ ์ทจํฅ ์ ๊ฒฉํ๋ ์์ดํ
๋ค๋ก ์ฑ์์ ธ ์์ด ๊ธฐ๋ถ์ด ์ข์๋ค. ํนํ ์ธํ๋ฐ ์ฟ ํฐ..!
์ธํ๋ฐ์์ ๊ฐ๊ฒฉ ๋๋ฌธ์ ํญ์ ๋๋ฌผ์ ๋จธ๊ธ๊ณ ๋ค์์ ๊ธฐ์ฝํด์ผ ํ๋ ๊ฐ์๋ค์ด ๋ง์๋๋ฐ ๊ทธ ์น๊ตฌ๋ค์ ๋ค์ ๋ฐ๋ ค์ฌ ์ ์๊ฒ ๋๋ค. (๊ฐ์ฌํฉ๋๋ค!)
ํ์ฌ ์์์ ์๋ฆฌ๋ ์์ด์ค ๋ธ๋ ์ดํน
์ฌ์ค ๊ฐ๋ฐ์๋ I ๊ฐ ๋๋ถ๋ถ์ผ๊ฑฐ๋ผ๊ณ ๋๋ ๋ฏฟ์ด ์์ฌ์น ์๋๋ค. ๊ทธ๋ ๊ธฐ์ ์๋ก ์ด์ํ ๋ถ์๊ธฐ๋ฅผ ์ด๋ป๊ฒ ํค์ณ ๋๊ฐ๊น ๊ฑฑ์ ์ด ์ด๋ง์ ๋ง์ด ์๋์๋ค. ๊ทธ๋ฐ ๊ฑฑ์ ์ ์๊ณ ๋ฐ์ ์๋ฆฌ์ ํจ๊ป ํ์ฌ๋ฅผ ์์ ํ๋๋ฐ, ๊ฑฑ์ ๊ณผ๋ ๋ฌ๋ฆฌ ์์ด์ค ๋ธ๋ ์ดํน ์๊ฐ์ด ์ ๋ง ์ฌ๋ฐ์๊ณ , ์๊ฐ๋ณด๋ค ๋ค๋ค ์ ๊ทน์ ์ด์ จ๋ค! ๊ทธ ๋๋ถ์ธ์ง ๋ถ๋ค๊ณ ์๋ ๊ธด์ฅ๋ ๋ง์ด ๋ด๋ ค ๋์ ์ ์์๊ณ ์กฐ๊ธ ๋ ํธ์ํ ๋ง์์ผ๋ก ํ์ฌ์ ์ฐธ์ฌํ ์ ์์๋ค.
์ธ์ ๊น์๋ ๋ฐํ
๋จผ์ ๋๋ค๋ฆฐ CTO ์ด์ ์๋๋ฏผ๋์ [์ด์๋จ์์ผ ํ๋๊น, ์ฝํ๋ฆฐ] ์ธ์
์ผ๋ก ๋ณธ ํ์ฌ์ ๋ง์ ์ด์๋ค.
๋๋ค๋ฆฐ์ด ์ด๋ค ์๋น์ค๋ฅผ ์ด์ํ๊ณ ์๋์ง, ์ด๋ค ๋ฐฉ์์ผ๋ก ์ผํ๋์ง ๊ฐ๋จํ๊ฒ ์ค๋ช
ํด์ฃผ์
จ๊ณ , ์ดํ๋ก ํผ๋ดํ
์ ๋๋ค๋ฆฐ์ด ๋น๋ฉดํ ๋ฌธ์ ๊ฐ ๋ฌด์์ด๊ณ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ ํ ๋ฐฉ์์ผ๋ก ๋ํ๊ตฌ๋ฅผ ์ฐพ์ ๋์ฐ๋์ง ๋๋ค๋ฆฐ์ ๊ณ ๊ตฐ๋ถํฌ ๋ชจํ๋ด์ ๋ค๋ ค์ฃผ์
จ๋ค.
ํผ๋ดํ ์ ์ํด ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํด์ผ ํ๋ ์ํฉ์ด๋ ๋ค์ํ ๋ ํผ๋ฐ์ค์ ์ปค๋ฎค๋ํฐ๋ก ์ฝ๊ณ ์ ํํ๊ฒ ํธ๋ฌ๋ธ ์ํ ์ด ๊ฐ๋ฅํด์ผ ํ๋ ์ํฉ ๋ฑ ์ฌ๋ฌ ์ ์์ ๊ณต๊ฐ์ด ๋ง์ด ๋์๋ค. ์์ง 2๋ ์กฐ๊ธ ๋์ ์ฃผ๋์ด ๊ฐ๋ฐ์์ด์ง๋ง CTO ์์ด ํ์ ๊พธ๋ ค๊ฐ๊ณ ์๋ค ๋ณด๋ ๋์ฑ ๋ง์ ์๋ฟ์๋ค.
๊ทธ๋์ ํด๋น ์ธ์ ์์ ๋๋ค๋ฆฐ ํ์ด Kotlin + Spring ์ผ๋ก ๋์ด๊ฐ๋ฉด์ ๋๊ผ๋ ์ฅ์ ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ๋ง์ํด ์ฃผ์ จ๋ค.
- Data Class ํ์ฉ
- Extension Functions ์ ํตํ ๊ณตํต ์ ์ฑ ๊ด๋ฆฌ
- Kotlin Style ์ฝ๋ ์์ฑ
- Code Quality ํฅ์
- ์ ์ง๋ณด์์ฑ ์ฆ๊ฐ
- ์์ฐ์ฑ ํฅ์
ํผ์ ํ ์ด ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๋๋ ์ ๊ณผ ๋๋ถ๋ถ ๋น์ทํ๊ณ , Python ์ ์ ๋ชจ๋ฅด์ง๋ง ์ฝ๋๋ฅผ ๋น๊ตํ๋ฉฐ ์ด๋ค ์ ๋ค์ด ๋ง์กฑ์ค๋ฌ์ ๋์ง ๋ฐํํด ์ฃผ์๋ ๋ชจ์ต์ ๋ณด๋ฉฐ ์ฐ๋ฆฌ ํ์ Kotlin + Spring ๋์ ํ๊ธธ ์ฐธ ์ํ๋ค๊ณ ์๊ฐ์ด ๋ค์๊ณ , ์ธ์ ์ ๋ค์ ํ Kotlin ๋์ ์ ๊ธ์ ์ ์ผ๋ก ๋ฐ์๋ค์ธ ํ์๋ค์ด ๊ณ ๋ง๊ธฐ๋ ํ๋ฉด์ ์ฐ๋ฆฌ ํ์ด ๋์ฑ๋ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ ์ ์๊ฒ ๋ค๋ ๋ฏฟ์์ด ์๊ฒผ๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์ ๋ง๋ฌด๋ฆฌํด๋ด์ผ์ง. ์!
๋คํธ์ํน
Kotlin ์ ๋ฐฐ์ ํ๋ฐฐ๋ก ํ์ ๋๋์ด ์์ด ์ฌ๋ฌ ์ฃผ์ ๋ฅผ ๊ฐ์ง๊ณ ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ ์๊ฐ์ ๊ฐ์ก๋ค.
์ด์ด ์ข์๋์ง ์ฒ์์ ์์์๋ฆฌ์์ ๋ต ์ ๋ฐฐ๋๋ค์ด ๋ํ๋ฅผ ์ ์ด๋์ด ์ฃผ์
จ๊ณ , ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๊ฒฝํํ๊ธฐ ํ๋ ์ด์ผ๊ธฐ๋ค๋ ํด์ฃผ์
์ ๋ง์ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ฒ ํ ์ค ์๋ ๊ฐ๋ฐ์๊ฐ ๋์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๋คํธ์ํน์์ ๊ฐ์ฅ ์ข์๋ ์ ์, ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์ Kotlin + Spring ์ ๋์
ํ๋ฉฐ ๊ฒช์ ์ด์ผ๊ธฐ๋ค์ ๋ค์ ์ ์์๋ค๋ ์ ์ด๋ค.
ํ ์ฐ๋ฌผ์ ๋จธ๋ฌผ๋ฌ ์๋ ๋ ๊ฐ์ ์ฐ๋ฌผ ์ ๊ฐ๊ตฌ๋ฆฌ์๊ฒ ๋ ๋์ ์ธ์์ด ์๋ค๋ ์ฌ์ค์ ๊นจ๋ซ๊ฒ ํด ์ค ๊ฒ ๊ฐ์๋ค. ์ง๊ธ๊น์ง ํ์ฌ์์๋ ์ฌ์ ์์ด ๋๋ถ๋ถ ํผ์์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ ์ ๋ค์ด ๋ง์ ์ด๋ ค์์ผ๋ก ๋ค๊ฐ์๊ธฐ์ ๋ค๋ฅธ ๊ฐ๋ฐ์ ์ ๋ฐฐ๋๋ค์ ์ด๋ป๊ฒ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ํด๊ฒฐํ์๊น ๊ถ๊ธํ๋๋ฐ ๊ทธ๋ฐ ๊ฐ์ง๋ฌ์ด ๋ถ๋ถ๋ค์ ์์์ํ ๊ธ์ ์ ์์๋ ์๊ฐ์ด๋ผ ์ฐธ ์ข์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๊ด์ฌ์ฌ๋ฅผ ๊ฐ์ง ์ฌ๋๋ค๊ณผ ํจ๊ป ์ธ์ฌ ๋๋๋ ์๊ฐ๋ ์ข์๋ค. ์ฌ๋ฌ ํ์ฌ์์ ๊ทผ๋ฌด ์ค์ด์ ๊ฐ๋ฐ์๋ถ๋ค์ ๋ง๋๋ฉด์ ์์ฆ ์ด๋ค ๊ฒ๋ค์ด ๊ณ ๋ฏผ์ธ์ง, ๊ทธ ๊ณ ๋ฏผ์ ์ด๋ป๊ฒ ํค์ณ๋๊ฐ๊ณ ์๋์ง ์ด์ผ๊ธฐ๋ฅผ ๋ค์ผ๋ฉด์ ๋ง์ ์๊ทน์ด ๋์๊ณ ๋ ๋ํ ๊พธ์คํ ์ฑ์ฅํ๋ ๊ฐ๋ฐ์๊ฐ ๋์ด์ผ์ง ์๊ฐํ ์ ์์๋ ๋ํ์๋ค.
๋ง์น๋ฉฐ
์ฒซ ํ์ฌ๋ผ ๊ธด์ฅ์ ๋ง์ด ํ์ง๋ง, ๊ทธ๋ผ์๋ ์ ์ฆ๊ธฐ๊ณ ์๊ณ ์๊ฐ๋ณด๋ค ์ฃผ๋์ ์ผ๋ก ๋ํ๋ฅผ ์ด๋ ๋ ์์ ์ด ์กฐ๊ธ ๊ธฐํนํ๋ค๊ณ ๋๋๋ค.
์ฒ์๋ณด๋ ์ฌ๋๋ค๊ณผ ์ด๋ ต์ง ์๊ฒ ๋ํํ ์ ์์๋ค๋ ์ ๊ณผ ๊ฝค๋ E ์ฑํฅ์ด ๊ฐํ ๋ด ๋ชจ์ต์ ๋ฐ๊ฒฌํ๊ฒ ๋ ์ ์ด ๋ป๋ฐ์ ์ํ์ด์๋ค.
๊ทธ๋ฆฌ๊ณ ์ธ์ ๋ค์ ์ด๋ฐ ํ์ฌ์ ์ฐธ์ฌํ ์ ์์์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ผญ ์ด๋ฐ ๊ณต์์ ์ธ ํ์ฌ๊ฐ ์๋๋๋ผ๋ ๊ฐ๋ฐ์ ๋ชจ์์ด ์์ผ๋ฉด ์์ฃผ ๋๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ํ๋ ๊ฒ์ด ์ง ์ข์ ์ฑ์ฅ์ ๊พํ ์ ์๊ฒ ๊ตฌ๋ ๊นจ๋ซ๊ฒ ๋ ์๊ฐ์ด์๋ค. ์ด๋ฒ ๊ฒฝํ์ ๋ฐํ ์ผ์ ์์ผ๋ก ๋ ์ฑ์ฅํ๋ ๋ด๊ฐ ๋์ด์ผ์ง!
๋์ผ๋ก ๋ํ ๋๋ ์ฌ๋ฌ ๊ฐ๋ฐ์๋ถ๋ค๊ณผ ํ์ฌ ๋ด๋น์๋ถ๋ค, ํ์ฌ๋ฅผ ์ฃผ์ตํ ์ํฐ๋์ ์ธํ๋ฐ์๊ฒ ์ฌ์ฌํ ๊ฐ์ฌ๋ฅผ ์ ํ๋ค!
'์ถ > ๋ณ์๋ณ ์ผ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ด๋ค๋๋ผ ์ฝ๋ฉ ํ ์คํธ ํ๊ณ (0) | 2023.03.05 |
---|---|
2022 (0) | 2023.01.15 |
2021 (1) | 2022.01.02 |