728x90
- 이번 주 항해 취업 리부트코스에서 내가 구현한 기능은 무엇인가요?
- API Gateway, Eureka server, client 구현
- 해당 기능을 구현하기 위해, 어떤 기술적 의사결정을 거쳤나요?
- Docker
- 일관된 환경 제공: Docker는 개발, 테스트, 프로덕션 환경을 동일하게 구성할 수 있어 애플리케이션이 여러 환경에서 동일하게 동작하도록 보장합니다. 이를 통해 환경 간의 차이로 인한 문제를 최소화할 수 있습니다.
- 쉬운 환경 설정: Dockerfile을 사용하면 환경 설정을 코드로 정의할 수 있습니다. 이를 통해 필요한 모든 설정을 명확하게 기록하고 쉽게 재현할 수 있으며, 환경 설정의 자동화 및 일관성을 유지할 수 있습니다.
- MSA 도입
- 장점
- 유연성 : 각 서비스가 독립적이므로, 시스템의 일부분만 수정하고 테스트할 수 있어 유연성이 향상됩니다.
- 확장성 : 특정 서비스만 확장하거나 축소할 수 있어, 시스템 자원의 효율적인 관리가 가능합니다.
- 유지보수성 : 작은 서비스 단위로 관리되므로, 코드베이스가 더 작고 이해하기 쉬워 유지보수가 용이합니다.
- 배포의 용이성 : 서비스별로 독립적인 배포가 가능하여, 한 서비스의 배포가 다른 서비스에 영향을 미치지 않습니다.
- 복잡성 증가 : 서비스가 많아지면서, 서비스 간의 통신 및 데이터 일관성 유지 등 관리 포인트가 늘어납니다.
- 네트워크 오버헤드 :서비스 간의 통신이 네트워크를 통해 이루어지므로, 네트워크 오버헤드가 발생할 수 있습니다.
- 데이터 관리의 어려움 :각 서비스가 독립적으로 데이터베이스를 관리하기 때문에, 데이터 일관성을 유지하기 어려울 수 있습니다.
- 장점
- Docker
- 이번 주 겪은 트러블 슈팅이 있다면 무엇인가요?
- 루트 build.gradle과 하위 build.gradle에 중복된 의존성들을 각 모듈에서만 필요한 의존성만 추가하여 중복을 최소화하기위해 subprojects { }로 처리할 수 있다고 하여 시도를 해보았지만, 하위 build.gradle에서 "implementation for arguments" 에러가 발생하였다. (이 에러를 해결하면 추가해야할 듯하다.)
- 이번 주 진행된 개인 프로젝트에서 얻은 인사이트는 무엇인가요?
개발 환경 구축 구현을 제대로 한 것인지 이해를 못했었는데 추가 세션을 통해 개념을 제대로 이해 할 수 있었던 것 같다.
(일단은 빠르게 서버를 띄우고 , CI/CD 환경 구축을 빠르게 먼저 해야 할 것 같다)
- 항해 개발자 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.
728x90