Hello I'm Javascript Engineer KIM DAE GEON ๐
์๋
ํ์ธ์ Web FrontEnd ์ ๊ด์ฌ์ด ๋ง์ ์ํํธ์จ์ด ์์ง๋์ด ๊น๋๊ฑด์
๋๋ค!
โฃ ์ด๋์ ์ทจ๋ฏธ๋ก ํ๋ ์ ๋, ๋ค์ํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ฉฐ UI / UX ์ ์ค์์ฑ์ ์๊ฒ ๋์์ต๋๋ค
์ฌ๋ฌ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ์ค, ๋ด์ฅ๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋น์ทํ์ง๋ง UI ์ ๋ฐ๋ผ ์ฌ์ฉ์์ ๊ฒฝํ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ ๊ฒ์ ๊นจ๋ฌ์๊ณ "ํ๋ก ํธ์๋ ๊ฐ๋ฐ" ์ ๋งค๋ฃ๋์์ต๋๋ค
โฃ ReactJS ๋ฅผ ํ์ฉํด SPA ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค
โฃ Redux ์ Flux ์ํคํ
์ณ๋ฅผ ์ดํดํ๊ณ , ๋ณต์กํ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ๊ด๋ฆฌ ํ ์ ์์ต๋๋ค
โฃ Redux Thunk, Redux Saga ๋ฅผ ํตํด ๋น๋๊ธฐ ์์
์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค
โฃ NextJS ํ์ด์ง ๋ผ์ฐํฐ๋ฅผ ํ์ฉํด, ์ ์ ํ ๋ ๋๋ง ํจํด (SSG, ISR, SSR) ์ ์ ์ฉ์ํฌ ์ ์์ต๋๋ค
โฃ SCSS ์ import, mixin, include ๋ฅผ ํ์ฉํ์ฌ, ์ค๋ณต๋๋ ์คํ์ผ์ํธ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค
โฃ NestJS ์ TypeORM ์ ์ด์ฉํด ๊ฐ๋จํ CRUD ์๋ฒ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค
์๊ฐ : ์ฑ๊ฒฉ / ์๋ฉด์ต๊ด / ์ํ์ต๊ด ๋ฑ์ ๋ฐ๋ฅธ ๋ฃธ๋ฉ์ดํธ ๋งค์นญ ํ๋ซํผ
๊ธฐ๊ฐ : 2024.05 ~
์ฌ์ฉ๊ธฐ์ :
์๊ฐ : ์๋ฃ ๋ฒ์ญ AI ํ๋ซํผ (๊น์ฌ์ผ ๊ต์๋ LAB Project)
๊ธฐ๊ฐ : 2024.05 ~
์ฌ์ฉ๊ธฐ์ :
์๊ฐ : ๏ฟฝ๊ฒฝ๋ถ๋ํ๊ต ์ถ์ ํ๋ณด ๋ฐ ์๋ด ์ฌ์ดํธ
๊ธฐ๊ฐ : 2024.05
์ฌ์ฉ๊ธฐ์ :
์๊ฐ : OCR ์ ์ด์ฉํด ์๋ชจ์, ๋์๋ฆฌ, ๋จ์ฒด ํ๊ณ์ฅ๋ถ๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌ ํ ์ ์๋ ํ๋ซํผ
๊ธฐ๊ฐ : 2024.05 ~
์ฌ์ฉ๊ธฐ์ :
โ DX ๊ฐ์
โฃ ์์ฐ์ฑ์ ๋์ด๊ธฐ ์ํด Tailwind CSS ๋ฅผ ํ์ต, ๋์ ํ์์ต๋๋ค
์๊ฐ : ๏ฟฝ๋ํ์ ์ธ์ฃผ ๋งค์นญ ํ๋ซํผ
๊ธฐ๊ฐ : 2024๋
04์ ~
์ฌ์ฉ๊ธฐ์ :
{% embed url="https://github.com/Principes-Artis-Mechanicae/get-p-frontend" %}
โ ๊ตฌํ
โฃ Redux Persist ๋ฅผ ์ฌ์ฉํด ์ธ์ฆ / ์ธ๊ฐ ์ํ์ ํ ํฐ์ ์ ์ฅํ์์ต๋๋ค. Vite SSR ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด Server Side Rendering ์ค Persist Storage ์ ๋ถ์ฌ๋ก์ธํ Hydration ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ฉด์ React Server API ์ Server Side Rendering ์ ๋์์๋ฆฌ๋ฅผ ์ต๋ํ์์ต๋๋ค
โฃ ํ์๊ฐ์ ํผ๋์์ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ๋ณต์กํ ์ํ๋ฅผ Redux Thunk Action ์ ์ฌ์ฉํด ์ฒ๋ฆฌํ์ต๋๋ค
โฃ ๊ธฐ์กด useInputValidation ์ปค์คํ ํ ์์ React Hook Form / ZOD ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ํตํด ๋ฐํ์ ํ์ ๊ฒ์ฆ์ ์งํํ์์ต๋๋ค
โ UI / UX ๊ฐ์
โฃ Framer Motion ์ ์ฌ์ฉํ ํ์ด์ง ์ ํ ์ ๋๋ฉ์ด์ ์ ํตํด UX ๋ฅผ ๊ฐ์ ํ์์ต๋๋ค
โ DX ๊ฐ์
โฃ StoryBook ์ ์ฌ์ฉํ์ฌ ๊ณตํต ์ปดํฌ๋ํธ์ ๋ํ UI ํ ์คํ ์ ์งํํ์์ต๋๋ค
โฃ ๊ตฌํ ์ , ํ๋ก ํธ์๋ ํ์๋ค๊ณผ ์ฌ์ฌ์ฉ์ฑ ์ธก๋ฉด์์ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฅํ๊ณ ๋ถ๋ฅํ ์ปดํฌ๋ํธ์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ฌธ์ํํ์์ต๋๋ค
โฃ Jira , Confluence ๋ฅผ ์ด์ฉํ ์ ์์ผ ๊ธฐ๋ฐ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ, ์ปค๋ฎค๋์ผ์ด์ ๋ฅ๋ ฅ์ ํฅ์์์ผฐ์ต๋๋ค
โฃ Github Actions ์ Netlify ๋ฅผ ํตํด ๋ฒ ํ ์๋ฒ ๋ฐฐํฌ๋ฅผ ์๋ํํ์์ต๋๋ค
โ ์ฑ๋ฅ๊ฐ์
โฃ Lazy Loading / Suspense ๋ฅผ ํตํ ์ฝ๋ ์คํ๋ฆฌํ ์ ์ด์ฉํด FCP / LCP ๋ฑ ์ด๊ธฐ ๋ ๋๋ง ์๋๋ฅผ ํฅ์์์ผฐ์ต๋๋ค
โฃ Vite SSR ํ๋ฌ๊ทธ์ธ์ ํตํด ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ์ ์ฉ์์ผฐ์ต๋๋ค
โฃ Skeleton ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํด Cumulative Layout Shift ๋ฅผ ์ต์ํํ์์ต๋๋ค
์๊ฐ : ๊ธ์ต / ๊ฒฝ์ ๊ต์ก ํ๋ซํผ
๊ธฐ๊ฐ : 2023๋
09์ ~ 2023๋
12์
์ฌ์ฉ๊ธฐ์ :
{% embed url="https://github.com/toothlessdev/stocodi-web-legacy" %}
โ ๊ตฌํ
โฃ ๋๋ฉ ํ์ด์ง, ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ํ์ด์ง, ๊ฐ์ ํ ํ์ด์ง, ๊ฐ์ ์์ธ ํ์ด์ง, ๊ฐ์ ๊ฒ์ ํ์ด์ง, ๊ธ์ต์ญ๋ํ ์คํธ ํ์ด์ง, ํ ์คํธ ๊ฒฐ๊ณผ ํ์ด์ง๋ฅผ ๊ตฌํํ์ต๋๋ค
โฃ JWT ๋ฅผ ํ์ฉํด Access / Refresh ๊ธฐ๋ฐ์ ๋ก๊ทธ์ธ ํ๋ก์ฐ๋ฅผ ๊ตฌํํ์์ต๋๋ค
โฃ Mobile / Tablet ์ ๋ํ Figma ๋์์ธ์ด ์์์๋ Flex Grid ๋ฅผ ์ด์ฉํด BreakPoint ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ํ ํ์ด์ง๋ก ๊ตฌํํ์์ต๋๋ค
โฃ T-Syringe ๋ฅผ ํ์ฉํด API ํธ์ถ๊ณผ ์ค์ ์๋น์ค๋ฅผ ์ถ์ํํ ํด๋์ค๋ฅผ ๊ตฌํ, ์์กด์ฑ ์ฃผ์ / ์ฑ๊ธํค ํจํด ์ ์ฉ์ ์๋ํ์ต๋๋ค
โฃ ๊ธ์ต์ญ๋ํ ์คํธ ํ์ด์ง ๊ตฌํ์, ๋ฌธํญ์ ์ ํ์ง์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฐ์ธ๋ฉ ํ๋ ๊ณผ์ ์์ ๋ฐ์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉฐ ํด๋ก์ ธ / ๋ ์์ปฌ ์ค์ฝํ์ ๋ํ ๊ฐ๋ ์ ์ต๋ํ์ต๋๋ค
โ UI / UX ๊ฐ์
โฃ ์ค ์ฌ์ฉ์๋ก๋ถํฐ์ ํผ๋๋ฐฑ์ ํตํด ์ด 72๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ฐ์์์ผ UI / UX ๋ฅผ ๊ฐ์ ์์ผฐ์ต๋๋ค
โ DX ๊ฐ์
โฃ ESLint / Prettier ๋ฅผ ์ด์ฉํด ์ฝ๋ ์ปจ๋ฒค์ ์ ํต์ผ์์ผฐ๊ณ , Github Actions ๋ฅผ ์ฌ์ฉํด CI ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ต๋๋ค
โฃ Github Actions ์ Docker ๋ฅผ ์ด์ฉํด ๋ฐฐํฌ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ต๋๋ค
โฃ SCSS ์ MixIn / Include ๋ฑ์ ์ฌ์ฉํด ์ค๋ณต๋๋ 271์ค์ ์คํ์ผ์ํธ๋ฅผ 96์ค๋ก ์ค์์ต๋๋ค
โฃ ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์ ๋ฐ๋ผ ์ค๋ณต๋๋ ClassName ์ ๋ฐฉ์งํ๊ณ ์ BEM ์ ๋์ ํ์๊ณ , CSS Modules ์ SCSS ๋ฅผ ๋์ ํ์์ต๋๋ค
โฃ ๊ธฐ์กด์ ๋ถ๋ฅ๋์ง ์์๋ ์ปดํฌ๋ํธ๋ฅผ Atomic Design Pattern ์ ์ฌ์ฉํด ์ฌ์ฌ์ฉ์ฑ์ ๋์์ต๋๋ค
โฃ Atomic Design Pattern ์ ์ปดํฌ๋ํธ ํํธํ๋ฅผ ์ค์ด๊ณ ์ ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ ๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ก ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ถ๋ฅํ์์ต๋๋ค
โ ์ฑ๋ฅ๊ฐ์
โฃ ๊ธฐ์กด์ WebPack / JS ๊ธฐ๋ฐ์ CRA ํ๋ก์ ํธ๋ฅผ EsBuild ๊ธฐ๋ฐ์ Vite ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ ๋น๋์๋๋ฅผ ํฅ์์์ผฐ์ต๋๋ค
โฃ ์คํฌ๋กค์ ๋ฐ์ํด ์ ๋๋ฉ์ด์ ์ด ์ ์ฉ๋๋ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๋ ๏ฟฝ๋์ค ๊ธฐ์กด์ Scroll Event ๊ธฐ๋ฐ์์ Intersection Observer ๋ฅผ ์ฌ์ฉํด ์ฑ๋ฅ์ ๊ฐ์ ์์ผฐ์ต๋๋ค
โฃ Lazy Loading / Suspense ๋ฅผ ํตํ ์ฝ๋ ์คํ๋ฆฌํ ์ ์ด์ฉํด FCP / LCP ๋ฑ ์ด๊ธฐ ๋ ๋๋ง ์๋๋ฅผ ํฅ์์์ผฐ์ต๋๋ค
(Chrome ๋น ๋ฅธ 3G ๊ธฐ์ค LightHouse ์งํ 45์ / FCP 5.9s / LCP 5.9s -> 82์ / FCP 1.0s / LCP 1.5s ๋ก ๊ฐ์ )
์๊ฐ : ์๋ง์ถ์ด ์ฌ์ง์๊ฐ์ ์ด์ฉ์๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ํ๋ซํผ (์ฐ๋ฆฌ๋๋ค ์ฌ์ง์๊ฐ ๋ฆฌ์คํธ)
๊ธฐ๊ฐ : 2023.09 ~
์ฌ์ฉ๊ธฐ์ :
{% embed url="https://github.com/toothlessdev/Udongsari_Frontend" %}
โ ๊ตฌํ
โฃ ๋ณต์กํ ์ํ๋ฅผ Redux Toolkit ์ผ๋ก ๊ด๋ฆฌํ๊ณ , Redux Thunk Action ์ ํตํด ์๋ฒ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ์ต๋๋ค
โฃ WebSocket ์ ์ด์ฉํด ์ฑํ ๋ฐฉ ๊ธฐ๋ฅ ๊ตฌํ์ ์๋ํ์์ต๋๋ค
์๊ฐ : ์๋ง์ถ์ด ์ฌ์ง์๊ฐ์ ์ด์ฉ์๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ํ๋ซํผ (์ฐ๋ฆฌ๋๋ค ์ฌ์ง์๊ฐ ๋ฆฌ์คํธ)
๊ธฐ๊ฐ : 2023.09 ~
์ฌ์ฉ๊ธฐ์ :
ํ์ : FrontEnd 2 + BackEnd 3
๊ธฐ์ฌ : Figma UI Design (์ด 22ํ๋ฉด ์ค 21ํ๋ฉด ๋์์ธ) + Frontend Develop ()
{% embed url="https://github.com/Team-Brand-AI/brand-ai-frontend" %}
โ ๊ตฌํ
โฃ ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ๋ง์ผํ ๋ฆฌ์คํธ ํ์ด์ง, ๋ง์ผํ ์ถ๊ฐ ํ์ด์ง, ๊ฒฐ๊ณผํ์ด์ง, ์ค์ ํ์ด์ง๋ฅผ ๊ตฌํํ์์ต๋๋ค
โฃ ์ด๋ฏธ์ง ์ ๋ก๋๋ฅผ ์ํด ExpressJS / CloudFlare Image API ๋ฅผ ์ฌ์ฉํ ์น ์๋ฒ๋ฅผ ๊ตฌ์ถํ์์ต๋๋ค
โ UI / UX ๊ฐ์
โฃ PWA ๋ฅผ ์ ์ฉ์์ผ UX ๋ฅผ ํฅ์์์ผฐ์ต๋๋ค
โ DX ๊ฐ์
์๊ฐ : ํ๊ตญ ์ ํต์ฃผ ์์ฅ ๋ถํฅ์ ์ํ ์ ํต์ฃผ MBTI ๋ฐ ์ฑํฅ์ ๋ฐ๋ฅธ ์ ์ถ์ฒ ์๋น์ค
๊ธฐ๊ฐ : 2023.05
์ฌ์ฉ๊ธฐ์ :
{% embed url="https://github.com/toothlessdev/Alcholic" %}
โ ๊ตฌํ
โฃ ์ฌ๋ฌ ํ์ด์ง์ ๊ฑธ์ณ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ์ค๋ฌธ์ ๋ํด Context API ๋ฅผ ์ฌ์ฉํด ์ํ๋ฅผ ์ ์ฅํ์์ต๋๋ค
โฃ useReducer ์ Context API ๋ฅผ ์กฐํฉํ์ฌ ๋ณต์กํ ์ํ ๊ด๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ์์ต๋๋ค
2023.03 ~ 2023.12 - ๊ฒฝ๋ถ๋ํ๊ต ๋ฉ์์ด์ฌ์์ฒ๋ผ 11๊ธฐ ์๊ธฐ์ฌ์ Frontend
2023.09 ~ 2023.12 - ๊ธ์ต๊ฒฝ์ ๊ต์กํ๋ซํผ Stocodi ์ฐฝ์
ํ Frontend Developer
2024.03 ~ 2024.?? - ํ์์ธ์ฃผ๋งค์นญํ๋ซํผ GET-P ์ฐฝ์
ํ Frontend Lead & Developer
2023.12 ~ 2024.12 - ๊ฒฝ๋ถ๋ํ๊ต ๋ฉ์์ด์ฌ์์ฒ๋ผ 12๊ธฐ ๋ํ
2024.06 - ๊ฒฝ๋ถ๋ํ๊ต ์ฐํฉํด์ปคํค ์ด์ TF
2023.05 - ๋ฉ์์ด์ฌ์์ฒ๋ผ 11๊ธฐ ๊ต๋ด ์์ด๋์ดํค ๋์ (DeadLock)
2023.06 - GET-IT ํด์ปคํค ์ฅ๋ ค์ (Alcoholic)
2023.07 - 82 ์คํํธ์
X LIKELION USA ์์ด๋์ดํค Security ๋์ (Luddit-Captcha)
2023.09 - ๋ฉ์์ด์ฌ์์ฒ๋ผ 11๊ธฐ ๋๊ฒฝ๊ถ ์ฐํฉํด์ปคํค ๋์ (UdongSari)
dd
์ฑํ ์๋, ์ฑํ ๊ฐ์๋, ์ฑํ ๋ด์ฉ ๋ฑ์ ๋ถ์ํด ์๋ฐฉ์ก ์ค ํ์ด๋ผ์ดํธ ๋ถ๋ถ์ ์ถ์ถํด์ฃผ๋ ์๋น์ค์ ๋๋ค
โฃ Python Requests ๋ชจ๋์ ์ฌ์ฉํด Twitch TV API ๋ก ๋ถํฐ ์๋ฐฉ์ก ์ฑํ ๋ด์ญ์ ๊ฐ์ ธ์์ต๋๋ค
์ฝํ ์ธ ๋ฉ ๋ฒ์ญ ์๋ฅด๋ฐ์ดํธ ์๋ํ ํ๋ก๊ทธ๋จ์ ๋๋ค.
โฃ ์์ ๋ฒ์ญ๋ณธ ํ์ผ์ ์ฝํ ์ธ ๋ฉ์ ์๋ํํ์ฌ ์ ์ฉ์์ผ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค
โฃ Python, Selenium, BeautifulSoup, Requests ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์๋ํํ์์ต๋๋ค.
๊ฒฝ๋ถ๋ํ๊ต ๊ต์๊ณผ๋ชฉ ๋์์ธ๊ณผ ํฌ๋ฆฌ์์ดํฐ๋ธ์์ ๊ฐ๋ฐํ
"ํ๊ฒฝ๋ฌธ์ (์ฐ๋ ๊ธฐ ๋ฐฐ์ถ) ํด๊ฒฐ์ ์ํ ์ฐ๋ ๊ธฐํต ์์น ๊ณต์ ๋ฐ ์
์ฌ์ดํด๋ง ๊ฑฐ๋ ํ๋ซํผ" ์
๋๋ค
โฃ Kakao MAP API ์ ๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ API ๋ฅผ ์ฌ์ฉํด ์ฌ์ฉ์ ์์น ์ฃผ๋ณ์ ์ฐ๋ ๊ธฐํต ์์น๋ฅผ ํ์ํ๋๋ก ๊ตฌํํ์์ต๋๋ค
Captcha ์ ์ทจ์ฝ์ ์ ๊ฐ์ ํ๊ธฐ ์ํด Stable Diffusion ๋ชจ๋ธ์ ์ฌ์ฉํ ํ๋กฌํํธ ๊ธฐ๋ฐ์ Captha
โฃ ํด๋น ์๋น์ค์ ๋๋ฉํ์ด์ง๋ฅผ ๊ตฌํํ์์ต๋๋ค
โฃ ์น ์ฌ์ดํธ ๋ณด์๊ณผ ๊ด๋ จ๋ ์ทจ์ฝ์ ์ ๋ํด ๊ณต๋ถํ์์ต๋๋ค (JWT, CSRF, XSS)
์ปดํจํฐํ๋ถ ๊ณ ๊ธ ์น ํ๋ก๊ทธ๋๋ฐ ์์ ์์ ์งํํ ๊ณผ์ ์ ๋๋ค
โฃ NestJS ์ TypeORM, SQLite ๋ฅผ ํ์ฉํด CRUD ์๋ฒ๋ฅผ ๊ตฌ์ถํ์์ต๋๋ค
โฃ