doan.kim

๐Ÿ™‚ ์ž๊ธฐ์†Œ๊ฐœ

์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ํ•˜์ด๋…ธํฌ ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•˜๊ณ  ์žˆ๋Š” ๊น€๋„์•ˆ ์ž…๋‹ˆ๋‹ค.

๐Ÿ—“๏ธ ๊ฒฝ๋ ฅ์‚ฌํ•ญ

ํ•˜์ด๋…ธํฌ
- 2024.06 ~ ํ˜„์žฌ
- WOK ์Šค์ฟผ๋“œ ยท ์ œํ’ˆ๊ฐœ๋ฐœํŒ€
- ๋…ธํฌ ๋ฐฑ์˜คํ”ผ์Šค ์–ด๋“œ๋ฏผ, ์‚ฌ์žฅ๋‹˜ ์•ฑ ๊ฐœ๋ฐœ

๋ถ€๋ฆ‰
- 2022.06 ~ 2024.06 (2๋…„)
- Web Frontend ยท ํด๋ผ์ด์–ธํŠธํŒ€
- ๋ถ€๋ฆ‰ ๋ฐฑ์˜คํ”ผ์Šค ์–ด๋“œ๋ฏผ, ์‚ฌ์žฅ๋‹˜ ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜

์“ฐ๋ฆฌ๋ทฐ
- 2019.12 ~ 2022.06 (2๋…„ 6๊ฐœ์›”)
- ๋Œ€๋ฆฌ ยท ์ œํ’ˆ๊ฐœ๋ฐœํŒ€
- MES ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ

๐Ÿชช ์ž๊ฒฉ์ฆ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
2018.06 ์ทจ๋“

๐Ÿš€ ํ”„๋กœ์ ํŠธ

๋…ธํฌ ์–ด๋“œ๋ฏผ ๊ฐœ๋ฐœ
2023.10 ~ ํ˜„์žฌ

๋กœ์ปฌ ์ปค๋จธ์Šค ์‚ฌ์—…์œผ๋กœ ๊ณ ๊ฐ๊ณผ ์ƒ์ ์„ ์—ฐ๊ฒฐํ•˜๊ณ , ๋ถ€๋ฆ‰์„ ํ†ตํ•ด ๋ฐฐ๋‹ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋…ธํฌ์˜ ๊ธฐ๋Šฅ์„ ๊ด€๋ฆฌํ•˜๋Š” ์–ด๋“œ๋ฏผ ์ œํ’ˆ์ž…๋‹ˆ๋‹ค.

TypeScript
React
Next.js(page)
tanstack-query
react-hook-form
Spring Boot
Java
Gradle
๋…ธํฌ ์‚ฌ์žฅ๋‹˜ ์•ฑ ๊ฐœ๋ฐœ
2024.06 ~ ํ˜„์žฌ

๋…ธํฌ์˜ ์‚ฌ์žฅ๋‹˜์„ ์œ„ํ•œ ์•ฑ์œผ๋กœ, ์ฃผ๋ฌธ๊ด€๋ฆฌ, ๋งค์ถœ๊ด€๋ฆฌ, ์ƒ์ ๊ด€๋ฆฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Flutter
GetX
Firebase
๋ญ๋จน์ง€ ์ˆํผ ํ”Œ๋ ˆ์ด์–ด ๊ฐœ๋ฐœ
2024.10 ~ 2024.11

๋…ธํฌ ์ฃผ๋ฌธ์•ฑ ๋‚ด์—์„œ ์›น๋ทฐ๋ฅผ ํ†ตํ•ด ์œ ํŠœ๋ธŒ ์ˆํผ์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์ž‘๋œ ์›น๋ทฐ ์ˆ์ธ  ํ”Œ๋ ˆ์ด์–ด ์ œํ’ˆ์ž…๋‹ˆ๋‹ค.

TypeScript
React
Next.js(page)
๋ถ€๋ฆ‰ ์–ด๋“œ๋ฏผ ๊ฐœ๋ฐœ
2022.09 ~ 2023.10

๋ถ€๋ฆ‰์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฑ์˜คํ”ผ์Šค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋ถ€๋ฆ‰์˜ ์ž„์ง์›์ด ๋ผ์ŠคํŠธ๋งˆ์ผ์˜ ์ดํ•ด ๊ด€๊ณ„์ž์ธ ์ƒ์ , ๋ผ์ด๋”, ๊ณ ๊ฐ๋“ค์˜ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์šด์˜ํ•˜๋ฉฐ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ์–ด๋“œ๋ฏผ ์ œํ’ˆ์ž…๋‹ˆ๋‹ค.

TypeScript
React
MobX
SheetJS
MES ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ
2019.12 ~ 2020.12

์†Œ์„ฑ๊ฐ€๊ณต์—…์ฒด์˜ ๊ณต์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜์—ฌ, ์ƒ์‚ฐ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์„ ๊ณตํ†ตํ™”ํ•œ MES ์ œํ’ˆ์ž…๋‹ˆ๋‹ค.

C#
Winform
React
Spring Boot
Java
RabbitMQ
MS-SQL

๐Ÿš€ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ

๊ฐœ๋ฐœ ๋™์•„๋ฆฌ
์–ธ์ œ์‚ฌ
2024.01 ~ ํ˜„์žฌ

์‹œ์‹œ๊ฐ๊ฐ ๋ณ€ํ•˜๋Š” ์ฟ ํŒก ์ƒํ’ˆ ๊ฐ€๊ฒฉ์ •๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐ€์ ธ์™€์„œ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ์ฐจํŠธ๋กœ ์ œ๊ณตํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ฐ€๊ฒฉ์— ๋„๋‹ฌํ•˜๋ฉด ์•Œ๋ฆผ์„ ๋ณด๋‚ด์ฃผ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

Flutter
GetX
Firebase
Spring Boot
Spring Batch

๐Ÿ”ฎ ์—…๋ฌด ๊ฒฝํ—˜

๋…ธํฌ ์–ด๋“œ๋ฏผ
MSA์— ๋”ฐ๋ฅธ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์˜ ์‘๋‹ต ๊ฐ’์„ ์กฐ์ž‘ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ

Next.js์˜ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ๋ฅผ BFF๋กœ ํ™œ์šฉํ•˜์—ฌ, ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ํ•˜๋‚˜๋กœ aggregateํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๊ฐ ๋„๋ฉ”์ธ์˜ ์‘๋‹ต ๊ฐ’์„ ์กฐํ•ฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ํ•ํ•œ ์‘๋‹ต์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ธํฌ ์–ด๋“œ๋ฏผ
๊ตฌ๊ธ€ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ๊ตฌํ˜„

Google SSO + KeyCloak ๊ธฐ๋ฐ˜์˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. next-auth๋ฅผ ํ†ตํ•ด ํ† ํฐ ์ •๋ณด(๋งŒ๋ฃŒ, ๊ฐฑ์‹ , ์ธ์ฆ)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ฟ ํ‚ค์— ์ €์žฅํ•˜์˜€๊ณ , Next.js์˜ middleware๋ฅผ ํ™œ์šฉํ•˜์—ฌ api ํ˜ธ์ถœ ๋˜๋Š” router ์ด๋™ ๊ฐ„์— ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋ฉฐ, ๊ฐฑ์‹ ํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ถ€๋ฆ‰ ์–ด๋“œ๋ฏผ
ISMS ํ’ˆ์งˆ ์œ ์ง€ ์ž‘์—…

๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ์— ๋”ฐ๋ผ ๋ชจ๋“  ๊ฐœ๋ฐœ ๊ณผ์ •์— ๊ฐœ์ธ์ •๋ณด ๋งˆ์Šคํ‚น ์ฒ˜๋ฆฌ ๋ฐ ์ ‘๊ทผ ๊ถŒํ•œ์— ๋”ฐ๋ฅธ ์ธ๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ธํฌ ์–ด๋“œ๋ฏผ
jest/nock ํ…Œ์ŠคํŠธ ๋„์ž…

์„œ๋ฒ„ ์ŠคํŽ™๊ณผ ๋™๊ธฐํ™” ๋˜์ง€ ์•Š์•„ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ๋ฐฉ์ง€ ํ•˜๊ธฐ ์œ„ํ•ด nock์™€ jest๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ…Œ์ŠคํŠธํ•˜๋Š” hook ํ…Œ์ŠคํŠธ๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ธํฌ ์–ด๋“œ๋ฏผ
1,200๊ฐœ ์ƒ์ ์— ๋Œ€ํ•œ ์˜จ๋ณด๋”ฉ ๋ฐ์ดํ„ฐ(์ƒ์ , ์ƒํ’ˆ, ์˜ต์…˜) ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

๋Œ€๋ถ€๋ถ„์˜ ์ƒ์ ์€ ๋ฐฐ๋‹ฌ์˜๋ฏผ์กฑ์— ์ž…์ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๊ณ , ๋„ค์ด๋ฒ„ ์ง€๋„์— ๋ฐฐ๋‹ฌ์˜๋ฏผ์กฑ ์ฃผ๋ฌธํ•˜๊ธฐ ์—ฐ๋™์ด ๋˜์–ด์žˆ๋Š” ์ ์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ๋ฐฐ๋‹ฌ์˜๋ฏผ์กฑ OpenAPI ์ •๋ณด๋ฅผ ํš๋“ํ•˜์—ฌ ๋…ธํฌ ๊ทœ๊ฒฉ์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ 1,200๊ฐœ ์ƒ์ ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ธํฌ ์–ด๋“œ๋ฏผ
SSR ๋ Œ๋”๋ง ํŽ˜์ด์ง€์—์„œ ์ด์ „ ํŽ˜์ด์ง€ ์Šคํฌ๋กค ์œ„์น˜ ์œ ์ง€

beforeunload ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด์ „ ํŽ˜์ด์ง€์˜ ์Šคํฌ๋กค ํฌ์ง€์…˜์„ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜๊ณ , ์Šคํฌ๋กค์„ ์œ ์ง€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” hook์„ ๊ตฌํ˜„ํ•˜์˜€๊ณ , ์„œ๋ฒ„์‚ฌ์ด๋“œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งค๋ฒˆ ๊ฐฑ์‹ ๋˜์–ด ๋‘๋ฒˆ์งธ ํŽ˜์ด์ง• ์ด์ƒ์˜ ์Šคํฌ๋กค์„ ๊ฐ์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋’ค๋กœ๊ฐ€๊ธฐ ์‹œ query param์„ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋„˜๊ฒจ์ฃผ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ๊ฐฑ์‹  ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.