강의

멘토링

커뮤니티

NEW
개발 · 프로그래밍

/

개발 · 프로그래밍 기타

Simple Design 개론 3강: Less is more

Simple Design 개론의 세번째 강의로 Simple Design의 두 가지 원칙 중에 구성요소를 줄이는 것에 대해 다룹니다. 구성요소는 어떤 것들이 있는지, 왜 줄여야 하는지를 살펴보고 구성요소를 줄이는 다양한 방법들을 예제 코드와 함께 다룹니다. 또한, 리팩터링의 코드 냄새, 도요타웨이의 필요 낭비의 개념 등을 살펴본 후에, 나의 코드 품질 실력을 평가하는 방법도 이야기합니다.

63명 이 수강하고 있어요.

  • 영록
코드품질
리팩토링
코드 가독성

수강 후 이런걸 얻을 수 있어요

  • 코드의 상태를 줄이고 변수를 줄이면서 코드를 개선하는 방법을 알 수 있습니다.

  • 함수의 적절한 크기를 판단할 수 있습니다.

  • 코드의 분량과 가치의 저울질을 이해하고 적절한 균형을 찾을 수 있습니다.

  • 나와 우리 팀의 코드 품질을 평가하고 개선할 수 있습니다.

이 강의는 Simple Design 로드맵 중 세번째 강의이며, 코드 품질을 이론적으로 다루는 Simple Design 개론의 마지막 강의입니다. 이 강의까지 수강하고 나면 좋은 코드를 작성하기 위한 기초는 다진 상태라고 볼 수 있을 것입니다. 무료로 오픈되어 있는 첫번째 강의와 중복 코드를 다루는 두번째 강의를 보고 오시면 좋습니다.

강의 계획서

Simple Design에 도달하는 방법은 다음 두 가지로 요약할 수 있습니다.

  1. 중복 코드를 제거한다.

  2. 그러면서 구성요소를 줄인다.

지난 강의에서는 첫번쨰, 중복 코드를 제거하는 것을 다루었고, 이번 강의에서는 구성요소를 줄이는 것을 집중적으로 다룹니다.

코드 품질을 다루기 위한 원칙은 단순히 외워서 되는 게 아니라, 왜 그런 원칙들이 필요한지 원칙이 나오는 과정을 이해해야 합니다. 그래서, 먼저 구성요소를 줄여야 하는 이유부터 설명합니다. 그리고, 어떤 구성요소를 줄이는 것이 우선순위가 높은지 하나씩 살펴봅니다. 코드 품질에서 중요한 요소 중 하나인 적절한 함수의 크기를 어떤 기준으로 판단할 수 있는지도 알아보고, 좋은 함수에 도달하기 위한 과정도 예제로 다룹니다.

이제는 고전이 되어가고 있는 리팩토링 책의 내용도 간단히 소개하며, 산업공학 관점에서 필요 낭비의 개념을 다루고, 마지막으로 나와 우리 팀의 코드 품질을 평가하고 향상시키는 법을 살펴보면서 마무리합니다.

목차는 다음과 같습니다.

  1. 줄여야 할 대상 구성요소는 어떤 것들인가?

  2. 왜 줄여야 하는가?

  3. 어떤 구성요소부터 줄이는 것이 좋은가?

    1. 분기

    2. 상태

    3. 예외 처리 코드

    4. 테스트 케이스

  4. 호출 스택의 깊이와 적절한 함수의 크기

  5. 리팩터링의 나쁜 냄새(Bad smell)로 보는 구성요소 줄이기

  6. 필요 낭비

  7. 나의 코드품질 돌아보기

이번 강의도 풍부한 예제들과 함께 합니다. 예제는 파이썬, 타입스크립트, 자바 세 가지를 주로 활용하며, 언어별로 어떻게 달라지는지를 보는 것도 흥미로울 것입니다.

구성요소의 수는 AI 활용성과도 직결되는 문제입니다. 코딩 LLM들은 모두 토큰 수에 따라 과금하는 정책을 갖고 있기 때문에 구성요소의 수가 줄어들면 LLM에 사용해야 하는 토큰 수도 줄어들고 그에 따라 AI도 더 효율적으로 일할 수 있습니다.

대규모 프로젝트를 쉽게 유지보수할 수 있는 방법이 뭘까요? 가장 좋은 방법은 우리 프로젝트가 대규모 프로젝트가 되지 않게 소규모로 유지하는 것입니다. 저는 대기업부터 스타트업까지 다양한 규모의 회사에서 일해보고 컨설팅, 외주 프로젝트들도 많이 해왔는데, 아주 비슷한 기능성을 제공하는 소프트웨어임에도 코드의 규모가 10배 이상 차이나는 경우를 흔하게 봤습니다. 그러면 어떤 회사는 같은 일을 다른 회사보다 10배의 비용을 들여서 하고 있는 셈입니다. 그런데, 전체적인 코드의 분량을 줄이려 하지 않고 단순히 쪼개서 문제를 해결하려 하다보면 팀간 소통만 더 늘어나고 생산성은 개선되지 않는 경우가 많습니다. 코드 분량과 구성요소의 수를 좀더 예민하게 받아들이고 줄이다보면 장기 프로젝트의 유지보수도 쉽게 느껴지는 날이 올 것입니다.

Simple Design 개론을 마스터하고 더 높은 단계로 올라갈 준비를 해봅시다.


이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 개발이 점점 느려지고 있는 프로젝트에 참여하고 있는 개발자

  • 코드를 더 간결하게 만들고 싶은데 어떻게 해야 할지 모르는 사람

  • 코드 품질에 대해 좀더 객관적인 기준을 찾고 있는 사람

선수 지식,
필요할까요?

  • Simple Design 개론의 1, 2강을 먼저 보고 오면 좋습니다.

  • 리팩토링, 테스트 주도 개발, 익스트림 프로그래밍에 대한 이해가 있으면 도움이 됩니다.

안녕하세요
입니다.

1,963

수강생

58

수강평

1

답변

4.9

강의 평점

4

강의

대한민국에서 가장 폭넓은 경험을 가진 개발자입니다. 직접 창업한 스타트업, 소규모 스타트업에서부터 네이버, 카카오, 엔씨소프트 등 대기업까지 다양한 규모의 기업, HTML과 CSS에서 시작해서 프론트엔드, 백엔드, 시스템 프로그래밍, 하드웨어 제어, DevOps까지 다양한 기술, 커머스, 세무회계, 광고산업, 생산성 툴, 공공프로젝트 등 다양한 비즈니스 도메인을 경험했습니다.

또한, 많은 기업에서 CTO를 맡으며 팀원들의 강력한 지지를 받았고, 여러 번 실패했던 프로젝트를 이어 받아 살려낸 사례를 통해 해결사 역할도 많이 요청 받고 있습니다.

커리큘럼

전체

7개 ∙ (2시간 36분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

얼리버드 할인 중 (7일 남음)

₩5,500

50%

₩11,000

영록님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!