본문 바로가기
Book

[독서 기록] 개발자의 글쓰기, 저자 김철수, 출판 위키북스, 2019

by Renechoi 2022. 11. 26.
 
개발자의 글쓰기
이 책은 개발자의 글쓰기 능력을 종합적으로 향상하기 위한 책이다. 코드 안에서는 함수와 변수 이름을 짓는 것부터 주석 쓰는 법, 에러 메시지 쓰는 법까지 알려준다. 코드 밖에서는 릴리스 노트, 장애 보고서, 개발 가이드를 어떻게 하면 잘 쓸 수 있는지를 알려준다. 외주 개발을 하는 개발자를 위해 SI 제안서의 기술 부문을 설득력 있게 쓰는 법도 놓치지 않았다. 블로그를 운영하려는 개발자나 IT기업을 위해 기술 블로그를 쓰는 법과 운영하는 팁도 담았다.
저자
김철수
출판
위키북스
출판일
2019.10.04

개발자의 글쓰기, 저자 김철수, 출판 위키북스, 2019

 


기획자나 관리자의 글쓰기에 논리력, 설득력, 실행력이 중요하다면, 개발자의 글쓰기에는 정확성, 간결성, 가독성이 중요하다

- 20p

 

 

[입력 데이터]

입력 데이터는 3차원 벡터다. 색상 RGB 값을 각각 사용하기 때문이다.

 

문장을 쉽게 쓰려면 이처럼 간단한 문장 구조로 핵심만 말한 뒤, 필요에 따라 부가 설명을 하면 된다. 이때 문장의 주어를 가져다가 소제목으로 만들면 자연스럽게 문단을 구성할 수 있다.

- 27p

 

 

문어세어 계층은 굵기, 모양, 밑줄, 줄 간 거리 등으로 표현된다. 

- 33p

 

 

어쩌면 개발자가 가장 힘들어하는 일이 이름 짓기일지도 모른다. 실제로 2013년에 Quora 사이트와 Ununtu 포럼에서 개발자 4,522명에게 설문했더니 그들의 절반이 이름 짓기가 가장 힘들다고 대답했다.

- 47p 

 

i는 변수 이름이지만 d는 아니다

- 56p 

 

 

배열을 복수로 나타내는 방법이 있다. userName을 userNames라고 쓰는 것이다. 변수명에 복수형을 나타내는 -s 가 붙어 있기 때문에 쉽게 알아볼 수 있다. 

- 58p 

 

함수명 중간에 사용할 때는 -s가 눈에 잘 띄지 않는다.

checkUserNamesUnder2Characters() 

 

그래서 변수명은 그냥 두더라도 함수명에는 -s 대신 다음과 같이 'array'나 'list of'를 쓰는 편이 더 나을 수도 있다. 

 

checkUserNameArrayUnder2Characters()

- 59p 

 

 

중요한 단어를 앞에 쓴다 

 

변수 이름을 여러 단어로 조합할 때는 순서를 잘 정해야 한다. 예를 들어 총 방문자 수를 나타내는 변수를 보통 totalVisitor로 그대로 번역해 변수로 사용하곤 한다. 하지만 이 변수를 다시 사용할 때는 total로 검색을 시작하는 경우보다 visitor로 검색을 시작하는 경우가 더 많을 것이다. 따라서 total이라는 수식어보다는 본래 의미를 뜻하는 visitor를 앞에 쓸 것을 추천한다 

 

int totalVisitor -> int visitorTotal 

- 60p 

 

 

좋은 이름이 가진 5가지 특징 

- easy to Search 검색하기 쉽고

- easy to Mix 조합하기 쉽고

- easy to Agree 수긍하기 쉽고

- easy to Remember 기억하기 쉽고

- easy to Type 입력하기 쉽고 

- 65p 

 

 

SERVER_TIMEOUT -> ERROR_SERVER_TIMEOUT 

big_strong_text -> title 

 

- 68 ~ 70p

 

 

처음부터 주석 없이 코딩하는 연습을 하자

- 77p

 

 

코드는 의미를, 주석은 의도를 

- 83p 

 

 

개발자용 에러 메시지와 사용자용 에러 메시지를 분리하자

- 99p

 

사용자 에러 메시지에는 에러의 내용, 에러의 원인, 에러 해결방법이 포함되어야 한다.

- 102p 

 

 

 

엘리베이터 스피치라는 말이 있다. 투자자를 엘리베이터에서 만났을 때 그 짧은 시간에 사업 계획의 핵심만 종합해 말하는 방식을 말한다. 이 경우 다음과 같은 투자자의 질문에 대답할 수 있어야 한다.

 

" 그래서, 한마디로 뭘 한다는 거죠?'

" 그래서, 핵심이 뭔가요?"

 

체인지 로그도 마찬가지다. 상사나 고객이 체인지 로그를 하나씩 뜯어보기 전에 이번 릴리스가 이전과 비교해서 뭐가 다르고 핵심과 컨셉이 무엇인지 한마디로 알려줘야 한다. 그러려면 릴리스 내용 전체를 종합해서 한 문장으로 만들고 그것을 체인지 로그 첫 줄에 적어야 한다.

- 127p 

 

예를 들어 다음과 같이 세 가지 방식으로 버전을 올렸다고 하자.

1. 버전 1.2.2 -> 1.2.3

2. 버전 1.2.2 -> 1.3.0 

3. 버전 1.2.2 -> 2.0.0 

 

1번은 세 번째 자리에서 버전을 올렸다. 이것은 간단한 패치를 의미한다. 그래서 이전 버전과 호환된다. 

 

2번은 두 번째 자리에서 버전을 올렸다. 두 번째 자리에서 버전을 올리면 그 다음 세 번째 자리는 0으로 초기화된다. 이것은 새로운 기능을 추가했을 때다. 1.3.0은 1.2.x와 일부 호환될 수 있으나 새로운 기능을 1.2.x에서 사용할 수는 없다. 

 

3번은 첫 번째 자리에서 버전을 올렸다. 이 경우는 전면적인 업그레이드여서 이전 버전과는 거의 호환되지 않는다고 볼 수 있다. 프로그램의 명맥은 잇겠지만 완전히 다른 프로그램이다. 

 

- 137p 

 

깃허브의 공동창업자인 톰 프레스턴 베르너가 정한 Semantic Versioning을 제시한다. ... 

 

- 버전은 X.Y.Z 형태로 한다. X, Y, Z는 자연수로서 각각 독립적으로 증한다. X, Y, Z를 구분하는 점은 소수점이 아니라 구분 기호다. 따라서 1.1.12는 1.1.9보다 높은 버전이다. X를 Major, Y를 Minor, Z를 Patch로 간편하게 이해해도 좋다. 

 

- X가 0인 것은 초기 내부 개발에서만 사용하고 최초 공개 API는 1.0.0이어야 한다. X는 기존 버전과 호환되지 않는 변화가 있을 때만 1씩 올린다. 

 

- Y는 기존 버전과 호환되는 새로운 기능이 추가됐을 때 1씩 올린다. 큰 규모의 패치가 있을 때 작은 규모의 패치와 구분하기 위해 Y를 올릴 수도 있다. 만약 X를 올리면 Y는 초기화되어야 한다. ... 

 

- Z는 기존 버전과 완전히 호환되면서 작은 규모의 패치가 있을 때 1씩 올린다. X나 Y를 올리면 Z는 0으로 초기화돼야 한다.

 

- 138p 

 

 

문제와 문제점을 구별하자 

 

- 문제 : 사용자가 급증하면 서버가 정지

- 문제점 : 잘못된 시스템 설정, 프로그램 비 최적화, 잘못된 DB 설계 

 

- 140 ~ 141p 

 

 

보카시 장난으로 말을 하면 의사결정을 할 수 없다. 그래서 개발자는 좀 더 정치적으로 확정해서 말할 필요가 있다. 재발할지도 모른다면 그냥 재발 가능성을 20%라고 말하면 된다. 

- 161p 

 

 

의견을 쓰려면 근거를 대자

- 184p 

 

 

'한 번만 받으면 됩니다'를 개발자의 의도 없이 명확하게 쓰려면 '한 번 받습니다'나 '한 번만 받습니다'로 고치면 된다.

- 187p 

 

 

 

개발문서에서 서사는 결국 개발자와 독자 사이의 줄다리기 같은 것이다. 개발자는 의미 없는 것은 빼고 중요한 것은 넣기를 원한다. 독자도 의미 있는 것만 남고 무엇이 중요한지 구별해 주기를 원한다. 

 

... 좋은 방법은 기술의 범용성을 기준으로 하는 것이다. 

 

- 198 ~ 199p 

 

 

 

첫째, 주제 의식을 버리고 소재 의식으로 쓰자 

 

주제 의식이 민족이나 권선징악, 자존감이나 자본주의 같은 추상적 가치를 기반으로 한다면 소재 의식은 특정한 대상이나 상황에 대한 자기만의 관점이나 해결 방안을 뜻한다.

- 233p 

 

둘째, 독자 수준이 아니라 자기 수준으로 쓰자 

- 235p 

 

셋째, 재미있게 글을 쓰자.

 -239p 

 

 

우아한형제들 기술 블로그는 주말 밤에 야근 하는 개발자들끼리 대화하듯이 자연스러운 표현과 실감 나는 구성, 자극적인 제목과 제약 없는 묘사가 두드러진다. 그래서 약간은 비전무적이면서 글을 대충 쓴다는 느낌도 든다.

 

... 목차와 내용을 보면 네이버나 카카오 기술 블로그 스타일과 완전히 다르다는 것을 알 수 있다. 이것은 확실히 기업 문화의 차이에서 기인한다. 네이버와 우아한형제들의 기업 문화의 차이가 기술 블로그의 문체나 구성에도 그대로 적용되는 것이다.

- 267p 

 

 

반응형