Community

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

← Go back
TIL 12. 코딩하는 동안
#pragmatic
2년 전
516
1

TIL (Today I Learned) 날짜

2022.05.28

오늘 읽은 범위

7장. 코딩하는 동안

내용 및 소감

우리는 새로 프로젝트를 시작할 때마다 첫 화면을 보며 막연한 무력감에 휩싸인다. 앞으로 필요하고 설치해야 할 수많은 라이브러리들, 조합해 나갈 코드, 버그를 해결하는데 겪는 어려움, 간단한 오타로 인한 붉은 화면, 한 시간 동안 인터넷을 뒤져도 나오지 않는 해결책... 그러나 이 모든 것을 자신만의 방법으로 이겨내고 정복해나가며 결과를 만들어 나간다.

파충류의 뇌에 귀 기울이기는 우리의 본능이 느끼고 경고하는 것을 무시하지 말라고 얘기한다. 그것을 조금 더 구체화 하고, 설명할 수 있는 글로 옮기며 차분하게 해결해나갈 것을 요구한다.

우연에 맡기는 프로그래밍을 하지 말아라. 신뢰할만한 것을 기반으로 코드를 작성하고 가정으로 하지 말아라. 가정은 기록으로 남겨서 구체화하라.

알고리즘의 속도는 우리가 만든 작업들의 속도가 얼마나 빠르게 처리될수 있는지 묻는다. 그것은 효율적인가? 한정된 시간과 자원을 얼마나 잘 사용할 수 있는가?

리팩터링은 중요하다. 밖으로 드러나는 동작은 유지한 채 내부 구조를 변경함으로 이미 존재하는 코드를 재구성 하는 체계적인 기법이 리팩터링의 정의다. 우리는 종종 발견되는 중복되는 코드, 직교적이지 않은 설계, 변화된 지식, 성능 등 다양한 원인들을 통하여 코드들을 다시 정리하고 써야 한다. 정원의 잡초를 뽑고 관리하듯이 이는 꾸준하게 시행되어야 할 것이다. 그러지 않으면 어느새 무성하게 자란 당신의 코드들이 미관을 해칠것이다.

테스트로 코딩하기는 내 생각을 반박한다. 테스트가 버그를 잡는게 아니라니? 아니다. 테스트를 통해서 많은 것을 다시 알고 고칠 수 있다. 단순히 코드가 돌아가는지 아닌지를 판별하는게 아니라 실제 출시 후에 우리도 몰랐지만 앞으로 생길 수많은 문제들을 바로잡아주는 단계이다.

속성기반 테스트는 테스트의 종류 중 계약과 불변식을 다룬다. 우리가 작성한 코드 중 특정 함수는 어쩌면 우리가 생각했던 것과 다른 기능을 할 수도 있다. 책의 예시처럼 테스트 결과 오로지 참을 보이는 함수 하나 때문에 하마터면 큰 일이 벌어질 뻔했다. 한번 점검해보자.

바깥에서는 안전에 주의하라는 말은 보안을 얘기한다. 니꼬도 자주 사용자를 믿지 말라는 말을 한다. 프로그래밍 우스개소리에선 내 물건을 사용하는건 천재 해커거나 원시인 둘중 하나라는 농담이 있다. 이 단원에선 보안 기본 원칙들과 그 외 다른 규칙들을 소개하며 설명해준다.

이름짓기. 가끔 변수명 짓다가 시간 다 간다는 얘기가 있다. 나도 그런 것 같다. 이해가 쉽고 직관적이면서 적절한 이름을 짓기란 정말 어려운 일이다. 물론 이런 고민을 어느 정도 해소해주는 규칙도 존재한다. 일관성 내에서 변수를 지어라.

1 comment