About
๐ฑ ์๋ผ๋ ๊ฐ๋ฐ์ ๐ก ๋ค์ ํ ๊ฐ๋ฐ์๋๊ธฐ
์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด 8์ฃผ์ ๊ฐ๊ฒฉ์ ๋๊ณ 26ํ ๋ฐ๋ณตํ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋ง์ ๊ธฐ์ต์ ํ๋ค. ์์ฝํ์๋ฉด, ์ค๋ซ๋์ ํ์ตํ ๋งํผ ๋ ์ค๋ ๊ธฐ์ตํ๋ค. ๋ ๋ง์ ์๊ฐ์ ํ์ตํด์ผ ํ๋ค๋ ๊ฒ์ด ์๋๋ผ ๋ ์ค๋ ๊ฐ๊ฒฉ์ ๋๊ณ ํ์ตํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์ด๋์ ์ฝ์ ๊ฒ๋ค, ์ฑ ์ ๋ด์ฉ์ ๊ทธ๋๋ก ๋ณต์ฌํ๋ ๊ฒ์ด ์๋๋ผ ์ต๋ํ๊ณ ๊นจ๋ฌ์ ๊ฒ๋ค์ ๋๋ง์ ๊ฒ์ผ๋ก ์ํํ๊ณ ๊ธฐ๋กํ๋ ๊ณณ
๐ ์ฝ์ ์ฑ (50)
์ฐ๋๋ฅผ ํด๋ฆญํ๋ฉด ์ฝ์ ์ฑ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ต๋๋ค
2024 (1)
- ์ฅ์์์ ๋ง๋์
2023 (17)
- ๋ฉด์ ์ ์ํ CS ์ ๊ณต์ง์ ๋ ธํธ
- ํ์ด๋ธ ๋ผ์ธ์ค ์ค๋ธ ์ฝ๋
- ๋ฆฌ์ผ ๋ง์ด์์คํ์ 8.0 2๊ถ
- ํ๋ฃจ์ ํ ๊ฑธ์์ฉ ํ๋ณตํด์ง๊ธฐ
- ํ ๊ถ์ผ๋ก ์ฝ๋ ์ปดํจํฐ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ
- ์น ๊ฐ๋ฐ์๋ฅผ ์ํ ๋๊ท๋ชจ ์๋น์ค๋ฅผ ์งํฑํ๋ ๊ธฐ์
- ํผํ์จ์ด
- ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ค์ ์ ๋ฌธ
- ํ๋ก๊ทธ๋๋ฐ ์ฌ๋ฆฌํ
- ๋์์ธ ํจํด์ ์๋ฆ๋ค์
- ์๊ณ ๋ฆฌ์ฆ (๋ก๋ฒํธ ์ธ์ง์ )
- ์ ๋ฌด ์๊ฐํ
- ์๋ฐ ์ฝ๋ฉ์ ๊ธฐ์
- ๋ชจ๋ ์๋ฐ ์ธ ์ก์
- ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ ํจํด
- ์๊ฐํ๋ ๋๋ ํ์ค์ผ
- ๋ชจ๋ ์ถ์ ํ๋ฅธ๋ค
2022 (18)
2021 (14)
RESUME
์ด๊ท์
๋ฐฑ์๋ ๊ฐ๋ฐ์ | Java ยท Kotlin ยท Spring Boot ยท Python ยท Django
Seoul, South Korea ยท kyuwoon369@gmail.com ยท linkedin.com/in/eekyuwon ยท github.com/kyuwon53
์ฌ์ฉ์ ์ค์ฌ ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋น ๋ฅด๊ฒ ์ ์ํ๊ณ ๊ตฌ์กฐ์ ์ํฉํธ๋ฅผ ๋ง๋ค์ด๋ด๋ ๋ฐฑ์๋ ์์ง๋์ด์ ๋๋ค. ์ปค๋จธ์ค์์๋ 30๋ง+ ํ์์ 30๋ ๋ ๊ฑฐ์ ํ์ยท์ฃผ๋ฌธ/๊ฒฐ์ ์์คํ ์ ๋ฌด์ค๋จ์ผ๋ก ์ ๊ท ์ ํํ๊ณ ์ด๋ฒคํธยท๊ถํ ๋ฑ ๊ณตํต ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๊ณ , ์ ์กฐ ์ฐ์ AI์์๋ ๋์ฉ๋ ์ผ์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์ฌ์ค๊ณํด ๋์๋ณด๋ ์กฐํ๋ฅผ 5์ด ์ด์์์ 1์ด ๋ฏธ๋ง์ผ๋ก ๊ฐ์ ํ์ผ๋ฉฐ, ์ธ๋ฌด์์๋ ์ ๊ตญ๋ฏผ์ด ์ฌ์ฉํ๋ ํํ์ค์์ ํธ๋ํฝ์ด ๊ฐ์ฅ ๋ง์ ์ข ํฉ์๋์ธ ์ผ๋ฐ์ ๊ณ ์(5์ ์ ๊ณ 1,000๋ง ๊ฑด ๊ท๋ชจ) ๊ฐ๋ฐ์ ๋ด๋นํ์ต๋๋ค. ์๋ก์ด ์๊ตฌ์ฌํญ์ ๋น ๋ฅด๊ฒ ์ดํดํ๊ณ ๋ฌธ์ ์ ๋ณธ์ง์ ํ์ ํ์ฌ, ์์ ์ฑ๊ณผ ํ์ฅ์ฑ ์ค์ฌ์ ๋ฐฑ์๋ ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐ ๊ฐ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๊ฒฝ๋ ฅ
ํ๋น์ค ยท ๊ณตํต ์๋น์ค ๊ฐ๋ฐํ ํ์ฅ / ๋ฐฑ์๋ ๊ฐ๋ฐ | 2024.09 ~ ์ฌ์ง ์ค
๊ฐ๋ฐ์ ๋์ ์จ๋ผ์ธ ํ์ต/์ฝํ ์ธ ์ปค๋จธ์ค ํ๋ซํผ. ์ฃผ๋ฌธ/๊ฒฐ์ ยทํ์ยท์ํยท์ฝํ ์ธ ๋๋ฉ์ธ์ ์ ๊ท ์์คํ ์ ํ๊ณผ ๊ตฌ์กฐ ๊ฐ์ ์ ์ฃผ๋.
์ฃผ์ ๋ด๋น ์์ญ
- ์ฃผ๋ฌธ/๊ฒฐ์ ยท์ฟ ํฐยท์ ๋ฆฝ๊ธ ์ ๊ท ์์คํ ์ ํ, ๊ฒฐ์ ์ฌ(PG) ์ ํ ๋ฐ ๋ณธ์ธ์ธ์ฆ(ํฌํธ์/์๋ฒํฌ์๋ฒ) ์ด๊ด
- ํ์ ์์คํ ์ ๊ท ์ ํ๊ณผ ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ ๊ถํ(RBAC) ์ฒด๊ณ ๊ตฌ์ถ
- ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ณด์ ์์คํ , ์ ๊ณ ํ๊ธฐ ๋ฑ ๊ณตํต ๊ธฐ๋ฅ ์ค๊ณยท๊ตฌ์ถ
- ์ฝํธํธยท๊ตญ๋น์ง์(KDC) ์๊ฐ์ ์ฒญ/์ ๊ณผ, ์ธ๋ฏธ๋, ๋ฒ๋ ๋ฑ ์ ๊ท ์๋น์ค ๋๋ฉ์ธ ๊ตฌ์ถ
- ์ํยท์นดํ ๊ณ ๋ฆฌยท๋ฆฌ๋ทฐ, ๋ง์ด์ฝํ ์ธ , ์คํ์ ์ด๊ด, ์ฑ ์์ธ ๊ฐํธ ๋ฑ ์ปค๋จธ์คยท์ฝํ ์ธ ๋๋ฉ์ธ ๊ฐ์
- ๋ฐฐ์นยท๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ (MySQLโPostgreSQL), Flywayยทํฌ์ค์ฒดํฌยท๋ชจ๋ํฐ๋ง ๋ฑ ์ด์ ๊ธฐ๋ฐ ์ ๋น
๊ฒฐ์ ์๋ฃ API๊ฐ ์ ์ ์ฒ๋ฆฌ์๋ 401์ ๋ฐํํ๋ ๋ฌธ์ ๊ทผ๋ณธ ์์ธ ๊ท๋ช
- ๊ฒฐ์ ์๋ฃ ์ฒ๋ฆฌ ์์ฒญ์์ ๊ฒฐ์ ๋๊ธฐํยท์ฃผ๋ฌธ ์๋ฃยทํธ๋์ญ์ ์ปค๋ฐยท์๋ต ์์ฑ๊น์ง ๋ด๋ถ ๋ก์ง์ ๋ชจ๋ ์ ์์ธ๋ฐ๋ ํด๋ผ์ด์ธํธ์๋ 401์ด ๋ฐํ๋๊ณ , ์ธ์ฆ์ด ํ์ ์๋ ์๋ํฌ์ธํธ๋ก ๋ฐ๊พธ๋ฉด ์ฌํ๋์ง ์๋ ํฌ๋ฆฌํฐ์ปฌํ ๋ฌธ์ ๋ฅผ ๋ด๋น.
- ๋ก๊ทธ๋ฅผ ์ฌ์ด ์ต์ข
์๋ต ์ง์
dispatcherType=ASYNC, auth=false๋ฅผ ํฌ์ฐฉํ๊ณ , Kotlin ์ฝ๋ฃจํดsuspend์ปจํธ๋กค๋ฌ๊ฐ ์๋ธ๋ฆฟ ASYNC ๋์คํจ์น๋ก ์ฌ์ง์ ํ๋ฉด์OncePerRequestFilter๊ธฐ๋ณธ ์ ์ฑ ์ JWT ํํฐ๊ฐ ๊ฑด๋๋ฐ์ด์ ธSecurityContext๊ฐ ๋น์์ง๋ ๊ฒ์ด ์์ธ์์ ๊ท๋ช . - ์ธ์ฆ ํํฐ๊ฐ ์ฌ๋์คํจ์น์์๋ ์คํ๋๋๋ก
shouldNotFilterAsyncDispatch()ยทshouldNotFilterErrorDispatch()๋ฅผ ์ฌ์ ์ํด ๊ฒฐ์ ์๋ฃ ์๋ต์ ์์ ํํ๊ณ , ์์ธ๊ณผ ์ฌ๋ฐ ๋ฐฉ์ง ํฌ์ธํธ๋ฅผ ํ์ ๊ณต์ .
์ฃผ๋ฌธ/๊ฒฐ์ ์ ๊ท ์์คํ ์ ํ โ ํจํค์ง ์ํยทPG ์ ํยท์ ์ฐ ๋ฆฌ์คํฌ ํด๊ฒฐ (PO ์ญํ ๋ณํ)
- ์ฃผ๋ฌธยท์ฅ๋ฐ๊ตฌ๋ยท๊ฒฐ์ ยท์ํยท๊ณต์ ์ ์ฑ ์ด ๊ฐํ๊ฒ ๊ฒฐํฉ๋๊ณ ๊ฒฐ์ ์ค๋ณตยท์ด์ ์งํ ๋ถ์ฌ๋ก ๋ฆฌ์คํฌ๊ฐ ๋์ ๋ ๋ ๊ฑฐ์๋ฅผ, ํจํค์ง ์ํ ์ถ์์ ๊ฒฐ์ ์ฌ(PG) ๊ณ์ฝ ๋ณ๊ฒฝ์ด ๊ฒน์น ์ํฉ์์ ์ ๊ท ์์คํ ์ผ๋ก ์ ํ.
- ๋ฌธํ๋น์๋๊ณต์ ๋์/๋น๋์์ด ์์ธ ํจํค์ง ์ํ์ ๊ธ์ก ๋ถ๋ฆฌ์ ๊ฒฐ์ ยท์ ์ฐ ๊ธฐ์ค์ ์ ์ํ๊ณ , ๊ณ ๊ฐ์ด ์ฃผ๋ฌธ์ ๋๋ ๊ฒฐ์ ํ์ง ์๋๋ก ์ฅ๋ฐ๊ตฌ๋โ์ฃผ๋ฌธโ๊ฒฐ์ ํ ํ๋ฆ ์์์ ํด๊ฒฐ.
- ๋๋ฉ์ธ ๊ฒฐํฉ์ ํด์ํ๋๋ก ์ฌ์ค๊ณํ๊ณ ์ ๋ํฌ ์ ์ฝยทํ ์ ๊ธ ๊ธฐ๋ฐ ๋ฉฑ๋ฑ์ฑยท์ค๋ณต ๊ตฌ๋งค ๋ฐฉ์ง, ๊ฒฐ์ ยท์นํ ์ฒ๋ฆฌ ๋ถ๋ฆฌ, ์คํจ ์ฃผ๋ฌธ ๋ณด์ ์ค์ผ์ค๋ฌ, ์ฟ ํฐยท์ ๋ฆฝ๊ธ ์ ํ์ ํจ๊ป ์งํ.
- ์ ์ฐ ์ค๋ฅ ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๊ณ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ด์ ๊ฐ์์ฑ์ ํ๋ณดํ์ผ๋ฉฐ, ๋ฒ์ ์ ์ยท์ฐ์ ์์ยท์ปค๋ฎค๋์ผ์ด์ ๊น์ง PO ์ญํ ์ ๋ณํํ ์ฑ๊ณผ๋ก ์ ์ฌ ์ฐ์์ฌ์ ํฌ์ยทํ์ฅ ์น์ง์ผ๋ก ์ด์ด์ง.
30๋ ๋ ๊ฑฐ์ ํ์ ์์คํ ๋ฌด์ค๋จ ์ ํ (30๋ง+ ๋ ์ฝ๋)
- 30๋ ๋ ๊ฑฐ์ ํ๋ซํผ์ ํ์(30๋ง+ ๋ ์ฝ๋)์, ์ ๊ท ๊ฐ์ /๋ก๊ทธ์ธ ์์๋ ๋ ๊ฑฐ์ ์๋น์ค ์ด์ฉ์ ์ฐจ์ง์ด ์๋๋ก ๋ฌด์ค๋จ์ผ๋ก ์ด๊ด.
userIdโmemberId์ ํ์ ์ปฌ๋ผ ์ถ๊ฐ โ ๋ฐ์ดํฐ ์ฑํฌ โ ์ด์ค ๊ธฐ๋ก โ ์ธ์ฆ ์ ๋ฆฌ ํ ์ ๊ฑฐ์ ๋จ๊ณ๋ก ํธํ์ฑ์ ์ ์งํ๋ฉฐ ์งํํ๊ณ , ๊ณต์ฉ ํ์ ์ธ์ฆ API๋ก ๋ ๊ฑฐ์์ ์ ๊ท ์์คํ ์ด ๊ณต์กดํ๋๋ก ์ค๊ณ.- ์๋น์ค ์ค๋จ ์์ด ์ ๊ท ์คํ์ผ๋ก ์ ํํ๊ณ , ์ดํ ๋ค๋ฅธ ์๋น์ค๋ ์ ์ง์ ์ผ๋ก ์ด๊ดํ ์ ์๋ ๊ธฐ๋ฐ์ ๋ง๋ จ.
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ณด์ ์์คํ ๊ตฌ์ถ
- ์กฐ๊ฑด ๋ฌ์ฑ ์ ๋ณด์์ ์ง๊ธํ๋ ์ด๋ฒคํธ๊ฐ ๋์ด๋ ๋๋ง๋ค ๊ฐ๋ณ ๋ก์ง์ ์ฝ์ ํด์ผ ํ๊ณ , ์ค๋ณต ์ง๊ธ ๋ฐฉ์ง์ ์ ๊ทยท๋ ๊ฑฐ์ DB ๋์ ์ ํฉ์ด ํ์ํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ .
- ๊ฐ๋ณ ์ฝ์ ยท์ค๊ฐ ๋ ์ด์ดยทํ ๊ธฐ๋ฐ ๋น๋๊ธฐ 3์์ ๋น๊ตํด ํ ์ธํ๋ผยท์ผ์ ์ ๋ง๋ @EventListener ๊ธฐ๋ฐ ์ค๊ฐ ๋ ์ด์ด(์์ ยท๋ถ๊ธฐ โ ๋ผ์ฐํ ํ์ฌ๋ โ ์ ๋ต ํธ๋ค๋ฌ)๋ฅผ ๋์ ํ๊ณ ๋ฏธ์ง์ ํธ๋ฆฌ๊ฑฐ ๋ฐฉ์ด์ฉ ๊ธฐ๋ณธ ํธ๋ค๋ฌ๋ฅผ ๋ , ์ดํ ํ ๊ธฐ๋ฐ์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ๊ฒ ์ค๊ณ.
- ์ค๋ณต ์ฐธ์ฌ ๊ฒ์ฆ๊ณผ ์ ยท๊ตฌ DB ๋์ ์ง๊ธ ์ ํฉ์ผ๋ก ์ง๊ธ ์ ๋ขฐ์ฑ์ ํ๋ณดํ๊ณ , ์ด๋ฒคํธ๊ฐ ์ถ๊ฐ๋ผ๋ ํธ๋ค๋ฌ๋ง ํ์ฅํ๋ฉด ๋๋๋ก ๊ฐ๋ฐ ๋น์ฉ์ ์ ๊ฐ.
๊ทธ ์ธ ๊ตฌ์กฐ ๊ฐ์ ยท ์ฑ๋ฅ ยท ์๋ํ
- ๊ถํ ์ฒด๊ณ(RBAC) ์ ํ: URL ๊ฒฝ๋ก ๊ธฐ๋ฐ ์๋ฌต์ ๊ถํ์
@PreAuthorize๊ธฐ๋ฐ API ๋จ์ ๋ช ์์ ๊ถํ ์ฒด๊ณ๋ก ์ฌ์ค๊ณ, ์ผ๋ฐ ์ฌ์ฉ์ยท์ด์์ยท์ญํ ๋ณ ๊ด๋ฆฌ์๋ฅผ ํ๋์ ๊ถํ ๋ชจ๋ธ๋ก ํตํฉ. - ํ์ฑ ํธ๋์ญ์
๊ณ ๊ฐ ํด์: ํธ๋ํฝ ๋ง์ ๋จ์ ์กฐํ API๊ฐ ๋งค ์์ฒญ๋ง๋ค JTA(Atomikos) ํธ๋์ญ์
์ ์ด์ด ์ํ ์ด๊ณผ๊ฐ ๋ฐ์ โ ์กฐํ๋ฅผ
readOnly/ํธ๋์ญ์ ๋ฐ์ผ๋ก ์ ํํ๊ณ ๋ณด์ ์๊ฐ์ ์ค์ฌ ์ธํ๋ผ ์ฆ์ค ์์ด ์์ ํ. - PostgreSQL ์ฑ๋ฅ ๊ฐ์ : ์คํ๊ณํ ๋ถ์์ผ๋ก ๋นํจ์จ ์กฐ๊ฑดยท์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ธ๋ฑ์ค ํ์ฉ ์กฐ์ธ์ผ๋ก ์ฌ์์ฑํ๊ณ N+1 ์ ๊ฑฐ โ 1์ด ์ด์ ๊ฑธ๋ฆฌ๋ ๊ณ ํธ๋ํฝ ์กฐํ๋ฅผ ์ ms ์์ค์ผ๋ก ๋จ์ถ.
- DB ํ์๊ด๋ฆฌ Flyway ๋์ : ์๊ธฐ SQL๋ก ์ธํ ํ๊ฒฝ ๋ถ์ผ์นยท๋ฐฐํฌ ์คํจ๋ฅผ ์ ๊ฑฐ(FlywayยทLiquibase PoC ๋น๊ต ํ ์ฑํ), ํ ํ์ค์ผ๋ก ์ ์ฐฉ.
- ์ด์ ๊ฐ์์ฑ: ๋ฐฐ์น ์คํจ ์ ์ข ๋ฃ์ฝ๋๋ก Jenkins ์คํจ ์๋์ ๋ฐ๋๋ก ์ฐ๋ํ๊ณ ๋ก๊ทธ๋ฅผ ๋ณด๊ฐํด ์คํจ ์ง์ ์ ๋น ๋ฅด๊ฒ ์ถ์ , Spring Boot Actuator ๊ธฐ๋ฐ ํฌ์ค์ฒดํฌ๋ก DBยท๋์คํฌ ๋ฑ ์์กด์ฑ ์ํ๋ฅผ ๋ ธ์ถ.
MakinaRocks ยท Backend Engineer | 2022.10 ~ 2024.08
์ ์กฐ ์ค๋น ์ด์ํ์ง ๋ชจ๋ํฐ๋ง ์๋ฃจ์ (MRXray). ๋ชจํฐ ์ผ์์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ฐยท์๊ฐํํ๊ณ , ์ด์ํ์ง ๋ชจ๋ธ ๊ธฐ๋ฐ์ผ๋ก ์ผ๋ฟยท๋ชจ๋ํฐ๋ง์ ์ ๊ณต.
MRXray ๊ณ ๋ํ
- ์ด์ํ์ง ๋ชจ๋ํฐ๋ง ์๋ฃจ์ ์ ๋ฐฑ์๋ ์ค๊ณยท๊ตฌํ ๋ฐ DB ์ค๊ณ๋ฅผ ๋ด๋น. ์ผ์์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ ์๋ ๊ฐ์ผ๋ก ์ฐ์ฐยท์๊ฐํํ๊ณ , ์ด์ ๊ฐยทํ์ค ์ด์์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ผ์ ์ด์ ์ ๋๋ฅผ ๊ณ์ฐํด ๋ชจ๋ํฐ๋ง์ ์ ๊ณต.
- ํ์ค ๋ฃฐ๊ณผ ์ฌ์ฉ์ ์ง์ ๋ฃฐ๋ก ์ผ๋ฟ์ ๋ฐ์์ํค๊ณ , ๊ณ ์ฅ์ด ํ์ง๋ ์ฅ๋น์ ์์นยท๋ฐ์ดํฐยท์ ๊ฒ ์ด๋ ฅ์ ๋ชจ๋ํฐ๋งํ๋๋ก ๊ตฌํ. ๊ณ ๊ฐ ์๊ตฌ์ฌํญ์ ์๋ฃจ์ ์ ๋ฒ์ฉ ์ ์ฉ ๊ฐ๋ฅํ๋๋ก ๊ธฐํยท์ค๊ณยท๊ตฌํํ๊ณ ํ๋ก ํธ ์์ง๋์ด์ UX/UI๋ฅผ ํ์.
- ํ์ฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์ต์ํ์ API ํธ์ถ ๊ฐ์๋ฅผ ๊ณ ๋ คํด ์ค๊ณํ๊ณ , ์๋ฃจ์ ยท๋ณํ ํ๋ก์ ํธ๋ฅผ ํจ๊ป ๊ณ ๋ คํด ์ฃผ์ ๋๋ฉ์ธยท๊ณตํต ๋ก์ง์ ์ฝ์ด ๋ชจ๋๋ก ๋ถ๋ฆฌํด ์ฌ์ฌ์ฉ์ฑ์ ๋์.
MRXray ์๋ฐ ๋ง์ด๊ทธ๋ ์ด์
- ์์ ์ฑยทํ์ฅ์ฑยท๊ตฌ์ธ ๋ฑ์ ์ด์ ๋ก ๊ฒฐ์ ๋ Python/Django โ Java/Spring Boot ์ ํ์์ ๊ธฐ๋ณธ ๊ตฌ์กฐยท์ค์ผ๋ ํค ๊ตฌํ๊ณผ API ๊ฐ๋ฐ(์ฝ 80%)๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฃผ๋.
- UX ๊ด์ ์์ ์ฌ์ฉ์๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์ํด ํ๋ฉด์ ์ผ๋ก 170๊ฐ์๋ API๋ฅผ ์ฝ 80๊ฐ๋ก ์ถ์(ํ ํ์ด์ง ์กฐํ์ 20์ฌ ๊ฐ์ฉ ๋๊ฐ๋ ํธ์ถ์ 1๊ฐ๋ก), ํธ๋์ญ์ ๊ด๋ฆฌยท๋ฏธ์ฌ์ฉ API๋ฅผ ์ ๋ฆฌ.
- ์๊ตฌ์ฌํญ ๋ณํ์ ๋ง์ถฐ DB ์คํค๋ง๋ฅผ ๋ฆฌํฉํ ๋ง(๋ถํ์ ์ปฌ๋ผยท๋ฌด๋ถ๋ณํ ์ธ๋ฑ์ค/๋์ฒดํค ์ ๊ฑฐ). ๋งค์ฃผ ๊ธ์์ผ์ ๋ฆฌํฉํ ๋งยทํ์ต ์ ์ฉ์ผ๋ก ์ด์ํ๊ณ , ๊ฒฐ์ ๋งฅ๋ฝ์ ์ด์ยทPRยท๋ ธ์ ์ ๊ธฐ๋กํด ๋๋ฃ๊ฐ ์ธ์ ๋ ํ์ ํ ์ ์๊ฒ ํจ.
๋ชจ๋ธ๋ง์ฉ ์์ฒ ๋ฐ์ดํฐ ์ ์ฌ ํ์ดํ๋ผ์ธยทDB ์ค๊ณ
- ๋ชจ๋ธ๋ง ํ์ด ์ฌ์ฉํ ์์ฒ ๋ฐ์ดํฐ DB๋ฅผ ๊ตฌ์ถ. MDF ํน์ ํ์ผ ํฌ๋งท์ ๋ถ์ํ๊ณ ML ์์ง๋์ด์ ํ์ํด, ์์ง ์๊ฐ์ด ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์๊ฐ ์ ํฉ์ ๋ง์ถฐ ์๋ณธ์ ์ต๋ํ ๋ณด์กดํ๋ฉฐ ์ ์ฌ.
- ์ค์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ํ๋ค MDF ํ์ผ์ด ๋ค์ด์ค๋ฉด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถยท์ ์ฌํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋ฐํ๊ณ , ์ฌ๋ด Kubernetes์ DB์ ํ์ฑ ํ๋ก์ธ์ค๋ฅผ ๋ฐฐํฌํด ๋ชจ๋ธ๋ง ํ์ด ์ฌ์ฉํ๋๋ก ํจ.
๋ฐ์ดํฐ ์ด์ ๋ชจ๋ํฐ๋งยท์๋ฆผ ๊ฐ๋ฐ
- ๋ฐ์ดํฐ๊ฐ ์์ง๋์ง ์์ ๋ ์ผ์ DBยท์ถ๋ก ํ์ดํ๋ผ์ธ ๋ฑ ์ด๋ ์ง์ ์ด ๋ฌธ์ ์ธ์ง ๋ด๋น์๋ณ๋ก ์ผ์ผ์ด ํ์ธํด์ผ ํด ๋์์ด ์ง์ฐ๋๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ .
- ์ค์ DB์ ๋ง์ง๋ง ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ ์๊ฐ ์ด์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค์ง ์์ผ๋ฉด ๋ด๋น์์๊ฒ Slack ์๋ฆผ์ ๋ณด๋ด๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ค์ผ์ค๋ฌ์ ๋ฑ๋ก โ ์์ง ์ด์ ๋ฐ์ ์ ๋ฌธ์ ์ง์ ์ ๋น ๋ฅด๊ฒ ํ์ ยท๋์ํ๋๋ก ํจ.
๋ถ๋ฅ ๋ชจ๋ธ ์ฑ๊ณผ ์งํ ๊ธฐ๋ฅ ๊ฐ๋ฐยท๊ฐ์
- ์ด์ ๊ฐ์ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ณ์ฐํด ๋ถ๋ฅ ๋ชจ๋ธ ์ฑ๊ณผ ์งํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ ์กฐํ ์์ ๋ง๋ค ์ฟผ๋ฆฌ๋ก ๊ณ์ฐํ๋๋ก 1์ฐจ ๊ฐ๋ฐํ์ผ๋ DB ๋ถํยท์ฑ๋ฅ ์ด์๊ฐ ๋ฐ์.
- ์๊ณ๊ฐ์ ๊ธฐ์ค๊ฐ์ผ๋ก ๊ท์ฝํ๊ณ ์กฐํ ์ ๊ณ์ฐ ๋์ ์ด์ ๊ฐ ์ ์ฌ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ณ์ฐํด ํต๊ณ ํ ์ด๋ธ์ ์ ์ฅํ๋๋ก ๊ฐ์ โ ํ ๋ฌ ์น ์กฐํ ๊ธฐ์ค 5์ด โ 1์ด ๋ฏธ๋ง์ผ๋ก ๋จ์ถ.
๋ฐ์ดํฐ ์์นด์ด๋น ยท ๋ฐฐํฌ ์๋ํ ยท ์ฅ์ ๋์
- ์์ง ์์ฒ ๋ฐ์ดํฐ๋ฅผ Parquet๋ก ์์ถยท๋ณด๊ดํ๋ ์์นด์ด๋น ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด DB ์ ์ฅ ๋น์ฉ์ ์ ๊ฐํ๊ณ ํ์คํ ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ยท์ถ๋ก ์ฉ์ผ๋ก ๋ณด์กด.
- GitHub ActionsยทDockerยทEC2 ๊ธฐ๋ฐ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ก ๋น๋ยทํ ์คํธยท์ด๋ฏธ์ง ๋ฐฐํฌยท๋ฐฐํฌ๋ฅผ ๋จ์ผ CI/CD ํ์ดํ๋ผ์ธ์ผ๋ก ํตํฉยท์๋ํ.
- ์ด์ ์ฅ์ ์ AWS EC2์์ PostgreSQL ์๋ ํ์ผ์ค๋ฒ(์คํ ๋ฐ์ด ์น๊ฒฉ)๋ก ๊ฐ์ฉ์ฑ์ ๋ณต๊ตฌ.
์ ํ๋ฌ์ค์์ดํฐ(Uplus IT) ยท Software Engineer | 2021.09 ~ 2022.10
์ ๊ตญ๋ฏผ์ด ์ฌ์ฉํ๋ ๊ตญ์ธ์ฒญ ํํ์คยท์ํ์ค ์ธ๊ธ ์ ๊ณ ์๋น์ค. ๊ฐ๋ฐ์ 100๋ช ์ด์ ๊ท๋ชจ์ ์กฐ์ง.
ํํ์คยท์ํ์ค ์ข ํฉ์๋์ธ ์ผ๋ฐ์ ๊ณ ์ (21๊ท์) ์คํ ๊ฐ๋ฐ
- ์ข ํฉ์๋์ธ ์ ๊ณ ๋ ํํ์ค์์ ํธ๋ํฝยท์ฌ์ฉ์ ์๊ฐ ๊ฐ์ฅ ๋ง์ ํ๋ก๊ทธ๋จ์ผ๋ก, ์ ์ ์ผ๋ก ํฉ๋ฅํ์ง๋ง ์ด ํต์ฌ ์ ๊ณ ์์ ์คํ ๊ฐ๋ฐ์ ์ฐธ์ฌ.
- ์ ๊ณ ์์ฆ์๋ ์ํ์ค(๋ชจ๋ฐ์ผ) ์๊ฐ ์ฌ์ฉ์๊ฐ ์ ์ ๋๋น ์ฝ 372๋ง ๋ช (90~129%) ๊ธ์ฆํด ํด๋น ์ ๊ตญ๋ด ์ ์ฒด ๋ชจ๋ฐ์ผ ์ฑ ์ค ์ฌ์ฉ์ ๊ธ์์น 1์๋ฅผ ๊ธฐ๋กํ ๋งํผ ํธ๋ํฝ์ด ํญ์ฆํ๋ ์๋น์ค.
- ๋งค๋ ์คํ ๋ ๋ฐ์ดํฐ ์ด์ยท์๋ฌ๋ก ๊ธด์ฅ์ด ํฐ ํ๋ก๊ทธ๋จ์ด๋ผ, ์ ๋ ๋๋น ๋ณ๊ฒฝ์ ์ ๋ฏธ๋ฆฌ ์ ๊ฒยท๊ณต์ ํด ๋ถํ์ํ ์์ ์ ์ค์ด๊ณ ํ ์คํธยท๊ฒ์ฆ ์๊ฐ์ ํ๋ณด. ๋ณธ์ธ ์ ๋ฌด๋ฅผ ๊ธฐ๊ฐ๋ณด๋ค ์ผ์ฐ ๋ง์น ๋ค ๋ฉ์ธ ์๋น์ค ๋ด๋น ๋๋ฃ์ ๋ฒ๊ทธ๋ฅผ ํจ๊ป ๋ถ์ํด ์์ธ์ ๋น ๋ฅด๊ฒ ๊ท๋ช .
- 5์ ์ ๊ณ 1,000๋ง ๊ฑด์ด ์ฒ๋ฆฌ๋๋ ๋์ ์ด๋ก์ ์ผ๋ก ์์ ์ ์ธ ์คํ์ด๋ผ๋ ํ๊ฐ๋ฅผ ๋ฐ์.
ํํ์คยท์ํ์ค ๊ทผ๋ก์๋์ ๊ฒฝ์ ์ฒญ๊ตฌ (21๊ท์) ์คํ ๊ฐ๋ฐ
- 21๊ท์ ์ธ๋ฒ ๊ฐ์ ์ ๋ง์ถฐ ๊ทผ๋ก์๋์ ๊ฒฝ์ ์ฒญ๊ตฌ ์ ๊ณ ์์ ๊ณ์ฐ๊ธฐ ํ์ ๊ณผ ๊ณ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ฐ.
- ์ ๋ฆฌ๋์ง ์์ ์ฌ์ฌ์ฉยท๋ณ๊ฒฝ์ด ์ด๋ ต๋ 7,000์ค์ด ๋๋ ๊ณ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ฆฌํฉํ ๋งํด ์ฝ 2,000์ค๋ก ์ ๋ฆฌ โ ์ดํ ์ฝ๋ ๋ถ์ยท๋ณ๊ฒฝ ์๊ฐ์ ๋จ์ถ.
- ํ ํ์ ๋ฐ์ดํฐยท์๋น์ค์ ์์กดํด ์์ฒ ๋ฐ์ดํฐ ํ์ ์ด ์ด๋ ค์ ์ผ๋ ๋จผ์ ์ ๊ทน์ ์ผ๋ก ์ํตํด ๋ฐ์ดํฐ ํ๋ฆ์ ํ์ , ์ด์ ๊ท์๋ณด๋ค 2์ฃผ ๋นจ๋ฆฌ ๊ตฌํ์ ์๋ฃ.
์ธ๊ธ๊ณ์ฐ์ ๋๋ ๋ฐฐ์น ์ฒ๋ฆฌ ์ต์ ํ
- 70๋ง ๊ฑด ์ด์์ ์ธ๊ธ๊ณ์ฐ์ ๋ฐฐ์น๋ฅผ ์์ ์คํ ๋จ์๋ก ๋ถํ ์ฒ๋ฆฌํด ์ฒ๋ฆฌ๋์ ๋์ด๊ณ DB ๋ถํ๋ฅผ ์ค์.
๊ธฐ์ ์คํ
- ์ธ์ด/ํ๋ ์์ํฌ: Kotlin, Java, Python, Spring Boot, Spring Batch, Django
- ๋ฐ์ดํฐ๋ฒ ์ด์ค/๋ฉ์์ง: PostgreSQL, MySQL, RabbitMQ, Kafka
- ์ธํ๋ผ/DevOps: AWS, Docker, Kubernetes, GitHub Actions, Jenkins, Flyway, Grafana, Sentry
์๊ฒฉ์ฆ / ์์
- SQLD (SQL ๊ฐ๋ฐ์)
- ์ ์ฌ ์ฐ์์ฌ์ ํฌ์ (ํ๋น์ค) ยท 2026๋ ์กฐ์ง ๊ฐํธ์์ ๊ณตํต ์๋น์ค ๊ฐ๋ฐํ ํ์ฅ ์น์ง
ํ๋ ฅ
์ถฉ๋จ๋ํ๊ต ยท ์ํ ํ์ฌ