Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 3장. 함수
#clean_code
2년 전
543

오늘 TIL 3줄 요약

  • 함수는 어떤 프로그램이든 가장 기본적인 단위이다.

  • 함수를 지을 때 한 가지만 하는 작게 만들어야 한다. 거기에 서술적인 이름을 사용해야 한다.

  • 프로그래밍의 진짜 목적은 시스템이라는 이야기를 풀어가는 데 있다.

TIL (Today I Learned) 날짜

2022. 04. 27

오늘 읽은 범위

3장. 함수

책에서 기억하고 싶은 내용을 써보세요.

  • 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. (p.42)

  • 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. (p.44)

  • "코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다." 한 가지만 하는 작은 함수에 좋은 이름을 붙인다면 이런 원칙을 달성함에 있어 이미 절반은 성공했다. 함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다. (p.49)

  • 함수에서 이상적인 인수 개수는 0개(무항)다. ~ 3개(삼항)는 가능한 피하는 편이 좋다. 4개 이상(다항)은 특별한 이유가 필요하다. 특별한 이유가 있어도 사용하면 안 된다. (p.50)

  • 인수는 어렵다. 인수는 개념을 이해하기 어렵게 만든다. (p.50)

  • 출력 인수는 입력 인수보다 이해하기 어렵다. 흔히 우리는 함수에다 인수로 입력을 넘기고 반환값으로 출력을 받는다는 개념에 익숙하다. 대개 함수에서 인수로 결과를 받으리라 기대하지 않는다. 그래서 출력 인수는 독자가 허둥지둥 코드를 재차 확인하게 만든다. (p.51)

  • 다익스트라는 함수는 return문이 하나여야 하며 루프 안에서 break, continue를 사용해선 안되며 goto는 절대로, 절대로 안된다고 말한다. (이를 단일 입/출구 규칙이라고 하는 듯) (p.61)

  • 그러나 함수를 작게 만든다면 간혹 return, break, countinue를 여러 차례 사용해도 괜찮다. 오히려 때로는 단일 입/출구 규칙(single entry-exit rule)보다 의도를 표현하기 쉬워진다. (p.61)

  • 소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대게 서투르고 어수선하므로 원하는대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다. (p.61)

  • 모든 시스템은 특정 응용 분야 시스템을 기술할 목적으로 프로그래머가 설계한 도메인 특화 언어로 만들어진다. (p.62)

  • 하지만 진짜 목표는 시스템이라는 이야기를 풀어가는 데 있다는 사실을 명심하기 바란다. 여러분이 작성하는 함수가 분명하고 정확한 언어로 깔끔하게 같이 맞아떨어져야 이야기를 풀어가기가 쉬워진다는 사실을 기억하기 바란다. (p.62)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 예전에 프로그래밍 수업을 들을 때 우리의 전공은 시스템을 설계하는 데 있다고 들었는데 그게 기억이 난다. 시스템이란 단순히 말하면 인풋이 있으면 아웃풋을 도출해낸다. 그걸 설계하는 것이 프로그래밍의 목적이라고 느꼈다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 명령과 조회를 분리하라는 부분

  • 오류코드보다 예외를 사용하라는 부분