260th online meetup, 2025-11-08 with Starbucks mobile gift item promotion
참여 방법
토요일 오전 10시 30분에 아래 google meet 링크를 통해 접속 https://meet.google.com/jyx-mxnq-kpk
이 이슈 assignees에 자신의 github 계정을 추가 약 1시간 30분 분량의 할 내용에 대해 댓글 작성 (최소 모임 시작 전까지) 구글 캘린더 일정 등록 메일 확인을 통해서도 가능 (일정 관리에 도움도 드립니다) 모임 시간에 각자 개발 관련된 공부 진행
- 시작: 10시 30분, 각자 오늘 진행할 것 이야기 5분 ~ 10분 간 진행
- 자기소개: 새로 오신 분이 있으면 각자 짧은 자기소개가 진행됩니다
- 진행: 2시간, 하지만 쉬는 시간 및 기타 잡일 감안해서 1시간 30분 정도로 진행
- 완료: 12시 30분, 이후 각자 진행한 것 이야기, 12시 40분 전후로 종료.
모임 끝난 후 공부한 내용 정리 & 링크 추가 => 최소 다음 모각코 전까지 확인 가능해야 함.
모임 특징: 특정 출석 횟수를 달성하면 스타벅스 아메리카노 기프티콘과 함께 책 선물의 기회가 있음
- #87
- #275
출석체크 테이블
- https://github.com/ThinkAboutSoftware/OnlineSelfCodingGroup/tree/main/Stamp
주의
다음과 같은 작업은 모각코 시간에 부적합하다고 봅니다. 최대한 자제해 주세요.
- 직장인의 경우
- 회사 업무를 하면서 모각코 참여
- 이직 준비를 위한 이력서 업데이트 문서 작업하면서 모각코 참여
- 학생의 경우
- 밤새면서 캡스톤 디자인 프로젝트의 연장으로 모각코 참여
- 내일 혹은 모레까지 제출해야 하는 과제, 논문 작성 등을 하면서 모각코 참여
260회차 특이점
이번 회차 포함해서 출석 스탬프를 계산해 4개 모이면 스타벅스 프로모션 음료로 드립니다.
To do
- 시스템 설계 15장 읽고 정리
Done
구글 드라이브 설계
- 요구사항: 파일 추가, 파일 다운로드, 파일 동기화, 파일 갱신 이력 조회, 파일 조회, 파일 알림 조회
- 비기능적 요구사항: 안정성, 빠른 동기화 속도, 네트워크 대역폭, 규모 확장성, 높은 가용성 -> AWS S3 사용
- 필요 API: 파일 업로드 API(단순 올리기, 이어 올리기), 다운로드 API, 파일 갱신 히스토리 제공 API
- 동기화 충돌: differential synchronization(문서 동기화 알고리즘, diff 계산하여 최신 버전 유지)
개략적 설계
- 블록 저장소 서버(block server): 파일을 여러 개의 블록으로 나눠 클라우드 저장소(S3 등)에 저장
- 최적화: 델타 동기화(delta sync, 수정된 파일 블록만 동기화) + 파일 블록 단위로 압축(compression)
- 아카이빙 저장소(cold storage): 오래 사용되지 않은 비활성(inactive) 데이터 저장
- 메타데이터 데이터베이스: 메타데이터 정보(사용자, 파일, 블록, 버전 등) 관리 -> 성능을 위해 캐싱 대상
- 일림 서비스: 클라이언트한테 특정 이벤트가 발생했을 때 사용하는 발생/구독 프로토콜 기반 시스템
- 양방향 통신이 요구되지 않으므로 롱 폴링(long polling) 사용
- 오프라인 사용자 백업 큐(offline backup queue): 클라이언트가 미접속 시, 해당 정보를 큐에 넣었다가 접속했을 때 동기화
업로드 절차
두 과정이 병렬적으로 전송된다
-
메타 데이터 파일 추가: 클라이언트1은 새 파일의 메타데이터 추가하기 위한 요청 전송 - 메타데이터는 db에 저장하고 업로드 상태를 대기 중으로 변경 - 새 파일이 추가되었음을 알림 서비스에 통지 - 알림 서비스는 클라이언트2에 파일 업로드 중임을 알림
-
클라우드 저장소에 파일 업로드: 클라이언트1은 파일을 블록 저장소 서버에 업로드 - 블록 저장소 서버는 파일을 블록 단위로 쪼개고 압축/암호화 후 클라우드 저장소로 전송 - 업로드 완료하면 클라우드 스토리지는 완료 콜백 호출, 호출은 그대로 API 서버로 전송 - 메타데이터 db에 기록된 해당 파일 상태 완료로 변경 - 알림 서비스는 클라이언트1, 2에게 파일 업로드가 끝났음을 통지
다운로드 절차
파일이 추가/편집되면 알림 서비스가 해당 사실을 클라이언트에게 알리므로 다운로드는 자동으로 시작함
- 저장소 공간 절약: 중복 제거(de-dupe), 지능적 백업 전략(한도 설정, 중요 버전만 보관), 자주 쓰이지 않는 데이터는 아카이빙 저장소에 저장
이번 주도 딸과 함께 시간을 보냈습니다. 평일에 폴리어학원에서 영어 수업을 받는데 토요일 오전에 도서관을 열어서 거기 바래다 주고 잠깐 기다렸다가 다시 발레 수업 데려다 주러 가고 하는 시간을 보냈습니다.