노마드코더 개발자북클럽 Clean code TIL 3 : 3장. 함수

  

오늘 TIL 3줄 요약

  • switch를 사용해야한다면
    추상 팩토리에 숨겨라

  • 여러 섹션으로 나뉘어진 다는 것은
    여러 일을 하고 있다는 뜻.


  • 부수효과를 일으키지 마라.
    이는 남몰래 거짓말하는 것이다.



TIL (Today I Learned) 날짜

2025. 05. 26



오늘 읽은 범위

3장. 함수



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




오류

  • 오류 처리도 한 가지 작업이며
    오류를 처리하는 함수는 오류만 처리해야한다.

    함수에 키워드 try가 있다면
    catch/fianlly로 끝나야한다.

  • 새 오류 코드를 추가하는 대신 기존 오류 코드를 재사용한다.

  • 오류 코드보다 예외를 사용하라.


명령과 조회 구분하기

함수는 

뭔가를 수행하거나
뭔가에 답하거나
둘 중 하나만 해야 함.

둘 다하면 혼란을 일으킨다.



반복(중복)
소프트웨어에서 중복은 악의 근원이다.

많은 원칙과 기법이
중복을 제어하고 없애기 위해 탄생했다.
 

...DB에서
중복을 피하기 위해 정규식을 사용한다.


...OOP에서

- 코드를 부모 클래스로 몰아서 중복을 없앤다.


...구조적 프로그래밍에서
- 함수는 return 문이 하나여야한다.
- 루프 내에서 break, continue를 쓰지 말 것.
  goto는 절대로 쓰지 말 것,


*

처음 작성한 함수가 뒤죽박죽이더라도
다듬으면서 항상 단위 테스트를 통과하게한다.




*

대가 프로그래머는
시스템을 구현할 프로그램이 아니라
풀어나갈 이야기로 여긴다.








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

  • 상당히 빡빡한 기준을 가지고 있으며
    한 가치 원칙을 고수하다가
    다른 원칙을 무시해버리는 상황이 잘 발생할 것 같다.

    특히, 추상적인 작업, 개념을 Class화하는 것은
    두려운 작업임.


  • 기준 없이 2개, 3개정도의
    함수 인자는 막연하게 괜찮다 생각했는데
    될 수 있으면 0개로 유지하라는 덕에
    혼난 기분이 든다.


  • 나도 도메인 특화 언어를 작성하고 있는 프로그래머다.
    이 사실에 자부심을 가지자!
    나는 시스템이라는 이야기를 풀어나가고 있다.


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

  • 추상화의 수준과 정도는 어떻게 알 수 있을까.

  • java의 public, protected, default, private 접근 제한자.

    클래스를 같은 패키지 내에서만 사용할 것인지
    른 패키지에서도 사용할 수 있도록 할 것인지 결정.

    클래스, 필드, 생성자, 메서드 별로 부여될 수 있는
    접근 제한자가 다르다.

    default = public 선언을 하지 않았을 시 부여되는 접근 제한자.
    같은 패키지 내에서는 제한 없이 사용.
    다른 패키지에서는 사용 제한.

    protected = default 접근 제한과 마찬가지로
    같은 패키지에 속하는 클래스에서만 필드와 메소드를 사용할 수 있음.

    단, 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면
    필드와 메소드를 사용할 수 있음.



    public = 같은 패키지뿐 아니라 다른 패키지에서도 제한 없이 사용 가능.
    다른 개발자가 사용할 수 있는 라이브러리 클래스가 이에 해당됨.

    private  = 동일한 패키지이건 다른 패키지이건 상관없이
    생성자를 호출하지 못하도록 제한.
    클래스 내부에서만 생성자를 호출하여 객체(인스턴스)를 만들 수 있음.




오늘 읽은 다른사람의 TIL

 - sykim202202 


SRP(Single Responsibility)
객체 지향 프로그래밍에서 단일 책임 원칙이란
모든 클래스는 하나의 책임만 가지며,
클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다.


OCP(Open Closed Principle)
개방-폐쇄 원칙은
'소프트웨어 개체는 확장에 대해 열려 있어야 하고,
수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다.


AOP(Aspect Oriented Programming)
관점 지향 프로그래밍은
어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고
그 관점을 기준으로 각각 모듈화하겠다는 것이다.





 #노개북 #노마드코더 #개발자북클럽 


댓글

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

Blogger 커스터마이징 : CSS 수정 (sticky-header)

Intel 14th gen CPU의 칩 충돌 사태와 해결 방법