๐Ÿ˜ ์ด์œ ๋ฅผ ๊ณ ๋ฏผํ•˜๋Š” ๊ฐœ๋ฐœ์žย ํ™์›๋ฐฐ์ž…๋‹ˆ๋‹ค

๐Ÿ™‹โ€โ™‚๏ธ About me

notion image

Intorduction

  • ์•ˆ๋…•ํ•˜์„ธ์š”! ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ํ™์›๋ฐฐ์ž…๋‹ˆ๋‹ค
  • ์›น ํ”„๋ก ํŠธ์— ๊ตญํ•œ ๋˜์ง€์•Š๊ณ  ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค
  • ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ์ˆ  ๋…ธ์…˜ํŽ˜์ด์ง€๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
  • Clean Code์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋งŽ๊ณ  ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ๊พธ์ค€ํ•จ์„ ์ตœ์šฐ์„  ๊ฐ€์น˜๋กœ ๋‘๊ณ  ํ•จ๊ป˜ ํ•˜๋Š” ์„ฑ์žฅ์— ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค

Contact

  • Email | shongs27@gmail.com
  • Githubย | https://github.com/shongs27
  • Blogย | ํ™์›๋ฐฐ์˜ ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ (์ˆ˜์ •์ค‘)

๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป Skills

Fronted

  • HTML, CSS, Javascript
  • ReactJS, redux
  • NextJS
  • React-testing-library, Jest
ย 

Backend

  • NodeJS
  • MongoDB
  • Amazon Clould
  • Scss, emtion, typescript ๋“ฑ ์„ ์ œ์™ธํ•œ ์ฃผ์š” ๊ธฐ์ˆ ์Šคํƒ๋งŒ ์„œ์ˆ ํ–ˆ์Šต๋‹ˆ๋‹ค
  • ์ƒ๊ธฐ์˜ ๊ธฐ์ˆ ๋“ค์— ๋Œ€ํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ๊ณ  ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค
  • ํ”„๋ก ํŠธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, NodeJS์™€ AWS๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฑ์—”๋“œ์—๋„ ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค ๐Ÿคฃ
ย 

๐Ÿ“Projects

๊ฐœ์ธํ”„๋กœ์ ํŠธ


๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ (v2)

  • Notion์„ CMS(์ปจํ…์ธ  ๊ด€๋ฆฌ ์‹œ์Šคํ…œ)๋กœ ํ™œ์šฉํ•˜์—ฌ ์ •๋ฆฌ๋œ ๊ธ€์„ ํฌ์ŠคํŠธ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ปจํ…์ธ ๋กœ ํ•˜์—ฌ ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๊ณ , ์ง€์†์ ์ธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•œ ์‹ค์Šต์„ ๋ชฉ์ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
[๋ธ”๋กœ๊ทธv2 ์ €์žฅ์†Œ] (์ˆ˜์ •์ค‘)
  • NextJS๋ฅผ ์ด์šฉํ•œ pre-rendering ๋ฐฉ์‹๊ณผ react, redux๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CSR ๋ Œ๋”๋งํ•˜๋Š” ๋ณตํ•ฉ์ ์ธ ๋ Œ๋”๋ง ๋ฐฉ๋ฒ• ์ด์šฉ
  • ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ ์ ์šฉ (ํƒœ๋ธ”๋ฆฟ, ๋ชจ๋ฐ”์ผ ์ง€์›)
  • ์›น ํ‘œ์ค€์„ ๊ณ ๋ คํ•œ HTML๊ณผ ๋‹ค์–‘ํ•œ CSS๋ฅผ ์ ์šฉ
๋ธ”๋กœ๊ทธ v1์—์„œ ๊ฐœ์„ ํ•œ ์ 
(1) AWS EC2์˜ ํด๋ผ์šฐ๋“œ ๋น„์šฉ์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์ ์„ ๋…ธ์…˜์„ CMS๋กœ ์„ค๊ณ„ํ•˜์—ฌ ํ•ด๊ฒฐ (2) ์ˆœ์ˆ˜ ๋ฆฌ์•กํŠธ๋งŒ์„ ํ™œ์šฉํ•œ SPA์˜ ๋น„ํšจ์œจ์ ์ธ ๋ Œ๋”๋ง ๋ฐฉ์‹์„ ๊ฐœ์„ ํ•˜์—ฌ ๋ธ”๋กœ๊ทธ๊ธ€๋“ค์€ vercel ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฏธ๋ฆฌ ๊ตฌํ˜„ํ•˜์—ฌ ๋ Œ๋”๋ง ์†๋„๋ฅผ ๊ฐœ์„ 
ย 
[๋ธ”๋กœ๊ทธv1 ์ €์žฅ์†Œ]
  • AWS EC2์™€ CloudFront๋“ฑ์„ ํ™œ์šฉํ•œ https ์ ์šฉ
  • express์™€ mongoose ODM์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๊ตฌํ˜„
  • ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์™€ Restfull ํ•œ ์„ค๊ณ„๋ฅผ ํ†ตํ•œ โ€˜์ข‹์•„์š”โ€™, โ€˜๋ฐฉ๋ช…๋กโ€™, โ€˜๊ฒ€์ƒ‰โ€™ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„
  • ์ตœ์‹  Google Analytics API(Data V1) ๋“ฑ์„ ํ™œ์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐฉ๋ฌธ์ž ์ง‘๊ณ„
์ €๋Š” ์ด๋ ‡๊ฒŒ ๊ณ ๋ฏผํ•˜๊ณ  ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค!
markdown ํŒŒ์ผ์˜ ํŠน์ • ํ˜•์‹ (<aside />)๋งŒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด AST๋ฅผ ํ•™์Šตํ•˜๊ณ  ํŠน์ • ํƒœ๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐ [์ฐธ์กฐ์ฝ”๋“œ]
ย 
ย 

๋ฌด๋น„ ์•ฑ

  • ์™ธ๋ถ€ API๋ฅผ ํ†ตํ•ด ์˜ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ์ฆ๊ฒจ์ฐพ๊ธฐ ๋ฉ”๋‰ด๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฌด๋น„ ์•ฑ ์ž…๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰์‹œ ํŽ˜์ด์ง€๋„ค์ด์…˜์ด ๊ธธ์–ด์ง€๋Š” UX ๊ฐœ์„ ์„ ์œ„ํ•ด intersectionObserveAPI๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฌดํ•œ๋กœ๋”ฉ์„ ๊ตฌํ˜„ํ–ˆ๊ณ , ์ด์™ธ์— ์•Œ๋žŒ์ฐฝ์ด ๋–  ์žˆ์„ ๋•Œ๋Š” ๋‹ค๋ฅธ ๋ฉ”๋‰ด์˜ ์ž…๋ ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” block๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋“ฑ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๊ณ  ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • React DnD์™€ ๊ฐ™์€ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ณด๋‹ค ์ง์ ‘ ์ปค์Šคํ…€ ํ›…์œผ๋กœ ๋“œ๋ž˜๊ทธ์•ค๋“œ๋ž ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. [์ฐธ์กฐ์ฝ”๋“œ]
ย 

ํŒ€ํ”„๋กœ์ ํŠธ


๋งค๋“œ์—…

  • ๋งค๋“œ์—… ๊ด‘๊ณ  ํ˜„ํ™ฉ ์„œ๋น„์Šค
  • Victory.js์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™” ํ™•์ธ
์ „์ฒด์ ์ธ ๋ฆฌ๋”ฉ๊ณผ ๋งค์ฒดํ˜„ํ™ฉ, ๋ฐ์ดํ„ฐ API๋ฅผ ํ™œ์šฉํ•˜๋Š” redux ์„ค๊ณ„ ๋‹ด๋‹น
  • ํ”„๋ก ํŠธ์—์„œ Victory.js์— ์ ์šฉ๋˜๋Š” data API๋กœ ๊ฐ€๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ fetchํ•ด์™€์„œ redux์˜ thunk ๋ฏธ๋“ค์›จ์–ด๋ฅผ ํ†ตํ•ด JSON ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณต
  • API๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ๊ธฐ์— ์ฐจํŠธ๋ฅผ ๊ทธ๋ ค๋‚ด๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋Š” ์›ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ํ”„๋ก ํŠธ์—์„œ ๋”ฐ๋กœ ๊ฐ€๊ณตํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์งˆํ™˜ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค

  • ํœด๋จผ์Šค์ผ€์ดํ”„ ์งˆํ™˜ ์ถ”์ฒœ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค
  • react-query์™€ ๋””๋ฐ”์šด์‹ฑ์„ ํ™œ์šฉํ•˜์—ฌ API ํ˜ธ์ถœ์„ ์ตœ์†Œํ™” ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ 

ํ—ฌ์Šค์ผ€์–ด ๊ด€๋ฆฌ ์„œ๋น„์Šค

  • ๋ชจ์•„๋ฐ์ดํ„ฐ ํ—ฌ์Šค์ผ€์–ด ์„œ๋น„์Šค
  • ํšŒ์›๋“ค์˜ ์‹ฌ๋ฐ• / ๊ฑธ์Œ ์ˆ˜ ๊ด€๋ฆฌ

์Šค์ผ€์ค„ ๊ด€๋ฆฌ

  • ํ•  ์ผ ์ถ”๊ฐ€ / ์‚ญ์ œ ๊ธฐ๋Šฅ์˜ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ
ย 
ย 

๐Ÿ‘จโ€๐Ÿซ Education


์›ํ‹ฐ๋“œ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ 4๊ธฐ

2022.05 ~ 2022.06
  • ํ˜‘์—…์„ ํ†ตํ•œ ์ฝ”๋“œ๋ฆฌ๋ทฐ์™€ ๊ฐœ์„  ๊ฒฝํ—˜

์ฝ”๋“œ์ˆจ ๋ฆฌ์•กํŠธ 6๊ธฐ

2021.12 ~ 2022.02
  • ๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•œ ๋ฆฌ์•กํŠธ ์‹ค์Šต
  • ํ…Œ์ŠคํŠธ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก  ํ•™์Šต
[๊ณผ์ œ ์ฐธ์กฐ]
  • ๊ธฐ๋ณธ์ ์ธ Jest ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•œ ์ฝ”๋“œ ๊ฐœ์„ ๊ณผ ๊ฐ€๋…์„ฑ ์žˆ๋Š” ์ฝ”๋“œ์˜ ์ค‘์š”์„ฑ์„ ๋ฐฐ์šด ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์€ ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ฑฐ๋“ญํ•˜๋ฉด์„œ TDD ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ์ตํ˜”์Šต๋‹ˆ๋‹ค.
  • ๋ฌด์—‡๋ณด๋‹ค ๋‚˜๋งŒ์ด ์ดํ•ดํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ์‰ฝ๊ณ , ํŽธํ•˜๊ณ , ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•˜๋Š” ์Šต๊ด€์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ธํ…”๊ณผ ํ•จ๊ป˜ํ•˜๋Š” AI

2020.01 ~ 2020.02
  • ์ธํ…”์—์„œ ์ฃผ๊ด€ํ•˜๋Š” ์ธ๊ณต์ง€๋Šฅ ๊ด€๋ จ ๊ต์œก๊ณผ ๋“œ๋ก ์„ ์ด์šฉํ•œ ์ž๋™์ฃผํ–‰ ์‹ค์Šต

๋น…๋ฐ์ดํ„ฐ ์ฒญ๋…„์ธ์žฌ

2019.06 ~ 2019.09
๊ณผํ•™ํ†ต์‹ ๋ถ€ ์ฃผ๊ด€ ๋น…๋ฐ์ดํ„ฐ ์ฒญ๋…„์ธ์žฌ
  • 1๊ฐœ์›” ์ง‘์ฒด๊ต์œก + 2๊ฐœ์›” ํ”„๋กœ์ ํŠธ
  • ๋ฏธ์„ธ๋จผ์ง€ ๋†๋„์— ๋”ฐ๋ฅธ ๊ธฐ์ƒ ์˜ˆ์ธก ํ”„๋กœ์ ํŠธ 2๋“ฑ
  • ํ˜‘์—…๊ณผ ๋„๋ฉ”์ธ ์ง€์‹์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ๊นจ๋‹ซ๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•œ ๊ณ„๊ธฐ

ย 

๐Ÿ“Œ ์ž๊ฒฉ์ฆ

  • DSAC 3๋“ฑ๊ธ‰
    • ๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ ๋Šฅ๋ ฅ๊ฒ€์ •
      ์ฃผ๊ด€: ํ•œ๊ตญ์ƒ์‚ฐ์„ฑ๋ณธ๋ถ€ ์ทจ๋“์ผ : 2019.05
  • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ๋Šฅ์‚ฌ ์ฃผ๊ด€: ํ•œ๊ตญ์‚ฐ์—…์ธ๋ ฅ๊ณต๋‹จ
  • ํ† ์ต์Šคํ”ผํ‚น LV6 ์ฃผ๊ด€: ETS ์ทจ๋“์ผ : 2020.09
  • ํ•œ๊ตญ์‚ฌ 1๊ธ‰ ์ฃผ๊ด€: ๊ตญ์‚ฌํŽธ์ฐฌ์œ„์›ํšŒ ์ทจ๋“์ผ : 2019.06
ย 

๐Ÿ’ฌ Mottos

  • ๋งค์ผ ํ•™์Šต
  • "์ฒ™" ํ•˜์ง€๋ง์ž
  • ๋ฉ”ํƒ€์ธ์ง€๋ฅผ ํ†ตํ•ด ๋ช…ํ™•ํ•˜๊ฒŒ ํ•™์Šตํ•˜์ž
ย