<⚙️ 소프트웨어 시스템 설계 시 고려할 세 가지>

좋은 소프트웨어 시스템을 설계하려면 어떤 점들을 고려해야 할까요? 시스템을 설계할 때 고려해야 할 부분은 여러 가지가 있는데요, <데이터 중심 애플리케이션 설계 (원제: Designing Data-Intensive Applications)>에서 저자 Martin Kleppmann은 이 중 세 가지를 가장 중요한 점으로 꼽았습니다. 1️⃣ 신뢰성(Reliability) 소프트웨어 시스템에는 여러 가지 장애가 생길 수 있습니다. 시스템 장애는 하드웨어나 소프트웨어 결함, 또는 사람의 실수(human error)로 인해 발생합니다. 어느 날 잘 작동하던 인스타그램이 로딩되지 않거나, 넷플릭스가 먹통이 된 현상을 경험하신 적이 있으실 거예요. 이런 에러가 반복되면 사람들이 서비스에 대한 신뢰를 잃게 되고, 최악의 경우 이 서비스를 떠나게 되겠죠. 따라서 소프트웨어 시스템은 어떠한 장애가 있더라도 정상적으로 작동해야 하도록 신뢰성(Reliability)이 높게 설계되어야 합니다. 2️⃣ 확장성(Scalability) 소프트웨어 시스템은 끊임없이 진화합니다. 카카오톡을 예로 들어볼게요. 카카오톡을 처음 출시했을 때 목표로 잡은 가입자 수는 10만 명이었다고 합니다. 그런데 예상과 달리 5일 만에 가입자 수 10만 명이 넘었고, 출시 6개월 뒤에는 100만 명을 돌파했습니다. 지금은 월간 사용자 4,500만 명(2021년 6월 기준)에 달하는 온 국민의 메신저가 되었죠. 이렇게 빠르게 늘어나는 사용자 부하와 그 사용자들이 주고받은 방대한 양의 데이터를 어떻게 처리할 수 있었을까요? 이런 문제를 고민하는 것이 확장성(Scalability)의 영역입니다. 3️⃣ 유지보수성(Maintainability) 소프트웨어 시스템은 한 번 개발한다고 끝이 아닙니다. 경쟁사의 서비스는 계속 신기능을 개발해 사용자를 늘려가는데 우리 서비스만 가만히 있을 수 없겠죠. 계속 새로운 기능을 추가하고, 기존 기능이 잘 작동하도록 보살펴 줘야 합니다. 이런 작업을 유지보수라고 하는데요, 시스템이 크고 복잡해질수록 유지보수도 더 어려워집니다. 이런 유지보수 작업을 보다 쉽고 간편하게 만드는 것이 유지보수성(Maintainability)의 영역입니다. 📕 책 정보: https://search.shopping.naver.com/book/catalog/32466573690 📔 함께 읽어보면 좋은 글 - 시스템 설계 면접 준비 방법: https://careerly.co.kr/comments/67313 위 내용은 저의 브런치 글 <시스템 설계 면접 준비 방법>의 일부를 정리한 내용입니다.

시스템 설계 면접 준비 방법

Brunch Story

시스템 설계 면접 준비 방법

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 9월 12일 오전 8:16

 • 

저장 30조회 3,305

댓글 0

    함께 읽은 게시물

    대량의 트래픽이 몰려올 때 나는 어떻게 해야하나? - (feat. Cac

    🌱 0. 들어가며

    ... 더 보기

    회피를 해야 할까요? 방안을 찾아야 할까요?

    팀이나, 파트등의 조직에서의 생활을 하다 보면은 나의 의사와 다른 상황이 펼쳐지는 일이 꽤 많은 빈도로 발생이 되는거 같아요. 짧다면 짧고, 길다면 긴 조직 생황을 하였지만 가장 어려운 것이 나의 의사와 다른 생각을 가지는 일들이 생기는 것들 같아요.

    ... 더 보기

    품질 높은 프로젝트는 어떻게 만들어질까? 🤔

    ... 더 보기

    “품질 높은 프로젝트는 어떻게 만들어질까?”

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

    “품질 높은 프로젝트는 어떻게 만들어질까?”


    ⟪토스가 만든 리서치툴, TNS⟫

    ... 더 보기

    토스가 특허 낸 리서치툴, TNS (Toss Navigation Score) 제작기

    toss.tech

    토스가 특허 낸 리서치툴, TNS (Toss Navigation Score) 제작기

     • 

    저장 3 • 조회 862


    스프링 핵심 기능으로 통합된 Spring Retry

    S

    ... 더 보기

    스프링 핵심 기능으로 통합된 Spring Retry

    www.linkedin.com

    스프링 핵심 기능으로 통합된 Spring Retry

     • 

    저장 2 • 조회 1,058