복잡한 시스템 빨리 이해하는 법

복잡한 시스템을 익힐 때 아무리 서류를 여러 번 읽어보고 연구해 봐도 이해하는 데 시간이 꽤 걸릴 수도 있어요. 주니어시절 아키텍처를 이해하는 데 어려움을 많이 겪었던 것 같아요. 아키텍처를 이해하는 데 도움 되었던 방법 몇 가지 적어 봅니다. 1️⃣ 서류를 읽어보며 상위 설계 대충 이해해 보기 시스템 설계를 설명하는 서류나 학습 자료가 있다면 한 번 훑어보면서 대충 상위 레벨 아키텍처를 스스로 이해해 보려고 노력한다. 자료를 읽는다고 바로 이해되는 건 아니지만, 대충 큰 그림을 이해하고 코드를 읽어 보면 아키텍처를 이해하는 데 큰 도움이 된다. 서류가 없는 경우, 이 단계를 스킵하고 다음 단계부터 시작하면 된다. 2️⃣ 코드 읽어 보면서 시스템 설계 다이어그램 직접 그려 보기 스케일이 큰 시스템의 코드베이스는 굉장히 복잡하고 하나하나 꼼꼼하게 읽어 보면서 그릴 수 없다. 그렇지만 최대한 중요한 코드를 파악하고 컴포넌트가 어떤 역할을 하고 컴포넌트 간 어떤 상호 작용을 하는지 다이어그램을 그려 보며 스스로 설계해 본다. 다이어그램이 완벽하지 않아도 된다. 요점은 스스로 코드를 파해쳐 보며 설계해 보는 게 자료만 읽는 것보다 아키텍처를 이해하는 데 더 도움 된다. 이 방법은 마치 알고리즘 문제 풀기와 비슷하다. 기본적으로 알고리즘 개념을 책을 읽거나 유투브 강의를 보며 익힌 다음 직접 문제를 풀어 보면서 연습해야 '내 것'으로 만들 수 있다. 아키텍처도 비슷한 방식으로 접근하는데, 설계 경험 충분하지 않다면 실무에서 아키텍처를 익히려면 직접 그려보고 설계해 보는 게 가장 중요하다. 또한 이런식으로 아키텍처 다이어그램을 직접 그리면 설계 서류를 작성하고 설계 면접을 준비하는 데 도움 된다. 3️⃣ 선임에게 다이어그램 보여 주며 설명해 보기 스스로 그려 본 다이어그램을 관련 아키텍처를 잘 아는 선임에게 보여 주며 스스로 익힌 점을 설명해 보자. 틀려도 괜찮다. 요점은 시스템을 잘 아는 선임에게 내가 이해한 시스템을 설명하고 선임이 틀린 점을 바로 알려주면서 내가 모르는 점을 알게 되고 틀린 점을 바로 고칠 수 있다. 예를 들어, 주니어 시절 선임이 '학습 세션(learning session)'을 통해 다이어어그램을 그리며 신입사원에게 아키텍처를 설명해 줬는데, 세션이 끝나도 그 시스템을 이해하지 못했다. 물론 어느 정도 상위 수준의 아키텍처를 이해할 수 있었지만, 정보를 흡수만 하는 게 시스템을 익히는 데 큰 도움이 되지 않았다. 어렵더라도 내가 스스로 익혀보고 설계를 해보면서 선임에게 반대로 알려 주면서 상호적인 학습 세션을 통해 배우면 개념을 훨씬 빠르고 깊게 익힐 수 있었던 것 같다. 4️⃣ 팀원에게 다이어그램 그리며 시스템 설명해 보기 '가르치면서 배운다'는 걸 느낀 적이 있는데, 아키텍처를 가르쳐 주면서 팀원들이 모르는 점을 물어본다. 모든 질문에 대답할 수도 있고 없을 수도 있지만, 없어도 괜찮다. 내가 알지 못한 점을 다른 사람의 질문을 통해 알 수 있고, 스스로 공부했을 때 그냥 지나쳤을 수도 있는 아키텍처의 디테일한 점을 익힐 수 있다. 종종 생각지도 못한 질문을 받고 그 질문에 관한 답변을 찾으면서 스스로 공부했을 때 보다 더 많은 양의 정보를 흡수할 수 있다. 5️⃣ 상호작용하는 학습 세션 만들기 스텝3과 스텝4를 할 수 없는 상황이라면 팀원끼리 모여 함께 다이어그램을 그리며 설계를 설명해 보는 건 어떨까? 같이 배우면 혼자 배우는 것보다 더 많은 양의 정보를 흡수할 수 있다. 🪴 함께 읽으면 좋은 글 라지 스케일 시스템을 구현하는 개발자가 아는 것 https://careerly.co.kr/comments/90638 개발자가 꼭 봐야 할 책 - 데이터 중심 애플리케이션 설계 https://careerly.co.kr/comments/67004 초당 1억 건의 요청 S3 스케일의 스토리지 구축, 운영, 관리 https://careerly.co.kr/comments/88808

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 16일 오후 7:20

 • 

저장 332조회 12,321

댓글 2