Skip to content
@toge-dog

toge-dog

ν•¨κ»˜κ±·κ°œ

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

  • 1500만 λ°˜λ €μΈλ“€μ„ μœ„ν•œ ν”Œλž«νΌμž…λ‹ˆλ‹€.
  • ν˜„μž¬ μœ„μΉ˜λ₯Ό 기반으둜 λ§€μΉ­ λ©”μ΄νŠΈλ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 지도에 마컀λ₯Ό 찍고 친ꡬ 좔가와 λ§€μΉ­ μ‹œμŠ€ν…œμ΄ 핡심 κΈ°λŠ₯μž…λ‹ˆλ‹€.
  • 개발 κΈ°κ°„ : 2024.08.08 ~ 08.29

ꡬ성원

ν™©μ§„ν˜ μ‹ λ―Όμ€€ 남채연 μ–‘μˆ˜λͺ… 이광희
image image image image image
@JINHYEOKKK @Tizesin @chaeneeee @ Lifesheep1 @gwanghui97

ν”„λ‘œμ νŠΈ 아킀텍쳐

Project togedog_wireframe


  • CI/CD νŒŒμ΄ν”„ 라인을 κ΅¬μΆ•ν•˜μ—¬ IntelliJμ—μ„œ main λΈŒλžœμΉ˜μ— pushλ₯Ό ν•˜λ©΄ μžλ™μœΌλ‘œ ν†΅ν•©λ˜κ³  λ°°ν¬λ˜λ„λ‘ μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€. AWS EC2에 Docker와 Docker Composeλ₯Ό ν™œμš©ν•˜μ—¬ 배포λ₯Ό ν•˜μ˜€κ³ , S3에 React μ½”λ“œλ₯Ό λ°°ν¬ν•˜κ³  사진 μ—…λ‘œλ“œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

κ°œλ°œν™˜κ²½

  • κ°œλ°œλ„κ΅¬: Intellij IDEA
  • μ–Έμ–΄: Java 11 Open JDK
  • λΉŒλ“œλ„κ΅¬: Gradle
  • 개발
    • Spring Framework: 5.3
    • Spring Boot: 2.7.0
    • Spring Data
      • Spring Data JPA
      • Spring Data Redis
    • Spring Security
    • JPA
  • λ°μ΄ν„°λ² μ΄μŠ€
    • MySQL: 8.0.25
    • Redis
  • ERD
    • ERDCloud
  • ν”„λ‘ νŠΈ 개발 ν™˜κ²½ 및 μ–Έμ–΄
    • μ–Έμ–΄:
      • HTML
      • CSS
      • JavaScript
    • 라이브러리 및 ν”„λ ˆμž„μ›Œν¬:
      • React
      • React Query
      • React Bootstrap 5
      • Axios
  • ν˜•μƒκ΄€λ¦¬ 및 μ΄μŠˆκ΄€λ¦¬
    • GitHub
  • 기타
    • Slack

μ‚¬μš©λ„κ΅¬




etc


ERD

image

Github Kanban

  • Github의 Project κΈ°λŠ₯ 쀑 Kanban λ³΄λ“œλ₯Ό ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.
  • Todo, InProgress, Done 의 μ—΄λ‘œ μž‘μ—…μ„ ꡬ뢄해 ν˜„μž¬ μž‘μ—… 상황을 μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆλ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

image


πŸ”μ„œλΉ„μŠ€ κ΅¬ν˜„ λ‚΄μš©

πŸ•Ήμ£Όμš” κΈ°λŠ₯

λžœλ”© νŽ˜μ΄μ§€ νšŒμ›κ°€μž…
둜그인 μ‹€νŒ¨ 및 성곡 λ§ˆμ΄νŽ˜μ΄μ§€
κ²Œμ‹œκΈ€ μž‘μ„± λŒ“κΈ€ μž‘μ„±
μžλž‘ κ²Œμ‹œνŒ 마컀 그리기
λ§€μΉ­ μš”μ²­ν•˜κΈ° λ§€μΉ­ μš”μ²­ μˆ˜λ½ν•˜κΈ°
친ꡬ μš”μ²­ν•˜κΈ° 친ꡬ μš”μ²­ μˆ˜λ½ν•˜κΈ°

ꡬ성원 별 λ‹΄λ‹Ή λ‚΄μš©

ν™©μ§„ν˜

ν”„λ‘œμ νŠΈ 섀계 및 λ¬Έμ„œν™”

  • μ‚¬μš©μž μš”κ΅¬λΆ„μ„μ„œ 섀계
    • κΈ°λŠ₯에 λ”°λ₯Έ μ‚¬μš©μžμ˜ μš”κ΅¬ 사항과 μ œν•œ 사항 λΆ„λ₯˜
    • 각 κΈ°λŠ₯에 λŒ€ν•œ μš°μ„  μˆœμœ„ μ •λ ¬
  • API λͺ…μ„Έμ„œ 섀계
    • κΈ°λŠ₯별 method, URI, Request/Response 상세 섀계
  • ERD 섀계
    • νšŒμ›, 친ꡬ, λ°˜λ €λ™λ¬Ό ν…Œμ΄λΈ” 섀계 및 관계 μ„€μ •

λ°±μ—”λ“œ κ΅¬ν˜„

νšŒμ› 관리

  • νšŒμ› CRUD 및 Validation κ΅¬ν˜„
  • JavaMailSenderλ₯Ό μ΄μš©ν•œ 이메일 인증 κ΅¬ν˜„
  • JWT와 Redisλ₯Ό ν™œμš©ν•œ 인증 μ‹œμŠ€ν…œ κ΅¬ν˜„
    • 둜그인 μ‹œ JWT 토큰 λ°œκΈ‰ 및 Redis μ €μž₯
    • λ‘œκ·Έμ•„μ›ƒ μ‹œ Redisμ—μ„œ 토큰 μ‚­μ œ

친ꡬ 관리

  • 친ꡬ μš”μ²­, 수락, 거절 λ“± Status에 λ”°λ₯Έ CRUD κ΅¬ν˜„

λ°˜λ €λ™λ¬Ό 관리

  • λ°˜λ €λ™λ¬Ό 정보 CRUD κ΅¬ν˜„

ν”„λ‘ νŠΈμ—”λ“œ κ΅¬ν˜„

  • 친ꡬ 관리 νŽ˜μ΄μ§€ κ΅¬ν˜„
  • κ²Œμ‹œνŒ νŽ˜μ΄μ§€ CSS 적용

μ‚¬μš© 기술

  • Backend: Spring Boot, JPA, Redis
  • Frontend: React
  • Database: MySQL
  • 기타: JWT, JavaMailSender

μ£Όμš” κΈ°λŠ₯

  • νšŒμ› 인증 및 관리
  • 친ꡬ 관계 관리
  • λ°˜λ €λ™λ¬Ό 정보 관리
  • 이메일 인증
  • 토큰 기반 인증 μ‹œμŠ€ν…œ


μ‹ λ―Όμ€€

ν”„λ‘œμ νŠΈ 섀계

  • μ‚¬μš©μž μš”κ΅¬λΆ„μ„μ„œ 섀계
  • κΈ°λŠ₯에 λ”°λ₯Έ μ‚¬μš©μžμ˜ μš”κ΅¬ 사항과 μ œν•œ 사항을 λΆ„λ₯˜
  • 각 κΈ°λŠ₯에 λŒ€ν•œ μš°μ„  μˆœμœ„ μ •λ ¬
  • 각 μš”κ΅¬μ— λ”°λ₯Έ ν…Œμ΄λΈ” λ‚΄ Status 관리

API λͺ…μ„Έμ„œ 섀계

  • κΈ°λŠ₯ 별 method 및 uri 섀계
  • κΈ°λŠ₯ 별 Request Header & Body 섀계
  • κΈ°λŠ₯ 별 Response Status Code & Header & Body 섀계

ERD 섀계

  • λΉ„μ •κ·œν™”λ₯Ό ν†΅ν•œ 데이터 검색 속도 ν–₯상
  • μ‹±κΈ€ν…Œμ΄λΈ” μ „λž΅μ„ μ΄μš©ν•˜μ—¬ κ²Œμ‹œνŒ ERD 섀계
  • ν…Œμ΄λΈ” 연관관계 섀계

ν™˜κ²½κ΅¬μ„±

  • exception

    • μ‚¬μš©μž μš”κ΅¬ μ˜ˆμ™Έμ²˜λ¦¬ 및 λ°˜ν™˜ μ½”λ“œ μž‘μ„± ν™˜κ²½ ꡬ성
  • PageNation ν™˜κ²½ ꡬ성

    • μ œλ„€λ¦­μ„ ν†΅ν•œ PageNationDto 섀계
  • Auditable

    • Entity에 μ μš©ν•  곡톡사항 좔상화 SuperClass 섀계

Security

  • JWT 토큰

    • 둜그인 μ‹œ μ‚¬μš©μž 정보 Base64SecretKey둜 Encoding
    • api μš”μ²­ Headerμ•ˆμ˜ AccessTokenκ°’ Decoding을 ν†΅ν•œ μ‚¬μš©μž 인증절차 κ΅¬ν˜„
  • μ‚¬μš©μž κΆŒν•œ

    • μ‚¬μš©μžμ˜ 계정에 따라 Admin / User κΆŒν•œ λΆ€μ—¬

EventListener

  • CustomEvent

    • μ»€μŠ€ν…€ 이벀트λ₯Ό μ μš©ν•˜κΈ° μœ„ν•œ μ „μš© 트리거 섀계
  • EventListenerService

    • 이벀트 λ¦¬μŠ€λ„ˆλ₯Ό μ΄μš©ν•˜μ—¬ 각 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§κ°„μ˜ 결합도 ν•˜ν–₯
    • Test Code 섀계에 μœ λ¦¬ν•œ ν™˜κ²½ ꡬ좕

Matching

  • λ§€μΉ­

    • μ‚¬μš©μžμ˜ λ§€μΉ­ 정보 및 Status CRUD 섀계
  • λ§€μΉ­ λŒ€κΈ°μ—΄

    • μ‚¬μš©μžμ˜ λ§€μΉ­ 수락 및 κ±°μ ˆμ— λ”°λ₯Έ Status CRUD 섀계
    • Hibernate μ΅œμ ν™”λ₯Ό μœ„ν•œ JPQL 적용
    • 데이터 정합성을 μœ„ν•œ ReentrantLock κΈ°λŠ₯ κ΅¬ν˜„

Scheduler

  • μŠ€μΌ€μ€„λŸ¬
    • 데이터 정합성을 μœ„ν•œ 주기적으둜 λΉ„μ •κ·œν™” λ°μ΄ν„°λ² μ΄μŠ€ μ •ν•©μ„± 검증 μ§„ν–‰
    • 비동기 μŠ€μΌ€μ€„λŸ¬ ꡬ좕
    • 비동기 λ©€ν‹°μ“°λ ˆλ“œ Config 섀계λ₯Ό ν†΅ν•œ κ³Όλ„ν•œ λ©”λͺ¨λ¦¬ μ‚¬μš© λ°©μ§€

Landing Page

  • λ””μžμΈ 및 μ• λ‹ˆλ©”μ΄μ…˜
    • λžœλ”©νŽ˜μ΄μ§€ λ””μžμΈ 섀계 및 적용
    • Full-Page-Scroll 적용
    • λŒ€ν‘œ κ²Œμ‹œκΈ€ Slide Card Board λ””μžμΈ 섀계 및 μ• λ‹ˆλ©”μ΄μ…˜ 적용

λ§€μΉ­ modal

  • λ§€μΉ­
    • axiosλ₯Ό ν†΅ν•œ λ§€μΉ­ 정보 CRUD μš”μ²­ κ΅¬ν˜„
    • boot-strap을 μ΄μš©ν•œ modal λ””μžμΈ 섀계
    • λΆ€λͺ¨/μžμ‹ μ»΄ν¬λ„ŒνŠΈκ°„ λ™μ‹œμ  CSS 변경을 μœ„ν•œ props 섀계
    • μ μ‘ν˜• λ ˆμ΄μ•„μ›ƒ 적용


남채연



μ–‘μˆ˜λͺ…

ν”„λ‘œμ νŠΈ 섀계 및 λ¬Έμ„œν™”

  • ο»Ώμ‚¬μš©μž μš”κ΅¬μ‚¬ν•­ 뢄석 및 κΈ°λŠ₯ μš°μ„ μˆœμœ„ μ„€μ •:
    • ο»Ώμ‚¬μš©μž μš”κ΅¬μ‚¬ν•­ λΆ„μ„μ„œλ₯Ό μž‘μ„±ν•˜μ—¬ κΈ°λŠ₯별 μš”κ΅¬μ‚¬ν•­κ³Ό μ œν•œμ‚¬ν•­μ„ λͺ…ν™•νžˆ ꡬ뢄
    • 각 κΈ°λŠ₯의 μ€‘μš”λ„μ™€ κ΅¬ν˜„ μš°μ„ μˆœμœ„λ₯Ό μ²΄κ³„μ μœΌλ‘œ μ •λ ¬ν•˜μ—¬ ν”„λ‘œμ νŠΈ 일정 μ΅œμ ν™”
  • API λͺ…μ„Έμ„œ 섀계
    • 각 κΈ°λŠ₯에 λ§žλŠ” λ©”μ„œλ“œ(Method) 및 URIλ₯Ό μ„€κ³„ν•˜μ—¬ λͺ…ν™•ν•œ API ꡬ쑰 μ •μ˜
    • ο»ΏRequest Header 및 Body, Response Status Code, Header, Body에 λŒ€ν•œ μ„ΈλΆ€ 섀계λ₯Ό 톡해 톡신 μ•ˆμ •μ„± 및 λ°μ΄ν„°μ „μ†‘μ˜ 일관성 확보
  • ERD 섀계
    • ο»Ώμ‹±κΈ€ ν…Œμ΄λΈ” μ „λž΅(Single Table Strategy)을 μ΄μš©ν•˜μ—¬ κ²Œμ‹œνŒ ꡬ쑰의 ERD(Entity-Relationship Diagram)λ₯Ό 섀계

ο»Ώκ²Œμ‹œνŒ κΈ°λŠ₯ κ΅¬ν˜„:

  • ο»Ώμ‹±κΈ€ ν…Œμ΄λΈ” μ „λž΅μ„ ν™œμš©ν•œ κ²Œμ‹œνŒ μΉ΄ν…Œκ³ λ¦¬ 섀계 및 κ΅¬ν˜„
  • ο»Ώκ²Œμ‹œκΈ€ μž‘μ„±, μˆ˜μ •, μ‚­μ œ κΈ°λŠ₯을 섀계 및 κ΅¬ν˜„
  • ο»ΏλŒ“κΈ€ 및 λŒ€λŒ“κΈ€ κΈ°λŠ₯을 μ„€κ³„ν•˜κ³ , 계측 ꡬ쑰λ₯Ό 톡해 κ΅¬ν˜„
  • ο»Ώμ’‹μ•„μš” κΈ°λŠ₯ 섀계 및 ꡬ좕
  • 쑰회수 κΈ°λŠ₯을 섀계 및 ꡬ좕


이광희

인프라

  • CI/CD 및 배포
    • 기본적인 CI/CD ν™˜κ²½ ꡬ좕

      • Github Actionsλ₯Ό ν†΅ν•œ CI/CD ν™˜κ²½ ꡬ좕
    • λΉŒλ“œ μ‹œ 민감 정보 처리 κ³Όμ •

      • ν”„λ‘œμ νŠΈ λ‚΄μ˜ μΈμ¦μ„œ λ˜λŠ” ν‚€νŒŒμΌ 등이 곡개 λ ˆν¬μ§€ν† λ¦¬μ— μ˜¬λΌκ°€μ§€ μ•Šλ„λ‘ μ œμ™Έν•˜κ³ , ν”„λ‘œμ νŠΈ λΉŒλ“œ 과정에 ν•„μš”ν•œ μΈμ¦μ„œ λ˜λŠ” ν‚€νŒŒμΌ 등이 CI/CD κ³Όμ •μƒμ—μ„œ λ™μ μœΌλ‘œ μƒμ„±λ˜μ–΄ λΉŒλ“œμ‹œ ν¬ν•¨λ˜λ„λ‘ μ„€μ •
    • Docker Composeλ₯Ό ν†΅ν•œ 닀쀑 μ»¨ν…Œμ΄λ„ˆ 관리

      • Spring, Mysql, Redisλ₯Ό μ»¨ν…Œμ΄λ„ˆ 기반으둜 관리

배포

  • AWS
    • AWS EC2

      • AWS EC2에 Dockerλ₯Ό ν™œμš©ν•œ Spring, Mysql, Redis μ„œλ²„ 배포
    • AWS S3

      • AWS S3에 ν”„λ‘ νŠΈμ—”λ“œ μ„œλ²„ 배포
    • 도메인

      • κ΅¬μž…ν•œ 도메인 μ£Όμ†Œμ— μ—°κ²°ν•˜μ—¬ 배포

파일 μ—…λ‘œλ“œ

  • νšŒμ› κ°€μž…, κ²Œμ‹œκΈ€ 등둝 μ‹œμ— AWS S3에 이미지 등둝 κΈ°λŠ₯ κ΅¬ν˜„

ν”„λ‘ νŠΈμ—”λ“œ

  • Page κ΅¬ν˜„

    • λžœλ”© νŽ˜μ΄μ§€ κ΅¬ν˜„
    • 둜그인, νšŒμ›κ°€μž… νŽ˜μ΄μ§€ κ΅¬ν˜„
    • 상속 관계 ν…Œμ΄λΈ”μ— 맞게 κ²Œμ‹œνŒ νŽ˜μ΄μ§€ κ΅¬ν˜„
  • React Query

    • 캐싱을 효율적으둜 관리
    • λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 였래된 데이터λ₯Ό μ—…λ°μ΄νŠΈ ν•˜λ„λ‘ μ„€μ •
    • νŽ˜μ΄μ§•μ²˜λ¦¬, μ§€μ—° λ‘œλ”© 데이터 μ„±λŠ₯ μ΅œμ ν™”
  • Custom Hook

    • Custom Hook을 κ°œλ°œν•˜μ—¬ μ „μ—­ μƒνƒœ 관리
    • μƒˆλ‘œκ³ μΉ¨ μ‹œμ— μƒνƒœκ°’ μœ μ§€
  • 토큰 기반 둜그인 κ΅¬ν˜„

    • νšŒμ› κ°€μž…μ„ ν•œ μ‚¬μš©μžλ§Œ 둜그인이 λ˜λŠ” κΈ°λŠ₯ κ΅¬ν˜„
    • λ‘œκ·ΈμΈμ„ ν•˜λ©΄ λžœλ”© νŽ˜μ΄μ§€λ‘œ redirect 되고 νšŒμ› κ°€μž… μ‹œ μž…λ ₯ν•œ 별λͺ… λ…ΈμΆœ

ν”„λ‘œμ νŠΈ 초기 μ„€μ •

  • 버전에 맞게 ν”„λ‘œμ νŠΈ 초기 μ„€μ •
  • gitignore에 λ―Όκ°ν•œ 정보 μ œμ™Έ

개발 λ¬Έμ„œ

μš”κ΅¬μ‚¬ν•­ μ •μ˜μ„œ

togedog-μš”κ΅¬μ‚¬ν•­ μ •μ˜μ„œ

API λͺ…μ„Έμ„œ

togedog-APIλͺ…μ„Έμ„œ

ν”„λ‘œμ νŠΈ 회고

ν™©μ§„ν˜

이번 ν”„λ‘œμ νŠΈλŠ” 처음으둜 ν˜‘μ—…ν•˜μ—¬ μ›Ή κ°œλ°œμ„ ν•΄λ³Έ μ†Œμ€‘ν•œ κ²½ν—˜μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 처음 λ§Œλ‚œ νŒ€μ›λ“€κ³Όμ˜ μ†Œν†΅μ΄ 정말 잘 λ˜μ—ˆκ³ , 의견 좩돌이 μžˆμ–΄λ„ μ„œλ‘œμ˜ μž…μž₯을 μ΄ν•΄ν•˜λ©° 잘 ν’€μ–΄λ‚˜κ°ˆ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ‹€λ§Œ, 섀계 λ‹¨κ³„μ—μ„œ ERD, API λͺ…μ„Έμ„œ, ν™”λ©΄ λͺ©μ—… μž‘μ„±μ΄ λΆ€μ‘±ν•΄ λ§Žμ€ μˆ˜μ •μ΄ ν•„μš”ν–ˆλ˜ 점이 μ•„μ‰¬μ› μŠ΅λ‹ˆλ‹€. 특히 λ°±μ—”λ“œμ™€ ν”„λ‘ νŠΈμ—”λ“œ κ°„μ˜ API μ—°κ³„μ—μ„œ μˆ˜μ •μ΄ μž¦μ•„μ Έμ„œ 머리아프고 νž˜λ“  μˆœκ°„μ΄ λ§Žμ•˜μŠ΅λ‹ˆλ‹€. μ•žμœΌλ‘œλŠ” νŒ€μ›λ“€κ³Ό 맀일 회의λ₯Ό 톡해 상황을 μ κ²€ν•˜κ³ , μ•ˆ 될 것 κ°™μœΌλ©΄ λΉ λ₯΄κ²Œ ν¬κΈ°ν•˜κ³ , κ·Έ μ—λ„ˆμ§€λ‘œ 완성도 높은 결과물에 μŸμ•„λΆ“λŠ” 게 더 λ‚«κ² λ‹€λŠ” 생각이 λ“€μ—ˆμŠ΅λ‹ˆλ‹€.


μ‹ λ―Όμ€€

λΉ„μŠ·ν•œ μ‹€λ ₯λŒ€μ˜ μ‚¬λžŒλ“€κ³Ό ν˜‘μ—…ν•˜μ—¬ μ§„ν–‰ν•˜λŠ” ν”„λ‘œμ νŠΈλΌ κ±±μ •κ³Ό μ„€λ ˜μ΄ λ§Žμ•˜λ˜ 것 κ°™μŠ΅λ‹ˆλ‹€. λ‹€ν–‰νžˆ λͺ¨λ‘ λŒ€ν™”λ„ 잘 ν†΅ν•˜κ³  ν˜‘μ—…μ— 긍정적인 μžμ„Έλ₯Ό κ°€μ§€κ³  κ³„μ…”μ„œ νŠΈλŸ¬λΈ” 없이 μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 학원 λ‚΄μ—μ„œ 처음으둜 μ§„ν–‰ν•˜λŠ” ν”„λ‘œμ νŠΈμ˜€κΈ°μ— μŠ€μΌ€μ€„ 관리가 λ―Έν‘ν•œ 뢀뢄이 μžˆμ–΄, ν›„λ°˜λΆ€μ— λ‹€μ†Œ 체λ ₯적으둜 무리λ₯Ό ν•˜λ©° μ§„ν–‰ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ°¨ν›„ 진행될 ν”„λ‘œμ νŠΈμ—μ„œλŠ” μ—¬λŸ¬ 상황을 κ³ λ €ν•˜μ—¬ μŠ€μΌ€μ€„ 관리 및 섀계와 μ»¨λ””μ…˜ 관리λ₯Ό μ² μ €νžˆ ν•΄μ•Όκ² λ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.


남채연


μ–‘μˆ˜λͺ…

첫 ν”„λ‘œμ νŠΈλ₯Ό ν›Œλ₯­ν•œ νŒ€μ›λ“€κ³Ό ν•¨κ»˜ν•  수 μžˆμ–΄ 정말 μ’‹μ•˜μŠ΅λ‹ˆλ‹€. Gitκ³Ό GitHub μ‚¬μš©λ²•, ν˜‘μ—… ν”„λ‘œμ„ΈμŠ€, κΈ°λŠ₯적인 λΆ€λΆ„ λ“± λͺ°λžλ˜ 것듀을 많이 배울 수 μžˆμ—ˆλ˜ μœ μ΅ν•œ μ‹œκ°„μ΄μ—ˆκ³  λ¬Έμ„œν™”μ˜ μ€‘μš”μ„±λ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. μ•„μ‰¬μ› λ˜ 점은 λ°±μ—”λ“œ μœ„μ£Όλ‘œ κ°œλ°œμ„ μ§„ν–‰ν•΄μ„œ ν”„λ‘ νŠΈμ—”λ“œλ₯Ό ν•˜μ§€ λͺ»ν•΄ μ•„μ‰¬μ› μ—ˆκ³  λ‹€μŒ ν”„λ‘œμ νŠΈ λ•ŒλŠ” λ°±μ—”λ“œμ™€ ν”„λ‘ νŠΈμ—”λ“œλ„ 같이 μ§„ν–‰ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 이번 νŒ€ ν”„λ‘œμ νŠΈλ₯Ό 톡해 μ œκ°€ μ•Œμ§€ λͺ»ν•˜λŠ” 기술 μŠ€νƒμ΄ λ§Žλ‹€λŠ” 것을 느꼈고, 그만큼 배울 것도 λ§Žλ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ, ν™”λͺ©ν•œ λΆ„μœ„κΈ°μ—μ„œ ν˜‘μ—…ν•  수 μžˆμ–΄μ„œ μ’‹μ•˜κ³ , λͺ¨λ₯΄λŠ” 뢀뢄이 μžˆμ„ λ•Œ 친절히 μ•Œλ €μ€€ 우리 νŒ€μ›λ“€μ—κ²Œ μ§„μ‹¬μœΌλ‘œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.


이광희

μ œλŒ€λ‘œ 된 ν˜‘μ—…μ„ κ²½ν—˜ν•΄λ³Έ 것 κ°™μŠ΅λ‹ˆλ‹€. 기쑴에 ν–ˆλ˜ ν”„λ‘œμ νŠΈμ™€λŠ” λ‹€λ₯΄κ²Œ μš”κ΅¬μ‚¬ν•­ 뢄석, API λͺ…μ„Έμ„œλ₯Ό 꼼꼼히 μž‘μ„±ν•˜λ©° μ΅œλŒ€ν•œ 싀무와 κ°€κΉκ²Œ λ¬Έμ„œν™” ν•˜λ €κ³  λ…Έλ ₯ν–ˆμŠ΅λ‹ˆλ‹€. νž˜λ“€ λ•Œλ„ λ§Žμ•˜μ§€λ§Œ, μ„±μž₯ν•˜λŠ”λ° μ‹œλ„ˆμ§€κ°€ λ˜λŠ” νŒ€μ›λ“€μ„ λ§Œλ‚˜μ„œ 쒋은 κ²½ν—˜μ΄μ—ˆμŠ΅λ‹ˆλ‹€. νž˜λ“€μ—ˆμ§€λ§Œ μž¬λ―Έμžˆμ—ˆκ³  해보고 μ‹Άμ—ˆλ˜ ν”„λ‘œμ νŠΈ μ•„ν‚€ν…μ²˜ 섀계와 CI/CD, React Queryλ₯Ό μ‚¬μš©ν•˜μ—¬ μ΅œμ‹  κΈ°μˆ μ„ μ΅ν˜€μ„œ λ§Žμ€ μ„±μž₯을 ν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.


Popular repositories Loading

  1. .github .github Public

  2. frontend frontend Public

    JavaScript

  3. backend backend Public

    Java 1

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…