라지 스케일 시스템을 구현하는 개발자가 아는 것

라지 시스템을 구현하고 운영 및 관리하는 개발자의 조언을 읽어보고 정리해서 올립니다. 1. 코드 작성과 시스템 설계 시작 전 아이디어를 브레인스톰해보고 간단하게 적어본다. 2. 구축하려는 시스템 관련 전문 지식이 많은 사람과 화이트보드 세션을 진행하고 충분한 검토 과정을 거친다. 📌 추가: '설계 검토' 기간이 길어지게 되면 급한 마음에 충분히 피드백을 반영하지 않고 급하게 시스템을 구축하는 경우가 생기는 것 같아요. 하지만 잘못된 (또는 미완성된) 설계를 바탕으로 시스템을 구현하면 나중에 문제가 생기고, 문제를 고치는 데 많은 시간을 낭비하게 되고 최악의 경우에는 시스템을 처음부터 새로 구현해야 할 수 있습니다. 이해관계자와 검토를 효과적으로 그리고 빠르게 하고 피드백을 충분히 반영한 후 완성된 설계를 바탕으로 구현하면 버그 고치는 데 드는 비용이 더 적습니다. 관련 글은 아래 '함께 읽으면 좋은 글'을 참조해 주세요. 3. 여러 가지 설계 옵션을 파악하고, 각 옵션의 절충점을 이야기 해본다. 📌 추가: 주니어시절 가장 많이 하는 실수는 여러 옵션을 파악하지 않고 절충점을 따지지 않는 것입니다. 장기적으로 봤을 때 좋은 옵션이 아닐 수 있고, 추후에 설계나 코드 작성을 다시 해야 하는 경우가 생깁니다. 따라서 한 문제를 직면했을 때 가능한 여러가지 옵션을 간단하게 적어 보고 절충점을 따져 보는 것이 좋은 것 같습니다. 4. 가상 사용 케이스를 예상해 본다. 5. 시스템의 인터페이스를 잘 생각해 보고 좋은 인터페이스를 디자인해야 한다. 6. 최상의 솔루션을 채택하고 시스템 성능을 추정할 줄 아는 스킬은 중요하다. 7. 시스템을 설계하기 전 성능을 미리 예측해야 한다(예: back-of-envelope-calculations). (계산 관련 슬라이드 참고) 📌 추가: RPS와 Storage Utilization 계산법은 기본적으로 알아두는 게 좋습니다. 8. 진화할 수 있는 시스템에 미리 대응해 본다. 시스템이 10배 더 크게 확장되어도 잘 작동되어야 한다. 9. 기본 개발 구성 요소에 대해 잘 알고 있기. 예를 들어 코어 라이브러리, 기본 자료 구조, SSTables, protocol buffers, BigTables, MySQL, MapReduce. 그냥 기본 개념을 이해하는 게 아니라 어떻게 구현되는지 자세하게 알아야 한다. 📌 추가: 표면적으로 개념을 이해하는 것보다 깊게 파고들어 조금 더 많은 정보를 알게 되면 라지 스케일 시스템 개발, 운영 및 관리에 큰 도움이 됩니다. 슬라이드에는 간단하게 몇 가지 개념만 언급했지만, 궁금하신 분들은 관련 개념을 좀 더 자세하게 알아 보거나 라지 시스템 설계 관련 책을 읽어보면 좋을 것 같아요 (책 추천은 아래 '함께 읽으면 좋은 글'을 확인해 주세요). 10. 모든 요구 사항을 다 충족하는 시스템을 설계하려고 하지 말자. 11. Caching, parallelism을 통해 low latency 요구 사항 충족시키기. 12. Eventual Consistency와 Strong Consistency 모델 이해하기. 13. 데이터 엑세스 타임 이해하기. 14. 장애에 튼튼한 앱 구현하기 (Canary, 레플리케이션, load balancing). 15. 장애 발생시 전체 운영 중단 보다 부분 기능이 작동하는 것이 더 나은 유저 경험을 제공한다. 16. 충분한 모니터링, 로깅 그리고 디버깅 훅 추가하기. https://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf 🪴 함께 읽으면 좋은 글 좋은 개발자가 알아야 할 버그 고치는데 드는 비용 https://careerly.co.kr/comments/75848 개발자가 꼭 봐야 할 책 - 데이터 중심 애플리케이션 설계 https://careerly.co.kr/comments/67004 초당 1억 건의 요청 S3 스케일의 스토리지 구축, 운영, 관리 https://careerly.co.kr/comments/88808 실력 향상을 위한 해외 유튜브 채널 10개 https://careerly.co.kr/comments/88786 개발자 성장에 도움 될 테크 블로그 https://careerly.co.kr/comments/87704

PowerPoint Presentation

googleusercontent.com

PowerPoint Presentation

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 14일 오후 7:30

 • 

저장 174조회 8,193

댓글 0

    함께 읽은 게시물

    차세대 파이썬 패키지 매니저 uv 소개 영상

    h

    ... 더 보기

    오늘은 투자 완료일이자 아미고 런칭 100일. 별 생각 없었는데, VC 파트너님이 축하한다며 파티 안하냐고 전화주셨길래 편의점에서 맥주 한 캔과 꼬깔콘으로 조촐하게 파티 했습니다. 이제부터가 진짜 시작이겠죠. 잘 부탁드립니다.

    ... 더 보기

    조회 1,747


    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 139 • 조회 3,767


    이번 구글 I/O, 구글 여러분들 행사전에 입이 근질근질하셨겠네요. ㅎㅎ


    내용은 다들 소개하셨으니 한줄평하자면, 구글이 처음으로 OpenAI에 비해 반발짝정도 앞서나간 이벤트인 것 같습니다.


    더불어 출시한 모델과 서비스들을 보니.. 역시 AI는 돈빨이며 구글이 돈빨을 제대로 세웠.. 쿨럭..


    고용노동부가 주관하는 청년미래플러스 사업, 이전에 공유했었는데요.

    ... 더 보기

    청년미래플러스 참여 재직자 1기 모집

    한국소프트웨어산업협회

    청년미래플러스 참여 재직자 1기 모집

    ChatGPT 버전명 설명

    ChatGPT 사용할 때 어떤 모델을 선택해야할지 망설여집니다. 모델명만 봐서는 어떤게 좋은지 모르겠더라고요.

    ... 더 보기