클린코드 5

2022년 5주차 '스터디 시작'

Weekly Study "공부할 건 많은데 무엇부터 공부해야 할지 막막한 시점." 수료 직후라 조금은 쉬고 싶기도 해서 해이해져 있었다. 기존에 듣고 있던 파이썬 동시성 프로그래밍 강의를 듣거나 알고리즘 문제를 풀거나 하면 주 초반을 보냈다. 수요일에는 위코드에서 하는 [수료 후 가이드] 세션을 들었는데 기존에 생각하던 방향성(새로운 프로젝트 도전)과 사뭇 다른 가이드를 받고 다시 계획을 세워보기로 했다. 우선 취업에 도움이 되는 것은 새로운 프로젝트보다는 기존 프로젝트에 대한 리펙토링. 즉 유지보수가 더 도움이 될 거라는 것과 특히 백엔드의 경우 SQL과 CS 이론에 대한 지식이 부족하니 이쪽으로 공부를 집중하는 게 좋겠다는 내용이었다. 가이드는 충분히 동의하는 내용이었고 이를 위해 세션이 끝나자마자 ..

함수를 어떻게 짜죠?

제목 : 클린 코드 저자 : 로버트 C. 마틴 범위 : 3장 함수 기억하고 싶은 것 작게 만들어라! 함수를 만드는 첫째 규칙은 '작게!'다. 20줄도 길다. 들여 쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 그 한 가지만을 해야 한다. 한 가지란 무엇인가? 지정된 함수 '이름' 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다. 확인하는 방법, 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다. 함수 당 추상화 수준은 하나로! 근본 개념 세부 사항 ex) getHtml() .append("\n") 추상화 수준을 일관되게 적용할 것 위에서 아래로 추상화 수준이 낮은 함수가 위치한..

의미 있는 이름

제목 : 클린 코드 저자 : 로버트 C. 마틴 범위 : 2장 의미 있는 이름 기억하고 싶은 것 그릇된 정보를 피하라 서로 흡사한 이름을 사용하지 않도록 주의한다. 의미 있게 구분하라 (읽는 사람이 차이를 알도록 이름을 지어라) 연속적인 숫자를 덧붙인 이름은 의도적인 이름과 정반대다. 요지는 zork라는 변수가 있다는 이유만으로 theZork라 이름 지어서는 안 된다는 말이다. 주의 : info, data, variable, table 등 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 긴 이름이 짧은 이름보다 좋다. 검색하기 쉬운 이름이 상수보다 좋다. 이름 길이는 범위(스코프) 크기에 비례해야 한다. 전역변수나 상수는 검색하기 쉬운 이름이 바람직하다. 자신의 기억력을 자랑하지 마라 문자 하..

깨끗한 코드야말로 더 빨리 가는 유일한 방법

제목 : 클린 코드 저자 : 로버트 C. 마틴 범위 : 1장 깨끗한 코드 기억하고 싶은 것 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. 우리 모두는 좋은 코드가 중요하다는 사실을 안다. 왜? 오랫동안 나쁜 코드에 시달려왔으니까. 회사가 망한 원인은 바로 나쁜 코드 탓이었다. 나중에 손보겠다고 생각한 경험이 있다. (중략) 나중은 결코 오지 않는다. 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 그러다가 마침내 0에 근접한다. 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다. 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. 깨끗한 코드는 한 가지를 제..

소프트웨어는 80% 이상이 '유지보수'다

제목 : 클린 코드 저자 : 로버트 C. 마틴 범위 : 추천사 ~ 들어가면서 기억하고 싶은 것 소프트웨어는 80% 이상이 소위 "유지보수"다. 사소한 것에 정직해야 한다. (중략) 자신에게 정직하라는 뜻이다. 깨끗한 코드를 작성하는 방법은 배우기 어렵다. (중략) 고생을 해야한다. 떠오르는 생각이나 질문 유지보수를 즐길 수 있어야 개발을 더 즐길 수 있겠구나 자신에게 정직한 것은 코드 외에 삶에서도 정말 중요한 것 같다 이론을 배우면 반드시 코드로 구현해보자. 반드시! 더 알아보고 싶은 것 인터페이스는 무엇이고, 인터페이스가 프로그램이라는 것은 어떤 의미일까? 참고 : https://enjoyplaying.tistory.com/33 설계가 코드 속에 존재한다는 것은 어떤 의미일까?