λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

슀마일게이트 μ„œλ²„κ°œλ°œμΊ ν”„ 4κΈ°

πŸš€ 슀마일게이트 μ„œλ²„κ°œλ°œμΊ ν”„ 4κΈ° - 회고

 μŠ€λ§ˆμΌκ²Œμ΄νŠΈμ—μ„œ 두 달 κ°„ μ§„ν–‰λ˜μ—ˆλ˜ μ„œλ²„κ°œλ°œμΊ ν”„κ°€ μ’…λ£Œλ˜μ—ˆλ‹€. μ½”λ‘œλ‚˜ λ•Œλ¬Έμ— κ°‘μž‘μŠ€λŸ½κ²Œ λ§ˆλ¬΄λ¦¬λ˜μ–΄ μ•„μ‰¬μ› μ§€λ§Œ, λ§Žμ€ 것을 얻을 수 μžˆμ—ˆλ˜ μ‹œκ°„μ΄μ—ˆλ‹€. 이번 ν¬μŠ€νŒ…μ—μ„œ μ„œλ²„κ°œλ°œμΊ ν”„λ₯Ό 톡해 얻은 점과 λŠλ‚Œμ μ— λŒ€ν•΄ μ μ–΄λ³΄λ €ν•œλ‹€.

 

RESTful API 개발

 μ΄λ²ˆ ν”„λ‘œμ νŠΈμ—μ„œλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λ₯Ό λΆ„λ¦¬ν•˜μ—¬ κ°œλ°œμ„ μ§„ν–‰ν•˜κ²Œλ˜μ—ˆλ‹€. 넀이버 λΆ€μŠ€νŠΈμ½”μŠ€λ₯Ό μ§„ν–‰ν•˜λ©° REST APIλ₯Ό κ°œλ°œν•΄λ΄€μ§€λ§Œ, ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžμ™€ ν˜‘μ—…ν•˜μ—¬ APIλ₯Ό κ°œλ°œν•œ 것은 μ²˜μŒμ΄μ—ˆκ³ , μ•„μ£Ό μƒˆλ‘œμš΄ κ²½ν—˜μ΄μ—ˆλ‹€.

 μΌλ‹¨ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžμ™€ λ°±μ—”λ“œ κ°œλ°œμžκ°„μ˜ μ†Œν†΅μ΄ μ€‘μš”ν•˜λ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜λ‹€. μš°λ¦¬λŠ” 이번 ν”„λ‘œμ νŠΈμ—μ„œ APIλ¬Έμ„œλ₯Ό μž‘μ„±ν•˜μ—¬ κ³΅μœ ν–ˆλ‹€. ν•΄λ‹Ή APIλ¬Έμ„œμ—λŠ” API별 URLκ³Ό λ©”μ†Œλ“œ, μš”μ²­κ³Ό 응닡에 λŒ€ν•œ λ‚΄μš©λ“€μ΄ λ‹΄κ²¨μžˆμ—ˆλ‹€. ν•΄λ‹Ή λ‚΄μš©μ„ 미리 μž‘μ„±ν•˜κ³ , ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œ κ°œλ°œμžκ°€ 각각 ν•΄λ‹Ή λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ—¬ κ°œλ°œν–ˆκΈ° λ•Œλ¬Έμ— 생산성 ν–₯상에 큰 도움이 λ˜μ—ˆλ‹€.

 

 

 

MSA와 AWS

 MSA ꡬ쑰의 μ„œλ²„ μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬μ„±ν–ˆκ³ , μ„œλΉ„μŠ€λ₯Ό λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κΈ°μ€€μœΌλ‘œ λΆ„λ¦¬ν–ˆλ‹€. 각자 μ„œλ²„λ₯Ό ν•œλ‘κ°œμ”© λ§‘μ•„μ„œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•œ 덕뢄에 μ†ŒμŠ€κ°€ μΆ©λŒλ‚˜μ„œ κ³ μƒν•˜μ§€λŠ” μ•Šμ•˜λ‹€. λ˜ν•œ 각각의 μ„œλ²„κ°€ λ…λ¦½μ μœΌλ‘œ λΆ„λ¦¬λ˜μ–΄μžˆμ–΄ μ„œλΉ„μŠ€λ₯Ό κ°œλ°œν•˜κ³  ν…ŒμŠ€νŠΈν•˜λŠ”λ° λΆˆνŽΈν•¨μ΄ μ—†μ—ˆλ‹€.

 κ°œλ°œ μ™„λ£Œ ν›„, 각각의 μ„œλ²„λ₯Ό AWS에 λ°°ν¬ν–ˆλ‹€. μš°λ¦¬λŠ” AWSμ—μ„œ μ œκ³΅ν•˜λŠ” 프리티어λ₯Ό μ‚¬μš©ν–ˆλŠ”λ°, μ„±λŠ₯이 μ•„μ£Ό 쒋지 μ•Šλ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜λ‹€... RDS의 경우 db.t2.microλ₯Ό μ‚¬μš©ν–ˆλŠ”λ° μ΅œλŒ€ 컀λ„₯μ…˜ν’€μ΄ 66κ°œμ—¬μ„œ 각 μ„œλ²„μ˜ ν’€μ‚¬μ΄μ¦ˆλ₯Ό μ‘°μ •ν•΄μ•Όν–ˆκ³ , EC2의 경우 t2.micro의 vCPUκ°€ 1κ°œμ—¬μ„œ λ‘œκ·ΈμΈμ‹œμ— μ‚¬μš©μž μ•”ν˜Έλ₯Ό ν•΄μ‹œν•¨μˆ˜λ‘œ λŒλ¦¬λŠ” 과정도 버거웠닀.

 μ–΄μ°Œλλ“  λ‚΄κ°€ κ°œλ°œν•œ μ„œλ²„λ₯Ό 직접 λ°°ν¬ν•˜λ©΄μ„œ λ‘œμ»¬μ—μ„œ κ²½ν—˜ν•  수 μ—†μ—ˆλ˜ λ¬Έμ œμ λ“€μ„ λ°œκ²¬ν•  수 μžˆμ—ˆκ³ , 이λ₯Ό ν•΄κ²°ν•˜λŠ” 과정을 톡해 많이 λ°°μ› λ‹€. 특히 ν†°μΊ£μ˜ λ™μž‘ 방식에 λŒ€ν•΄μ„œλŠ” 더 κ³΅λΆ€ν•΄μ•Όκ² λ‹€λŠ” 생각을 ν•˜κ²Œ λ˜μ—ˆλ‹€.

 

 

 

μΈμ¦μ„œλ²„μ™€ JWT

 μ΄λ²ˆ ν”„λ‘œμ νŠΈμ—μ„œ μžμ†Œμ„œμ„œλ²„λ„ κ°œλ°œμ„ ν–ˆμ§€λ§Œ, μΈμ¦μ„œλ²„λ₯Ό κ°œλ°œν•˜λ©° 정말 λ§Žμ€ 것을 배울 수 μžˆμ—ˆλ‹€. 특히 MSAκ΅¬μ‘°μ—μ„œ JWTλ₯Ό ν†΅ν•œ 인증이 μ–΄λ– ν•œ 의미λ₯Ό κ°–λŠ”μ§€ μ•Œκ²Œλ˜μ—ˆκ³ , access tokenκ³Ό refresh token을 μ–΄λ–»κ²Œ 관리 ν•  것인가에 λŒ€ν•΄ κ³ λ―Όν•  수 μžˆλŠ” μ‹œκ°„μ΄μ—ˆλ‹€.

 λ˜ν•œ 멀버십 μ„œλΉ„μŠ€μ— λŒ€ν•΄ λ§Žμ€ 생각을 ν•˜κ²Œλ˜μ—ˆλ‹€. μΊ ν”„μž₯λ‹˜μ˜ κ°•μ˜μ™€ μ½”λ“œλ¦¬λ·°λ₯Ό 톡해 μ‚¬μš©μž 정보λ₯Ό μ–΄λ–€ μ‹μœΌλ‘œ λ‹€λ£¨μ–΄μ•Όν•˜λŠ”μ§€ 배울 수 μžˆμ—ˆκ³ , μ‚¬μš©μž 둜그λ₯Ό λ‚¨κ²¨μ•Όλ˜λŠ” 이유 λ“± 생각지 λͺ»ν–ˆλ˜ 뢀뢄을 μ§‘μ–΄μ£Όμ…”μ„œ 큰 도움이 λ˜μ—ˆλ‹€. μ•„μ‰¬μš΄ 점은 처음 ν”„λ‘œμ νŠΈλ₯Ό 섀계 ν•  λ•Œ, κΈ°μ—…νšŒμ›μ— λŒ€ν•œ λ‚΄μš©μ€ λ°°μ œν–ˆμ—ˆλŠ”λ°, μ§€λ‚˜κ³ λ‚˜λ‹ˆ 이 뢀뢄이 κ°€μž₯ 큰 μ•„μ‰¬μ›€μœΌλ‘œ λ‚¨μ•˜λ‹€. μΌλ°˜νšŒμ›κ³Ό κΈ°μ—…νšŒμ›μ„ λΆ„λ¦¬ν•˜κ³  κ΄€λ¦¬μžλ₯Ό 두어 멀버십을 λΆ„λ¦¬ν•΄λ΄€μœΌλ©΄ 큰 도움이 λ˜μ—ˆμ„ 것 κ°™λ‹€.

 

μ„œλ²„ λΆ€ν•˜ ν…ŒμŠ€νŠΈ

  κ°œλ°œμ„ 마치고 각 μ„œλ²„μ˜ λΆ€ν•˜ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν–ˆλ‹€. 이전 ν”„λ‘œμ νŠΈλ“€μ—μ„œ λΆ€ν•˜ν…ŒμŠ€νŠΈλ₯Ό 해본적이 μ—†μ—ˆκΈ° λ•Œλ¬Έμ—, κ°œλ°œμ„ 마친 후에도 이게 μ‹€μ„œλΉ„μŠ€μ—μ„œ μ œλŒ€λ‘œ λŒμ•„κ°ˆκΉŒ μ˜λ¬Έμ΄μ—ˆλ‹€. 이번 ν”„λ‘œμ νŠΈμ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό 톡해 κ°€μƒμ˜ λ‹€μˆ˜ μ‚¬μš©μžκ°€ λ™μ‹œμ— μš”μ²­μ„ λ³΄λƒˆμ„ λ•Œ λ°œμƒν•  수 μžˆλŠ” 문제λ₯Ό λ³Ό 수 μžˆμ—ˆλ‹€. κ°€μž₯ 크게 λ¬Έμ œκ°€ 됐던 점은 RDS의 μ΅œλŒ€ 컨λ„₯μ…˜ν’€ μ œν•œλ•Œλ¬Έμ— 데이터 νŒŒμ΄ν”„λΌμΈμ΄ 계속 κΉ¨μ§€λŠ” μ μ΄μ—ˆκ³ , 이λ₯Ό ν•΄κ²°ν•˜κΈ°μœ„ν•΄ 각 μ„œλ²„μ˜ 컀λ„₯μ…˜μ„ μ œν•œν–ˆλ‹€.
사싀 μ„±λŠ₯κ°œμ„ μ„ μœ„ν•΄ 비동기 처리λ₯Ό ν•΄μ£Όλ €ν–ˆλŠ”λ° μƒκ°μ²˜λŸΌ μ‰½μ§€μ•Šμ•˜λ‹€. 보톡 디비에 λ‹€λ…€μ˜€λŠ” λ‘œμ§μ„ λΉ„λ™κΈ°λ‘œ μ²˜λ¦¬ν•˜λ € ν–ˆλŠ”λ°, 컀λ„₯μ…˜ μ œν•œλ•Œλ¬Έμ— 계속 νƒ€μž„μ•„μ›ƒμ΄ λ°œμƒν–ˆλ‹€. λ§ˆμ§€λ§‰κΉŒμ§€ 이 λ¬Έμ œλŠ” ν•΄κ²°ν•˜μ§€ λͺ»ν–ˆκ³  μ•žμœΌλ‘œμ˜ 과제둜 λ‚¨κ²Œλ˜μ—ˆλ‹€.

 

λŠλ‚Œμ 

 μ„œλ²„κ°œλ°œμΊ ν”„ 이후 κ°€μž₯ 크게 λ³€ν•œ 점은 곡뢀λ₯Ό ν•˜λŠ”λ° μžˆμ–΄μ„œ 동기가 μƒκ²Όλ‹€λŠ” 점이닀. μ§€λ‚œ 1λ…„ κ°„ κ°œλ°œμžκ°€ 되기 μœ„ν•΄ κ³΅λΆ€ν•˜λ©΄μ„œ μš΄μ˜μ²΄μ œλ‚˜ λ„€νŠΈμ›Œν¬μ™€ 같은 컴퓨터 곡학 κΈ°μ΄ˆμ§€μ‹μ˜ ν•„μš”μ„±μ΄ 크게 와닿지 μ•Šμ•˜μ—ˆλ‹€. ν•˜μ§€λ§Œ μ„œλ²„κ°œλ°œμΊ ν”„μ—μ„œ κ°œλ°œν•˜λ©΄μ„œ μ™œ μ‹ μž… 개발자λ₯Ό 뽑을 λ•Œ μ΄λŸ¬ν•œ κΈ°μ΄ˆμ§€μ‹μ„ μš”κ΅¬ν•˜λŠ”μ§€ λ‚˜λ¦„λŒ€λ‘œ κΉ¨λ‹¬μŒμ„ 얻은 것 κ°™λ‹€. μ΄λŸ¬ν•œ κΉ¨λ‹¬μŒ 덕뢄에 μš”μ¦˜ μš΄μ˜μ²΄μ œλ‚˜ λ„€νŠΈμ›Œν¬μ™€ λ”λΆˆμ–΄ μžλ°”λ₯Ό κ³΅λΆ€ν•˜λŠ”λ° μ „κ³Ό λ‹€λ₯Έ 재미λ₯Ό 느끼고 μžˆλ‹€.
λ§ˆμ§€λ§‰μœΌλ‘œ μ„œλ²„κ°œλ°œμΊ ν”„λΌλŠ” μ†Œμ€‘ν•œ 기회λ₯Ό μ œκ³΅ν•΄μ€€ μŠ€λ§ˆμΌκ²Œμ΄νŠΈμ™€ λͺ©ν‘œμ˜ μ€‘μš”μ„±μ„ κ°€λ₯΄μ³μ£Όμ‹  μ—¬μŠΉν™˜ μ΄μ‚¬λ‹˜, λ°”μ˜μ‹  와쀑에도 개발이 λ§‰νž λ•Œλ§ˆλ‹€ 쑰언을 아끼지 μ•ŠμœΌμ…¨λ˜ 계동원 μ°¨μž₯λ‹˜, 캠프원듀 ν•˜λ‚˜ν•˜λ‚˜ μ‹ κ²½μ“°κ³  챙겨주신 μ°°μΉ΅μš”μ • 노은지 λŒ€λ¦¬λ‹˜κ»˜ κ°μ‚¬λ“œλ¦°λ‹€λŠ” 말을 μ „ν•˜κ³ μ‹Άλ‹€.