Skip to content

f-lab-edu/music-everywhere

Repository files navigation

music-everywhere

취미 연주자들을 위한 플랫폼

취미로 악기를 다루다보면 다른 사람과 함께 연주하고 싶어집니다.
이 서비스는 취미로 음악을 즐기는 것의 보편화를 위해 연주자들 간의 커넥션을 잇는 것을 목표로 합니다.

네이버 밴드와 같이 그룹 단위의 커뮤니티 서비스를 개발합니다.

✅개발 시 신경 쓴 것들

- 문서를 통한 커뮤니케이션 실천하기

  • API 문서 작성하기 --> 문서 링크
  • 카프카 토픽 네이밍 규칙 --> 문서 링크
  • 발생했던 문제, 장애에 대해 원인 -> 해결과정 -> 결론 형식으로 정리하여 동일한 문제 발생을 막기

- 객체 지향 프로그래밍에 대해 고려하여 개발하기

  • 추상화 비용에 대해 고려하기

- 기술 적용 시 Trade-off를 고려하여 적용 기술 선택하기

- 가독성 좋은 코드(리뷰어가 읽기 좋은 코드)를 작성하기 위해 노력하기

- 좋은 테스트 코드를 작성하기 위해 노력하기

  • 효율적인 test fixture 재사용에 대해 고민하기

✅사용 기술 및 개발 환경

image

✅서비스 아키텍처

image

✅Application UI

image 카카오 오븐 에서 볼 수 있습니다.

✅Database ERD

image

✅프로젝트를 진행하며 고민한 TOPIC

1. 트랜잭션 전파 전략과 UnexpectedRollbackException 발생

2. 마이크로서비스에 API Gateway 패턴 도입하기

3. Facade 패턴을 도입해 순환 의존 문제 해결 / 복잡한 의존 관계 개선하기

4. 동시성 문제 발생과 해결 과정

5. Consumer 도입으로 냄새나는 switch 구문 리팩토링하기

6. Jenkins build strategy 적용기 - 배포 프로세스를 마이크로서비스별로 실행되도록 설정해보자!

7. 커서 기반 페이징을 선택한 이유 (feat. 성능 테스트 with JMeter)

8. 마이크로서비스 간 통신을 진행하며 한 고민들(분산 트랜잭션, 이벤트 기반 아키텍처)

About

취미 연주자들을 위한 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published