학습 일지130 멀티 모듈에서 독립적으로 Repository 관리하기(Querydsl) 멀티모듈의 도입사이드 프로젝트를 진행하면서 독립적인 배포와 높은 유지보수성을 목표로 하여 멀티모듈 구조를 도입했습니다.각 모듈은 명확한 책임을 가지며, 필요에 따라 의존성을 설정하여 독립적으로 개발, 배포할 수 있도록 설계했습니다.각 모듈의 대한 설명과 의존성은 아래의 그림과 같습니다.module-api : 서비스 운영 서버를 독립적으로 관리하기 위한 모듈 domain 모듈에 의존module-admin : 관리자 서버를 독립적으로 관리하기 위한 모듈로 domain 모듈에 의존module-domain : 엔티티와 repository를 독립적으로 관리하기 위한 모듈 모듈간의 독립성 강화를 위한 팀 내 정책 수립멀티 모듈 도입 시, 공통 의존 모듈인 common이나 domain에 특정 모듈에서 사용하는 코드가.. 2024. 1. 17. 오브젝트 : 객체지향 프로그래밍 협력, 객체, 클래스객체 지향이란 객체를 지향하는 것이다.대부분의 사람들이 객체지향 프로그램을 작성할 때 가장 먼저 고려하는 것은 어떤 클래스가 필요한지, 클래스 내부에 어떤 클래스의 속성과 메서드가 필요한지 고민한다.하지만 진정한 객체지향 패러다임의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있으므로 다음과 같은 것에 집중해야한다.어떤 클래스가 필요한지 고민하기 전에 어떤 객체가 필요한지 고민해야한다. 어떤 객체들이 어떠한 상태와 행동을 가지는지 먼저 결정해야한다.객체들이 어떻게 협력할지에 대해서 고민해야한다. 객체들의 모양과 윤곽이 잡히면 공통된 특성과 상태를 가진 객체을 타입으로 분류하고 이 타입을 기반으로 클래스를 구현해야한다.도메인의 구조를 따르는 프로그램 구조소프트웨어는 사용자가.. 2024. 1. 6. 15장. 구글 드라이브 설계 1단계. 문제 이해 및 설계 범위 확정기능적 요구사항파일 추가. 가장 쉬운 방법은 구글 드라이브 안으로 떨구는(drag-and-drop) 것이다.파일 다운로드여러 단말에 파일 동기화. 한 단말에서 파일을 추가하면 다른 단말에도 자동으로 동기화 되어야 한다.파일 갱신 이력 조회파일 공유파일이 편집되거나 삭제되거나 새롭게 공유되었을 때 알림 표시비-기능적 요구사항안정성 : 저장소 시스템에서 안정성은 아주 중요하다. 데이터 손실은 발생하면 안된다.빠른 동기화 속도네트워크 대역폭 : 제품이 네트워크 대역폭을 불필요하게 많이 소요한다면 사용자는 불편할 것이다.규모 확장성 : 이 시스템은 아주 많은 양의 트래픽도 처리 가능해야 한다.높은 가용성 : 일부 서버에 장애가 발생하거나, 느려지거나, 네트워크 일부가 끊겨도.. 2023. 12. 30. 14장. 유튜브 설계 1단계. 문제 이해 및 설계 범위 확정아래와 같은 기능을 갖는 비디오 스트리밍 서비스 설계에 초점을 맞춘다.빠른 비디오 업로드원활한 비디오 재생재생 품질 선택 기능낮은 인프라 비용높은 가용성과 규모 확장성, 안정성지원 클라이언트 : 모바일 앱, 웹브라우저, 스마트 TV개략적 규모 추정일간 능동 사용자(DAU: Daily Active User)수는 5백만(5million)한 사용자는 하루에 평균 5개의 비디오를 시청10%의 사용자가 하루에 1비디오 업로드비디오 평균 크기는 300MB비디오 저장을 위해 매일 새로 요구되는 저장 용량 = 5백만 x 10% x 300MB = 150TBCDN비용클라우드 CDN을 통해 비 디오를 서비스할 경우 CDN에서 나가는 데이터의 양에 따라 과금한다.아마존의 클라우드프론트(C.. 2023. 12. 30. 이전 1 ··· 5 6 7 8 9 10 11 ··· 33 다음