πŸ‘¨β€πŸš€ νŒ€ν”„λ‘œμ νŠΈ 회고둝 - λ°©κ°‘κ³ 

FeelingXDΒ·2023λ…„ 7μ›” 12일
0

Anecdote

λͺ©λ‘ 보기
4/4
post-thumbnail
πŸ˜ƒ 6μ£Όκ°„μ˜ νŒ€ ν”„λ‘œμ νŠΈ 회고λ₯Ό κΈ°λ‘ν•©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈμ˜ 짧은 μ†Œκ°œμ™€ ν•¨κ»˜ ν˜‘μ—…μ„ ν•˜λ©΄μ„œ μžˆμ—ˆλ˜ 것듀에 λŒ€ν•΄ μž‘μ„±ν•©λ‹ˆλ‹€.

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

🏠 Project λ°©κ°‘κ³ 

πŸ“Œ Project μ°Έμ—¬ 인원 
πŸ‘‰πŸ» ν”„λ‘ νŠΈμ—”λ“œ 3λͺ…

πŸ‘‰πŸ» λ°±μ—”λ“œ 3λͺ…

πŸ“Œ Project λ°©κ°‘κ³  μ†Œκ°œ
πŸ‘‰πŸ» μ‚¬νšŒ μ΄ˆλ…„μƒλ“€μ˜ μ£Όκ±°λΉ„μš© 뢀담을 λœμ–΄λ‚΄κ³ μž μ‚¬μš©μžκ°€ μ›ν•˜λŠ” κΈˆμ•‘λŒ€μ˜ λ°©κ³Ό λ£Έλ©”μ΄νŠΈλ₯Ό λ§€μΉ­ν•΄ μ£ΌλŠ” ν”Œλž«νΌ μ„œλΉ„μŠ€ Project 

πŸ’β€β™€οΈ λŒ€ν‘œμ μΈ κΈ°λŠ₯

1. μ„±ν–₯이 λ§žλŠ” λ£Έλ©”μ΄νŠΈ μžλ™ μΆ”μ²œ κΈ°λŠ₯ 제곡
2. μ‚¬μš©μžκ°„ λ£Έλ©”μ΄νŠΈ 맀칭이 μ™„λ£Œλ˜λ©΄ μœ μ € μ±„νŒ… κΈ°λŠ₯ 제곡
3. μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μ§€μ—­, κΈ°κ°„, κΈˆμ•‘, 성별에 λ§žλŠ” κ²Œμ‹œκΈ€ ν•„ν„°λ§ν•˜μ—¬ 검색 κ°€λŠ₯

πŸ˜€ 짧은 ν”„λ‘œμ νŠΈ κ΅¬ν˜„ κΈ°λŠ₯λ“€

πŸ‘¨β€πŸ‘¨β€πŸ‘§β€πŸ‘§ ν˜‘μ—…μ„ ν•˜λ©΄μ„œ λŠλ‚€κ²ƒλ“€.


🀐 νŒ€ ν”„λ‘œμ νŠΈ λΏλ§Œμ•„λ‹ˆλΌ μ‘°λ³„κ³Όμ œλ“± 에 λŒ€ν•΄μ„œ λ‚˜λŠ” 쒋은 κ²½ν—˜μ„ 가진적이 μ—†λ‹€. (λ‚˜μ€‘μ— λ‹€λ₯ΈκΈ€μ„ ν†΅ν•΄μ„œ 이야기λ₯Ό μ μ„κΉŒ 생각쀑이닀.)
κ·Έλž˜μ„œ ν”„λ‘œμ νŠΈ μ‹œμž‘λ‹¨κ³„μ—μ„œ κΈ°λŒ€λ³΄λ‹€λŠ” 걱정이 λ‚΄ 생각속 의 파이λ₯Ό 크게 μ°¨μ§€ ν–ˆλ‹€.

πŸ˜‰ λ°œμ–Έμ΄λ‚˜ 행동은 νŒ€μ›μ—κ²Œ λ§Žμ€ 영ν–₯을 μ€€λ‹€.


( ν”„λ‘œμ νŠΈκ°€ λλ‚ λ•Œ 쯀이야 λ°œκ²¬ν•œ λ°•μ œλœ 과거의 λ‚˜ 😣)

λ‚΄κ°€ ν•˜λŠ” 행동,λ°œμ–Έλ“€μ΄ νŒ€μ—κ²Œ 생각보닀 λ§Žμ€ 영ν–₯을 미쳣던 것 κ°™λ‹€..

πŸ”¨ 해보기 μ „κΉŒμ§€ λͺ¨λ“ κ²ƒμ„ μ•Œμˆ˜λŠ” μ—†λ‹€.

πŸ€” μ²˜μŒλ„μž…ν•΄λ³΄λŠ” κΈ°λŠ₯κ³Ό κΈ°μˆ λ“€ κ·Έκ±Έ λ„μž…ν•˜κΈ°κΉŒμ§€ λ§μ„€μž„μ΄ λ§Žμ•˜λ˜κ²ƒκ°™λ‹€.

Socket을 μ΄μš©ν•œ μ±„νŒ…κ΅¬ν˜„, AWS 배포, CI-CD λ“± 처음 ν•΄λ³΄λŠ”κ²ƒλ“€μ„ λ„μž…ν•˜κΈ°μ „ 되렀 겁을먹고 μž˜ν• μˆ˜μžˆμ„κΉŒμ— λŒ€ν•΄ μƒκ°ν•˜λ©΄μ„œ λ§μ„€μž„μ΄ λ§Žμ•˜λ˜ 것 κ°™λ‹€. κ·ΈλŸ΄λ•Œ λ§ˆλ‹€ λ‚˜λŠ” " κ·Έλž˜μš” 해보죠 " ν•˜λ©° λ‹΄λ‹΄ν•˜κ²Œ λ§ν–ˆλ˜κ²ƒκ°™λ‹€. κ±±μ •λ§Œ ν•˜κΈ°λ³΄λ‹€λŠ” 일단 λ¬Έμ œμ™€ 직접 λΆ€λ”ͺνžˆλŠ”κ±Έλ‘œ!

πŸ™„ λˆ„κ΅¬μ˜ 일도 μ•„λ‹ˆμ§€λ§Œ '우리 일' 이 μžˆλ‹€.

🐬 ν˜‘μ—…μ„ ν•˜λ‹€λ³΄λ©΄ ~의 λ‹΄λ‹ΉμœΌλ‘œ ꡬ뢄 μ§€μ„μˆ˜ μ—†λŠ”λΆ€λΆ„μ΄ 생긴닀. κ°€λ Ή A와B μ—°λ™μ—μ„œ μƒκΈ°λŠ” μ΄μŠˆλ“€μ— λŒ€ν•΄μ„œλŠ” A 와 B 같이 κ³ λ―Όν•΄μ•Όν•  문제라고 μƒκ°ν•œλ‹€.

FE νŒŒνŠΈμ™€ BE 파트 μ—°λ™μ‹œ FE νŒŒνŠΈμ—μ„œ "400μ—λŸ¬κ°€ λ‚˜μ™€μš”.", "500μ—λŸ¬κ°€ λ‚˜μ™€μš”."둜 μ†Œν†΅ν•˜μ˜€λŠ”λ° κΈ°μ‘΄ BE 파트 μ½”λ“œμ—μ„œ μš”μ²­μ΄ μ˜¬λ°”λ₯Έκ²½μš°μ—λ§Œ 정상적인 responseλ₯Ό ν•΄μ£Όμ—ˆκΈ° λ•Œλ¬Έμ— 였λ₯˜λ₯Ό λ°”λ‘œ νŒŒμ•…ν•˜κΈ° νž˜λ“€μ—ˆλ‹€. κ·Έλž˜μ„œ μ›ν™œν•œ μ†Œν†΅μ„ μœ„ν•΄ μΆ”κ°€μ μœΌλ‘œ ApiResponse 곡톡 μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ—¬ λ°˜ν™˜ν•˜μ˜€λ‹€.

{	
  	"status": 400, // HttpStatus 응닡값
  	"code": USER_NOT_FOUND, //μ‘λ‹΅μ½”λ“œμ—λŒ€ν•œκ°’ μ˜ˆμ œλŠ” μ‚¬μš©μžλ₯Ό μ°Ύμ„μˆ˜μ—†μ„κ²½μš°
  	"msg":	"μœ μ €λ₯Ό μ°Ύμ„μˆ˜μ—†μŠ΅λ‹ˆλ‹€.", // μ—λŸ¬μ½”λ“œμΌκ²½μš° μ—λŸ¬μ— λŒ€ν•œ λ©”μ‹œμ§€,성곡일 경우 μ„±κ³΅μ—λŒ€ν•œ λ©”μ„Έμ§€
 	"data":[]  //데이터가 μžˆμ„κ²½μš° 내뢀에 λ‹΄μ•„μ„œ λ°˜ν™˜
}

μœ„μ™€κ°™μ€ν˜•νƒœλ‘œ RestController ν˜•νƒœλ₯Ό λ³€κ²½ν•΄μ£Όλ‹ˆ FE 뢄듀도 λ°±μ—”λ“œμ—μ„œ μ–΄λ–€λ¬Έμ œκ°€ λ°œμƒν•œμ§€ μ§κ΄€μ μœΌλ‘œ νŒŒμ•…ν• μˆ˜ μžˆμ—ˆκ³  BEνŒŒνŠΈμ—μ„œλ„ μ˜ˆμ™Έμ½”λ“œλ₯Ό μΆ”μ ν•˜κΈ°μ— νŽΈλ¦¬ν•˜μ˜€λ‹€.

πŸ™ƒ κ·ΈλŸΌμ—λ„ λͺ¨λ“ μΌμ΄ 항상 κ³„νšλŒ€λ‘œ λ˜λŠ”κ²ƒμ€ μ•„λ‹ˆλ‹€.

πŸ˜₯ 4주차에 FEνŒ€μ›μ€‘ ν•œλΆ„μ΄ κ°œμΈμ‚¬μ •μœΌλ‘œ ν•˜μ°¨ν•˜κ²Œ λ˜μ—ˆλ‹€.

FE파트 νŒ€μ˜ 쀑심점이 λ˜μ–΄ 주신뢄이 κ°‘μž‘μŠ€λŸ½κ²Œ λ‚˜κ°€κ²Œλ˜μ–΄ FEνŒ€μ›λ“€μ΄ μ •μ‹ μ μœΌλ‘œ 많이 νž˜λ“€μ–΄ ν–ˆλ‹€. ν•˜μ§€λ§Œ λ– λ‚œ μ‚¬λžŒ μƒκ°μœΌλ‘œ μš°λ¦¬κ°€ ν•΄μ•Όν•  일을 λ§κ°•ν•˜λ©΄ μ•ˆλ˜μ—ˆκΈ°μ— FE νŒ€μ›λ“€μ—κ²Œ λ‚¨μ•„μžˆλŠ” 일정쀑 μ‹œμž‘ν•˜μ§€μ•Šμ€ κΈ°λŠ₯은 λ“œλžν•˜κ³  μ§€κΈˆ 진행쀑인 μž‘μ—…μ— λŒ€ν•΄μ„œ 완성도λ₯Ό μ˜¬λ¦¬λŠ”κ²ƒμœΌλ‘œ λ°©ν–₯을 λ‹€μ‹œ μž‘μ•˜λ‹€. BE νŒ€μ—μ„œλ„ μ˜ˆμƒμΉ˜ λͺ»ν•œμΌμ— λ†€λžμ§€λ§Œ FEνŒ€μ€ λ”μš± 신경쓰이고 νž˜λ“€μ—ˆμ„κ²ƒμ΄λΌλŠ” 생각에 FE 업무 λ˜ν•œ μ‹ κ²½ μ»λ˜κ²ƒ κ°™λ‹€. (일정 체크 , μ§„ν–‰ 상황 확인등)


πŸ˜… ν”„λ‘œμ νŠΈκ°€ λλ‚˜κ³ μ„œμ•Ό λ³΄μ΄λŠ”κ²ƒλ“€.

πŸ‘€ ν”„λ‘œμ νŠΈ 쀑 μ—λŠ” λͺ°λžλ˜κ²ƒ λ“€..

μ•„μ‰¬μš΄μ λ“€

πŸ“ λΆˆνŽΈν•œ ν”„λ‘œμ νŠΈ 디렉토리ꡬ쑰

πŸ˜… service ,controller λ“± 도메인 νŒ¨ν‚€μ§€λ‘œ λ”°λ‘œ κ΅¬λΆ„ν•˜μ§€μ•Šκ³  ν•œ service,controller ν•œ νŒ¨ν‚€μ§€ μ•Šμ— μ—¬λŸ¬λ„λ©”μΈμ΄ μžˆμœΌλ‹ˆ 좔후에 μˆ˜μ • ν•˜κΈ°μœ„ν•΄ νŒ¨ν‚€μ§€ μ•ˆμ—μ„œ 도메인을 μΆ”κ°€μ μœΌλ‘œ μ°ΎλŠ” μž‘μ—…μ΄ ν•„μš”ν–ˆλ‹€.

# ν”„λ‘œμ νŠΈ 폴더ꡬ쑰
β”œβ”€common
β”‚  └─exception
β”œβ”€config
β”‚  β”œβ”€chat
β”‚  β”œβ”€redis
β”‚  └─security
β”œβ”€controller
β”œβ”€dto
β”‚  β”œβ”€apply
β”‚  ..
β”œβ”€entity
β”‚  └─chat
β”œβ”€repository
β”‚  β”œβ”€impl
β”‚  └─mongo
β”œβ”€service
β”‚  └─impl
β”œβ”€type
└─util

νŒ¨ν‚€μ§€ λͺ…이 μ€‘λ³΅λ˜λŠ”κ²ƒμ΄ μ‹«μ–΄μ„œ ν•œ νŒ¨ν‚€μ§€μ— λͺ¨λ“  도메인을 넣은 κ²°κ³Ό class λͺ…μœΌλ‘œ κ²€μƒ‰ν•˜κ±°λ‚˜ Aκ°œλ°œμ— ν•„μš”ν•œ μ½”λ“œλΏλ§Œμ•„λ‹ˆλΌ C,Dμ½”λ“œλ„ ν•œνŒ¨ν‚€μ§€μ— μžˆμœΌλ‹ˆ 보기가 정말 λΆˆνŽΈν–ˆλ‹€. πŸ˜’ κ°œμ„ μ„ ν•œλ‹€λ©΄ (λ„λ©”μΈνŒ¨ν‚€μ§€) - service, λ“±μœΌλ‘œ μ•žμ— λ„λ©”μΈμ΄λ¦„μœΌλ‘œλœ νŒ¨ν‚€μ§€λ‘œ κ΅¬λΆ„ν•˜μ—¬ μƒˆλ‘œμš΄ νŒ¨ν‚€μ§€μΈ΅μ„ λ§Œλ“€μ–΄μ„œ κ΄€λ¦¬ν•˜λŠ”κ²ƒμ΄ 더 μ’‹μ•˜μ„ν…λ° .. λΌλŠ” 아쉬움이 λ‚¨λŠ”λ‹€.

😣 잘λͺ»λ§Œλ“  Rest api

νŒ€ν”„λ‘œμ νŠΈμ€‘ user의 μƒνƒœ, 이미지,정보등을 μ—…λ°μ΄νŠΈν•˜λŠ”λ° user 파트 λ‹΄λ‹Ήλ”°λ‘œ user 의 profile 을 λ‚΄κ°€ λ‹΄λ‹Ήν•˜κ²Œλ˜μ—ˆλ‹€. κ·ΈλŸ¬λ©΄μ„œ 컨트둀러λ₯Ό MyController 라고 μž‘μ„±ν–ˆλ‹€.

@RequestMapping("api/my")
public class MyController{
	//...기타등등
}

이 컨트둀러λ₯Ό ν†΅ν•΄μ„œ profile을 μ—…λ°μ΄νŠΈν•˜λŠ”λ° "api/my/articles" , .. λ“± my(λ‚˜μ˜) λ“± λͺ¨ν˜Έν•œ λ‹¨μ–΄λ‘œ μž‘μ„±λœ api λ₯Ό λ§Œλ“€μ—ˆλ‹€. κΈ°λŠ₯적으둜 μ΄μƒν•˜μ§€ μ•Šμ•˜μ§€λ§Œ λ©˜ν† λ‹˜μœΌλ‘œλΆ€ν„° μ „μ μœΌλ‘œ ν”„λ‘ νŠΈμ˜ 화면을 보며 μ„€κ³„ν•œ api ν”Όλ“œλ°± λ°›μ•˜λ‹€. 이 경우 λ‚΄κ°€μ•„λ‹Œ λ‹€λ₯Έμ‚¬λžŒμ΄ μœ μ§€λ³΄μˆ˜λ₯Όν• λ•Œ κ³€λž€ν•œμ μ΄ μžˆμ„κ²ƒκ°™λ‹€.. (μ „ν˜€ restful ν•˜μ§€μ•Šλ‹€..)

🐒 깊이있게 닀루지 λͺ»ν•œ κΈ°μˆ λ“€

νŒ€ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ©΄μ„œ TDD λ₯Ό 처음으둜 λ„μž…ν•΄λ³΄μ•˜λ‹€. κ·Έ κ³Όμ •μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό ν• λ•Œ @SpringbootTest μ–΄λ…Έν…Œμ΄μ…˜κ³Ό λ¬Έμ œκ°€ λ§Žμ•˜λ‹€. ν…ŒμŠ€νŠΈμ‹œ SpringContext (μ™ΈλΆ€ μ£Όμž…λ³€μˆ˜ ,μ„€μ •λ“± ) 의 톡합적인 ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•˜κΈ°κ°€ μ–΄λ €μ› λ‹€.
컨트둀러, μ„œλΉ„μŠ€ λ“± 슬라이슀 ν…ŒμŠ€νŠΈλ₯Ό μž‘μ€λ‹¨μœ„λ‘œ ν…ŒμŠ€νŠΈλ₯Ό ν•˜λ©° μ§„ν–‰ν–ˆμ§€λ§Œ. 전체적인
μ—¬λŸ¬ 볡합적인 ν…ŒμŠ€νŠΈλ₯Ό 도전해보지 λͺ»ν•œκ²ƒμ΄ 아쉬웠닀. (λ‚˜λŠ” 정말 TDDλ₯Ό μ‹€μ²œν•œκ²ƒμΌκΉŒπŸ€”)

profile
tistory둜 μ΄μ‚¬κ°‘λ‹ˆλ‹€. :) https://feelingxd.tistory.com/

0개의 λŒ“κΈ€