๐ŸŽ‰Project ํšŒ๊ณ 

Project | ์˜๋ฃŒ์ธ ์ธ์ฆ ๋ฏธ๋‹ˆ์•ฑ(23.07.31~08.24)

pajiyeee 2024. 3. 14. 18:39

์น˜์ฆˆํ†ก์—์„œ ์“ฐ๋˜ “์˜๋ฃŒ์ธ ๋ฉดํ—ˆ ์ธ์ฆ”

์น˜์ฆˆํ†ก์„ ํ†ตํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ”๋กœ ์ง„์ž…ํ•˜์—ฌ ์˜๋ฃŒ์ธ ์ธ์ฆ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ํ–ˆ๋‹ค.

 

 

์„œ๋น„์Šค์˜ ์œ ์ € ํ”Œ๋กœ์šฐ

 ๐Ÿ“Ž User Flow 1.Redirect๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์น˜์ฆˆํ†ก → ํšŒ์›๊ฐ€์ž… → ๋ฏธ๋‹ˆ์•ฑ ๋ณธ์ธ์ธ์ฆ(passVerify) → ๋ฉดํ—ˆ ํƒ€์ž…&๋ฉดํ—ˆ ๋ฒˆํ˜ธ ์„ ํƒํ•ด์„œ ํ™•์ธ(Certification/Verify) → ์„ฑ๊ณตํ•˜๋ฉด ์น˜์ฆˆํ†ก์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋ฉดํ—ˆ์ธ์ฆ์นด๋“œ ํš๋“

  1. Redirect๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ํ™ˆํ™”๋ฉด(Home) → ๋ฉดํ—ˆํƒ€์ž… ์„ ํƒ(SelectType)→ ๋ฏธ๋‹ˆ์•ฑ ๋ณธ์ธ์ธ์ฆ(PassVerify) → ๋ฉดํ—ˆ๋ฒˆํ˜ธ ํ™•์ธ(LicenseNumber) → ์„ฑ๊ณตํ•˜๋ฉด ๊ฐ™์€ ๊ฒฝ๋กœ์—์„œ ๋ฉดํ—ˆ์ธ์ฆ ์นด๋“œ๋ฅผ ํš๋“(Card)

 

๐ŸŽจ Figma(๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ flow ํ™”๋ฉด)

 

theme color :(๋ธ”๋ฃจ ๊ณ„์—ด) #F1F6FC", "#3C84F0", "#2369D4"

 

 

 

Project Schedule

 

 

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • yarn : ๊ฐœ๋ฐœํ™˜๊ฒฝ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌํ•  ๋•Œ, npm๋ณด๋‹ค ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋” ๋น ๋ฅด๊ณ , ์•ˆ์ „ํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
  • TypeScript : ๋ฆฌ์•กํŠธ์ฒ˜๋Ÿผ JSX๋ฅผ ์“ฐ๋Š”๋ฐ ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค˜์„œ ์—๋Ÿฌ๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ค€๋‹ค๊ณ  ํ•œ๋‹ค. ๊ฐ„๋‹จํ•œ ๊ฑด ๊ดœ์ฐฎ์•˜๋Š”๋ฐ ํƒ€์ž…์„ ์ง€์ •ํ•ด์ฃผ๊ธฐ ์–ด๋ ค์šด ์นœ๊ตฌ๋“ค๋„ ์žˆ์—ˆ๋‹ค.
  • tailwind css : ์ฒ˜์Œ ์จ๋ณด๋Š” css. ์ฒ˜์Œ์—” ์Šคํƒ€์ผ์„ ์ฐพ์•„์„œ ์ ์šฉํ•˜๋Š” ๊ฒŒ ๋ณต์žกํ–ˆ๋Š”๋ฐ ์กฐ๊ธˆ ์ ์‘ํ•˜๋‹ˆ๊นŒ ๋น ๋ฅด๊ฒŒ ๋ ˆ์ด์•„์›ƒ ์งœ๊ธฐ๊ฐ€ ์ข‹๋‹ค.
  • dev(๊ฐœ๋ฐœ์šฉ)์™€ prd(์‹ค์ œ์šด์˜)์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค.
  • redirect๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ flow๋Š” ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด์„œ ์ฐธ๊ณ ํ•˜๋ฉฐ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์ฃผ์š” ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  • ๊ณต์œ ํ•˜๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๊ณต์œ ์— ๋Œ€ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์‹œ์Šคํ…œ์„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ๋””๋ฐ”์ด์Šค ์œ„ํ•œ ํŒ์—… ๊ตฌํ˜„
    • ์นด์นด์˜ค ๋กœ๊ณ  ์•„์ด์ฝ˜์ด ๋‹ค๋ฅธ ์•„์ด์ฝ˜๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋œจ๋Š” ๋ถ€๋ถ„
    • ์นด์นด์˜ค ๋กœ๊ณ  ์•„์ด์ฝ˜ ํด๋ฆญ ์‹œ, ์นด์นด์˜ค ๊ณต์œ ํ•˜๋Š” ํŒ์—…์ฐฝ์ด ๋– ์•ผ ํ•˜๋Š”๋ฐ ์•ˆ ๋œจ๋Š” ๋ฌธ์ œ
    ๐Ÿšฉํ•ด๊ฒฐ
    • ์นด์นด์˜ค SDK๋ฅผ script์— ๋ถˆ๋Ÿฌ์˜ค๋Š” useEffect์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „ ๋กœ๋”ฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  Promise๋ฅผ ์จ์„œ ์นด์นด์˜ค SDK ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •์„ ๋„ฃ๊ณ  then์— ๋กœ๋”ฉ์„ ์—†์• ์„œ ์นด์นด์˜ค ์•„์ด์ฝ˜์ด ๋‚˜ํƒ€๋‚˜๊ธฐ ์ „ ๋กœ๋”ฉ์ด ๋œจ๊ฒŒ ๊ตฌํ˜„
    • ์นด์นด์˜คSDK์˜ ์—…๋ฐ์ดํŠธ ์‚ฌํ•ญ๊ณผ ๋””๋ฒจ๋กœํผ์Šค ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด์„œ ํ…œํ”Œ๋ฆฟ์„ ์ปค์Šคํ…€ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ฐพ์•„ ์‹œ๋„ํ•˜์—ฌ ํŒ์—…์ฐฝ์ด ๋œจ๊ฒŒ ๊ตฌํ˜„
  • ๐Ÿ“๋ฌธ์ œ
  • ๋ฉดํ—ˆ์ธ์ฆ ์นด๋“œ ๋ฐœ๊ธ‰ํ™”๋ฉด์„ ๊ณต์œ ํ•  ๋•Œ ์•Œ๋งž๋Š” ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ meta Og Tag ๋™์  ์ƒ์„ฑ
    • SPAํ™˜๊ฒฝ์ธ ์›น์ด๋ฏ€๋กœ ํ•˜๋‚˜์˜ html์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ดํ•ด๋‹น ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ์—์„œ dom์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ๊ณต์œ ํ•˜๊ธฐ๋ฅผ ํ–ˆ์„ ๋•Œ ๋ฐ”๋€ ๊ฐ’์œผ๋กœ ์•ˆ ๋‚˜ํƒ€๋Š” ๋ฌธ์ œ
    ๐Ÿšฉํ•ด๊ฒฐ
    • reac-helmet-async๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ†ตํ•ด meta ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  react-snap ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜์—ฌ index.html์„ ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•จ
  • ๐Ÿ“๋ฌธ์ œ
  • ๋ฉดํ—ˆ์ธ์ฆ ์นด๋“œ๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์€ ์‚ฌ์šฉ์ž๋„ data๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
    • ๋ฉดํ—ˆ์ธ์ฆ ์นด๋“œ ํ™”๋ฉด์„ ๊ณต์œ  ๋ฐ›์€ ์‚ฌ์šฉ์ž๊ฐ€ url์„ ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ€๋ฉด data๊ฐ€ ๋นˆ ๊ฐ’์œผ๋กœ ๋‚˜์˜ด
    ๐Ÿšฉํ•ด๊ฒฐ
    • ์ธ์ฆ ์นด๋“œ์˜ data๋ฅผ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑฐ์ณ์„œ ์˜ค๋Š” ๊ฒฝ์šฐ์™€ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ๊ฑฐ์น˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„๊ณ  ํ•„์š”ํ•œ data๋ฅผ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์œผ๋กœ ๋งŒ๋“ค์–ด ๊ณต์œ ํ•˜๊ธฐ ๋ฒ„ํŠผ์— ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด ๋‹ฌ๋ฆฐ ๊ฒฝ๋กœ๋ฅผ ๋ณด๋‚ด๋„๋ก ๊ตฌํ˜„
  • ๐Ÿ“๋ฌธ์ œ
  • ์นด๋“œ ํ„ฐ์น˜/ํด๋ฆญ ์‹œ select ์ œ์–ด
    • ๋ฉดํ—ˆ์ธ์ฆ ์นด๋“œ๋ฅผ ๋“œ๋ž˜๊ทธํ•˜๊ฑฐ๋‚˜ ํ„ฐ์น˜ํ•  ๋•Œ ์ด๋ฏธ์ง€ ๊ณ ์ŠคํŠธํ˜„์ƒ๊ณผ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๊ธํ˜€ ๋‚˜์˜ค๋Š” ํ˜„์ƒ
    ๐Ÿšฉํ•ด๊ฒฐ
    • ์นด๋“œ ๋‚ด์— ์žˆ๋Š” imgํƒœ๊ทธ๋ฅผ divํƒœ๊ทธ๋กœ ๋ฐ”๊พธ์–ด bg url๋กœ ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ ์„ค์ •
    • ์นด๋“œ UI์— user-select :none๊ณผ webkit-tap-hightlight-color:transparent๋ฅผ ์จ์ฃผ์–ด ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๊ธํžˆ๋Š” ํ˜„์ƒ ์ œ์–ด
  • ๐Ÿ“๋ฌธ์ œ

 

 

ํ”„๋กœ์ ํŠธ์—์„œ ๊ฒฝํ—˜ํ•œ ๊ฒƒ

  • ์‹ค์ œ ์‚ฌ์šฉ๋˜๋Š” ์•ฑ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€์˜ ํ”Œ๋กœ์šฐ๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์ž‘์—…ํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ
  • meta og ํƒœ๊ทธ๋ฅผ ๋™์  ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด dom์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ”๊ฟ”๋ณด๊ธฐ๋„ ํ•˜๊ณ , ๐Ÿ’Žreact-helmet-async ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์จ๋ณด๊ธฐ๋„ ํ•œ ๊ฒƒ
  • ์• ๋‹ˆ๋ฉ”์ด์…˜์„ css๋กœ ๋งŒ๋“ค๊ธฐ
  • ๐Ÿ’Žhtml2canvas์™€ file-saver๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์ง„ ์ €์žฅํ•˜๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์นด์นด์˜ค ๊ณต์œ ํ•˜๊ธฐ SDKํ™œ์šฉ
  • ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ์‚ฌ์šฉ
  • ๋ฐฑ์—”๋“œAPI ํ†ต์‹ 
  • QAํ…Œ์ŠคํŠธ์™€ ๋ฐฐํฌ
  • ๋””๋ฐ”์ด์Šค๋ณ„ ํ…Œ์ŠคํŠธ
  • ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์•Œ๊ฒŒ ๋˜๊ณ  ์‚ฌ์šฉํ•ด๋ณธ ์ 
  • console์„ ์ž์ฃผ ๋ณด๊ฒŒ ๋จ

 

 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋กœ ๋А๋‚€ ์ 

  • ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํ”„๋กœ์ ํŠธ์—ฌ๋„ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค์—ฌ์„œ ์ƒ๊ฐํ•˜๊ณ  ์ž‘์—…ํ•ด์•ผ ํ•  ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜๋‹ค.
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊นŠ์ด๋Š” ์•„๋‹ˆ์ง€๋งŒ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.
  • ์ฝ˜์†” ๋กœ๊ทธ๋ฅผ ๋งŽ์ด ์ฐ์–ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์œ ์ € ํ”Œ๋กœ์šฐ๋ฅผ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ƒํ™ฉ 70% ๋์„ ๋•Œ ์ดํ•ด๊ฐ€ ๋์—ˆ๋˜ ๊ฑฐ ๊ฐ™์€ ๋А๋‚Œ์ด ๋“ค์—ˆ๋‹ค.
  • ๋ฐฑ์—”๋“œ api๋กœ ํ†ต์‹ ํ•˜๊ณ  ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ํ™œ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค.
    • ๋‚ด๊ฐ€ ํ—ท๊ฐˆ๋ คํ•˜๊ณ  ๊ตฌ๋ถ„์ด ์•ˆ๋๋˜ ๋ถ€๋ถ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ฟผ๋ฆฌ์ŠคํŠธ๋ง๊ณผ location ๋ถ€๋ถ„์„ ๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.
  • meta์˜ ogํƒœ๊ทธ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.
    • react-helmet-async๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ๋ฐฐํฌ๊นŒ์ง€ ๋น ๋“ฏํ•˜๊ฒŒ ์ž‘์—…ํ–ˆ๋Š”๋ฐ QAํ…Œ์ŠคํŠธ๋ฅผ ์™„์ „ํžˆ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์šด ๋งˆ์Œ์ด ๋“ ๋‹ค.
  • css์™€ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋งŒํ•˜๊ฒŒ ๋ณด๋ฉด ์•ˆ ๋ ๋“ฏ
    • ๋‚˜๋ฆ„ ๋‚ด๊ฐ€ ๊ทธ๋‚˜๋งˆ ์ž˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๋ถ€๋ถ„์ด์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค.
  • ๊ธฐ์กด์— ์ž์šด๋‹˜์ด ์ž‘์„ฑํ•ด์ฃผ์‹  ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์„œ ์ฝ์–ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ์–ด์„œ ๋„์›€์ด ๋งŽ์ด ๋๋‹ค.
  • ๋ฏธ๋‹ˆ ์ธ์ฆ ๊ฐ„์†Œํ™” ์•ฑ์ด ๋ฐœ์ „ํ•˜๊ณ  ์ž˜ ์“ฐ์—ฌ์ง€๊ฒŒ ๋˜๊ธธ ๊ธฐ๋Œ€ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ €์—ฌ์„œ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ๋ณผ ์ผ์ด ๋งŽ์•˜๋‹ค.
  • ์ด๋Ÿฐ์ €๋Ÿฐ ์ผ€์ด์Šค๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์—๋Ÿฌ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.
  • ์ฝ˜์†”์„ ์ž˜ ๋“ค์—ฌ๋‹ค ๋ด์•ผ ํ•œ๋‹ค.

Deploy

https://bogun.careers/