Skip to content

πŸš— μ‹ μ°¨ 홍보 ν”„λ‘œμ νŠΈ - Softeer λΆ€νŠΈμΊ ν”„

Notifications You must be signed in to change notification settings

thgee/NewCar

Β 
Β 

Repository files navigation

μ•„λ°˜λ–Ό N μ†Œκ°œ 이벀트

image


🎬 μ‹œμ—° μ˜μƒ


πŸš— ν”„λ‘œμ νŠΈ μ†Œκ°œ

  • μ‹ μ°¨ 홍보λ₯Ό μœ„ν•œ 이벀트 νŽ˜μ΄μ§€ μž…λ‹ˆλ‹€.
  • μ„ μ°©μˆœ, 좔첨 이벀트둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • λ‹€μ–‘ν•œ μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•˜μ—¬ μœ μ €κ°€ ν₯λ―Έλ₯Ό 가지도둝 μœ λ„ν–ˆμŠ΅λ‹ˆλ‹€.
  • 곡유 URL을 톡해 홍보 효과λ₯Ό κ·ΉλŒ€ν™” ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ› οΈ 기술 μŠ€νƒ


πŸ‘₯ νŒ€μ› ꡬ성

FE FE BE BE
μ΄νƒœν˜ λ°•λŒ€μ› μœ μ„±μš± 쑰도연

@thgee

@DaeWon9

@starwook

@ysndy

πŸ“– νŽ˜μ΄μ§€λ³„ κΈ°λŠ₯


[좔첨 이벀트]

  • μ‹ κ·œ μœ μ €κ°€ λ‘œκ·ΈμΈν•  μ‹œ κΈ°λ³Έ 3회 λ½‘κΈ°κΆŒμ΄ μ§€κΈ‰λ˜λ©° 뽑기λ₯Ό μ§„ν–‰ν•˜λ©΄ 좔첨 μ΄λ²€νŠΈμ— μžλ™ 응λͺ¨ μ²˜λ¦¬λ©λ‹ˆλ‹€.
  • μƒμ„±λœ URL을 κ³΅μœ ν•˜μ—¬ μ‹ κ·œ μœ μ €κ°€ κ°€μž…ν•˜λ©΄ λ½‘κΈ°κΆŒμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ΄λ²€νŠΈκ°€ λλ‚œ ν›„ κ΄€λ¦¬μžμ˜ 일괄 좔첨을 톡해 1λ“±λΆ€ν„° 5λ“±κΉŒμ§€μ˜ λ‹Ήμ²¨μžκ°€ μ„ μ •λ©λ‹ˆλ‹€.
  • λͺ¨λ“  μΉ΄ν…Œκ³ λ¦¬λ³„ 1개 μ΄μƒμ˜ 파츠λ₯Ό νšλ“ν•˜λ©΄ μ•„λ°˜λ–Ό N λ―Έλ‹ˆμ–΄μ²˜λ₯Ό μ¦μ •ν•˜λ©° 이 λ˜ν•œ κ΄€λ¦¬μžμ˜ μΆ”μ²¨μœΌλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.
좔첨 이벀트

[파츠 뽑기]

  • μΉ΄λ“œλ₯Ό ν΄λ¦­ν•΄μ„œ 파츠λ₯Ό 뽑을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • κ°€μ§€κ³  μžˆλŠ” λ½‘κΈ°κΆŒμ΄ μ†Œμ§„λ˜λ©΄ 더이상 뽑기λ₯Ό μ§„ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
파츠 뽑기

[파츠 μ»¬λ ‰μ…˜]

  • νŒŒμΈ λ½‘κΈ°μ—μ„œ νšλ“ν•œ νŒŒμΈ λ“€μ„ μž₯μ°©ν•˜μ—¬ μ•„λ°˜λ–Όλ₯Ό μ»€μŠ€ν…€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μΉ΄λ“œμ— 마우슀λ₯Ό 올리면, μž₯착된 νŒŒμΈ λ“€μ„ ν•œλˆˆμ— 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
파츠 μ»¬λ ‰μ…˜

[κΈ°λŒ€ν‰/곡유]

  • μ•„λ°˜λ–Ό N에 λŒ€ν•œ κΈ°λŒ€ν‰μ„ μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • κΈ°λŒ€ν‰μ€ 50자 μ΄λ‚΄λ‘œ μž‘μ„±ν•˜λ„λ‘ μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • λ‚΄ μ»¬λ ‰μ…˜μ„ μžλž‘ 수 μžˆλŠ” 곡유링크λ₯Ό 볡사할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ‹€λ₯Έ μ‚¬λžŒμ΄ 곡유링크둜 μ ‘μ†ν•˜κ²Œ 되면 λ‚΄κ°€ μž₯μ°©ν–ˆλ˜ νŒŒμΈ λ“€μ„ ꡬ경할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 곡유링크둜 μ ‘μ†ν•œ μœ μ €κ°€ λ‘œκ·ΈμΈμ„ ν•˜λ©΄ 링크λ₯Ό κ³΅μœ ν•œ μœ μ €μ˜ λ½‘κΈ°κΆŒμ΄ 1회 μ¦κ°€ν•©λ‹ˆλ‹€.
κΈ°λŒ€ν‰/곡유

[μ„ μ°©μˆœ 이벀트]

  • μ˜€μ „ 10μ‹œκ°€ 되면 ν€΄μ¦ˆκ°€ κ³΅κ°œλ©λ‹ˆλ‹€.
  • 정닡을 ν‹€λ¦¬κ²Œ 되면 μ•„λ°˜λ–Ό N μ†Œκ°œ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜μ—¬ 힌트λ₯Ό μ°Ύμ•„λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ„ μ°©μˆœ 인원 μ•ˆμ— λ“€μ—ˆλ‹€λ©΄ 당첨 μƒν’ˆκ³Ό ν•¨κ»˜ μ „ν™”λ²ˆν˜Έλ₯Ό μž…λ ₯ν•  수 μžˆλŠ” νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.
μ„ μ°©μˆœ 이벀트

πŸ“œ μ΄μŠˆκ΄€λ¦¬ 및 λ¬Έμ„œ


πŸ”§ μ„ΈλΆ€ κΈ°μˆ μŠ€νƒκ³Ό μ±„νƒν•œ 이유

  • λͺ¨λ…Έλ ˆν¬ ν™˜κ²½μ—μ„œ 각 νŒ¨ν‚€μ§€λ§ˆλ‹€ λͺ¨λ“ˆμ΄ μ€‘λ³΅μœΌλ‘œ μ„€μΉ˜λ˜μ–΄ λ°œμƒν•˜λŠ” λ‚­λΉ„λ₯Ό 막기 μœ„ν•΄ λ„μž…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • μ½”λ“œ 쀑볡을 쀄이고, κ³΅ν†΅λœ λ‘œμ§μ΄λ‚˜ μΌκ΄€λœ μ½”λ“œ μŠ€νƒ€μΌμ„ 각 νŒ¨ν‚€μ§€μ—μ„œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ λ„μž…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • service와 admin을 λΆ„λ¦¬ν•˜μ—¬ 각 νŒ¨ν‚€μ§€μ— λŒ€ν•œ λ²ˆλ“€μ‚¬μ΄μ¦ˆλ₯Ό μ€„μ΄λŠ” λ™μ‹œμ— admin에 λŒ€ν•œ λ³΄μ•ˆμ€ κ°•ν™”λ˜λŠ” 효과λ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€.

Firebase Preview

  • CI/CD νŒŒμ΄ν”„λΌμΈμ—μ„œ production ν™˜κ²½ 이전에 preview ν™˜κ²½μ„ κ΅¬μΆ•ν•˜μ—¬ 변경사항을 κ²€ν† ν•  수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • 동적 링크둜 μƒμ„±λ˜λŠ” Preview ν™˜κ²½μ„ 톡해 효율적인 A/B ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

Emotion

  • μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„λ‘œ μŠ€νƒ€μΌμ„ μΊ‘μŠν™”ν•˜κ³ , λ™μ μœΌλ‘œ μŠ€νƒ€μΌμ„ μ μš©ν•˜κΈ° μœ„ν•΄ CSS-in-JS 방식을 μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€.

  • Styled-component 보닀 emotion이 더 μœ μ—°ν•˜κ³ , λ²ˆλ“€μ‚¬μ΄μ¦ˆκ°€ μž‘λ‹€κ³  νŒλ‹¨ν•˜μ—¬ emotion을 μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€. (styled-component vs emotion)

React-query

  • 이벀트 νŽ˜μ΄μ§€ νŠΉμ„±μƒ λŒ€κ·œλͺ¨ νŠΈλž˜ν”½μ΄ μ˜ˆμƒλ˜μ–΄ μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 캐싱 κΈ°λŠ₯을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

  • useSuspenseQueryλ₯Ό μ‚¬μš©ν•˜μ—¬ API 호좜 쀑에도 suspense μ»΄ν¬λ„ŒνŠΈκ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν•  수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Framer-motion

  • λ³΅μž‘ν•œ μ• λ‹ˆλ©”μ΄μ…˜μ΄ λ§Žμ€ ν”„λ‘œμ νŠΈμ—μ„œ λΆ€λ“œλŸ¬μš΄ μ• λ‹ˆλ©”μ΄μ…˜ κ΅¬ν˜„μ„ μœ„ν•΄ λ„μž…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ’­ ν”„λ‘œμ νŠΈ μ£Όμš” κ³ λ € 사항, μ•Œκ²Œ 된 점

λͺ¨λ…Έλ ˆν¬ ν™˜κ²½μ—μ„œμ˜ CI/CD ꡬ좕

  • Github Action을 μ‚¬μš©ν•˜μ—¬ PR μž‘μ„±μ‹œ 동적 링크둜 μƒμ„±λ˜λŠ” Preview 배포가, MainλΈŒλ ŒμΉ˜μ— Mergeμ‹œ Production배포가 μžλ™ν™”λ˜λ„λ‘ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

  • λͺ¨λ…Έλ ˆν¬μ—μ„œ 일반적인 λͺ¨λ†€λ¦¬μ‹ ꡬ쑰처럼 CI/CD ꡬ좕 μ‹œ λ ˆν¬μ§€ν† λ¦¬ λ‚΄μ˜ λͺ¨λ“  νŒ¨ν‚€μ§€κ°€ λΉŒλ“œλ˜κΈ° λ•Œλ¬Έμ— λ³€κ²½λ˜μ§€ μ•Šμ€ νŒ¨ν‚€μ§€λ“€λ„ λΉŒλ“œλ˜μ–΄ λ¦¬μ†ŒμŠ€κ°€ 낭비될 μš°λ €κ°€ μ‘΄μž¬ν–ˆμŠ΅λ‹ˆλ‹€.

  • 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ CI/CD νŒŒμ΄ν”„λΌμΈμ— μ•„λž˜μ˜ λ‘œμ§μ„ μΆ”κ°€ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

    • ν˜„μž¬ νŒ¨ν‚€μ§€μ˜ λ§ˆμ§€λ§‰ 컀밋해쉬가 Main브렌치의 λ§ˆμ§€λ§‰ 컀밋해쉬와 같은지 νŒλ³„ν•©λ‹ˆλ‹€.
    • 두 컀밋해쉬가 κ°™λ‹€λ©΄ ν•΄λ‹Ή νŒ¨ν‚€μ§€λŠ” 변경사항이 μ—†λ‹€κ³  νŒλ‹¨ν•˜κ³  λΉŒλ“œλ˜μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.
  • μΆ”κ°€μ μœΌλ‘œ PR μž‘μ„± μ‹œ λ³€κ²½λœ νŒ¨ν‚€μ§€κ°€ 무엇인지 Github Bot이 λŒ“κΈ€λ‘œ μž‘μ„±ν•˜λ„λ‘ ν•˜μ—¬ νŒ€μ›μ΄ μ–΄λŠ νŒ¨ν‚€μ§€λ₯Ό μˆ˜μ •ν–ˆλŠ”μ§€ λ°”λ‘œ μ•Œμ•„λ³Ό 수 μžˆλ„λ‘ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.


UX κ°œμ„ 

  • 1μ°¨ 데λͺ¨μ—μ„œ λ°œμƒν–ˆλ˜ UX κ΄€λ ¨ 뢀정적 ν”Όλ“œλ°±μ„ κΈ°λ‘ν•˜κ³  κ°œμ„ ν•˜μ—¬ 2μ°¨ 데λͺ¨λ•ŒλŠ” μ•½ 88% κ°μ†Œμ‹œμΌ°μŠ΅λ‹ˆλ‹€.

  • Preview 배포 ν™˜κ²½μ„ 톡해 A/B testλ₯Ό μ§„ν–‰ν•˜μ—¬ μ‚¬μš©μžμ˜ ν”Όλ“œλ°±μ„ 효율적으둜 λ°˜μ˜ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.


λ°˜μ‘ν˜•, Cross browsing μ›Ή κ΅¬ν˜„

  • μ΄λ²€νŠΈνŽ˜μ΄μ§€μ˜ νŠΉμ„± 상 λͺ¨λ°”μΌλ‘œ μ ‘μ†ν•˜λŠ” μœ μ €κ°€ λ§Žμ„κ²ƒμ΄λΌκ³  νŒλ‹¨ν•˜μ—¬ λ°˜μ‘ν˜• 웹을 κ΅¬ν˜„ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€.

  • 각쒅 λΈŒλΌμš°μ €μ™€ λ””λ°”μ΄μŠ€λ§ˆλ‹€ 폰트, 이미지 λ“±μ˜ ν˜Έν™˜μ„± 이슈λ₯Ό EOT β‡’ WOFF, SVG β‡’ WEBP 처럼 λ²”μš©μ μΈ ν˜•μ‹μ„ μ±„νƒν•˜μ—¬ ν•΄κ²°ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • Safari λΈŒλΌμš°μ €μ™€ IPhone ν™˜κ²½μ—μ„œ 3D μ• λ‹ˆλ©”μ΄μ…˜μ΄ μž‘λ™ν•˜μ§€ μ•ŠλŠ” μ΄μŠˆκ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€. Window 객체의 userAgent λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μœ μ €μ˜ ν™˜κ²½μ— 따라 2D μ• λ‹ˆλ©”μ΄μ…˜μœΌλ‘œ λŒ€μ²΄ν•˜μ—¬ ν•΄κ²°ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λ©° μž‘μ—…ν•˜λŠ” κ²ƒμ˜ μ€‘μš”μ„±μ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.


ν˜‘μ—…

  • Jira, Slack, githubλ₯Ό μ—°λ™ν•˜μ—¬ ν˜‘μ—…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • Jiraμ—μ„œ 이슈 생성 ν˜Ήμ€ Githubμ—μ„œ PR, merge μ‹œ Slack으둜 νŒ€μ›λ“€μ—κ²Œ μ•Œλ¦Όμ΄ μ „μ†‘λ˜λ„λ‘ ν•˜μ—¬ λΉ λ₯Έ ν”Όλ“œλ°±μ΄ κ°€λŠ₯ν•˜λ„λ‘ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.

  • 기획, λ””μžμΈ, κ°œλ°œνŒ€μ΄ λ‚˜λ‰˜μ–΄μ ΈμžˆλŠ” 싀무와 μœ μ‚¬ν•œ ν”„λ‘œμ νŠΈλ₯Ό 톡해 각 λΆ€μ„œκ°„ ν˜‘μ—…ν•˜λŠ” 방법을 λ°°μ› μŠ΅λ‹ˆλ‹€.

About

πŸš— μ‹ μ°¨ 홍보 ν”„λ‘œμ νŠΈ - Softeer λΆ€νŠΈμΊ ν”„

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%