개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
가독성이 좋은 깔끔한 클래스를 작성하기 위해 암묵적인 룰과 같은 "클래스 체계"라는 것이 있다.
클래스의 크기는 작아야한다. '1 클래스 1 책임' (SRP) 이 가장 바람직하다.
변경하기 쉬운 클래스를 만드는 것이 깨끗한 시스템을 유지하는데 도움이 된다.
TIL (Today I Learned) 날짜
2022. 03. 09
오늘 읽은 범위
10장. 클래스
책에서 기억하고 싶은 내용을 써보세요.
클래스의 크기는 작아야하고, 클래스의 크기를 측정하는 척도는 클래스가 맡은 "책임"이다. 따라서 "1 클래스 1 책임"이 깔끔한 클래스를 작성하는 방법이다.
누군가에게 특정 클래스를 설명할 때는 만일("if"), 그리고 ("and"), 하며 ("or"), 하지만 ("but") 등의 표현을 사용하지 않고 25단어 내외로 설명이 가능해야 한다.
클래스의 이름을 간결하게 명료하게 짓는 것이 클래스의 크기를 줄이는데 도움이 된다.
단일 책임 원칙(Single Responsibility Principle, SRP)은 클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙이다.
프로그래머가 고민해야할 질문은 "도구 상자를 어떻게 관리하고 싶은가? 작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가? 아니면 큰 서랍 몇 개를 두고 모두를 던져 넣고 싶은가?"이고, 그 답은 정해져있다.
새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
처음 코딩을 공부할 때, 간단한 클론 코딩이나 규모가 크지 않은 프로젝트를 하던 당시 오늘 읽은 부분을 읽었더라면 100% 이해하지는 못했을 것이다. 다른 개발자들과 같이 작업하는 규모가 비교적 큰 프로젝트를 경험한 지금은 내용의 대부분 이해가 되었고 많은 공감이 되었다.
현재 스타트업에서 프론트엔드 개발자로 일을 하며 Figma라는 디자인 툴을 이용한 디자인 시스템 구축도 담당하고 있는데, Figma에는 개발에서의 컴포넌트와 라이브러리라는 개념이 접목되어 디자인 작업물을 재사용할 수 있도록 컴포넌트화, 라이브러리화할 수 있는 기능이 있다. SRP는 여기서도 똑같이 해당되는 사항이라는 생각이 들었다. 간혹 디자이너분의 컴포넌트화된 작업물을 보고 온전히 컴포넌트로서의 기능을 하기에는 개선의 여지가 있다고 판단되어 수정 요청을 드리는 경우가 있는데,
다음 미팅 때 SRP (단일 책임 원칙) 를 풀어서 설명하면 컴포넌트를 만들 때 무엇을 기준으로 만들어야 하는지 알기 쉬워지지 않을까 하는 생각이 들었다.