실용주의 프로그래머
-
실용주의 프로그래머 8장 - 프로젝트 전에Book Study 2024. 3. 4. 20:35
나의 키워드 요구 사항의 구렁텅이 불가능한 퍼즐 풀기 함께 일하기 애자일의 핵심 여러분 그리고 여러분의 팀은 프로젝트를 시작할 때 요구 사항을 파악해야 한다 (p.349) 요구 사항의 구렁텅이 완성이라는 것은 더 이상 더할 것이 없을 때가 아니라, 더 이상 뺄 것이 없을 때 달성되는 것이다. - 앙투안 드 생텍쥐페리 많은 책과 튜토리얼에 따르면 ‘요구 사항 수집’은 프로젝트의 초기에 이뤄진다. 수집이라는 말은 왠지 베토벤의 전원 교향곡이 배경 음악으로 부드럽게 울려 퍼지는 가운데 행복한 분석가들이 주변에 널려 있는 지식 덩어리를 주워 담는 장면을 연상케 한다 (p.350) 요구 사항이 이미 널려 있다는, 고로 그것들을 쉽게 찾아서 바구니에 주워 담고 행복하게 가던 길을 계속 갈 수 있다는 느낌을 풍긴다...
-
실용주의 프로그래머 7장 - 코딩하는 동안Book Study 2024. 2. 20. 20:28
나의 키워드 파충류의 뇌에 귀 기울이기 우연에 맡기는 프로그래밍 알고리즘의 속도 리팩터링 일단 코딩에 들어가면 대부분 기계적인 작업, 즉 설계 내용을 컴퓨터가 실행할 수 있는 문장으로 바꾸는 일만 하면 된다고들 많이 생각한다. 이런 태도가 소프트웨어 프로젝트가 실패하는 가장 큰 원인이다. 이런 태도 때문에 많은 시스템이 결국 너저분해지고, 비효율적이 되고, 구조가 망가지고, 유지 보수가 힘들어지고, 한마디로 완전히 잘못되고 만다. (p.273) 적극적으로 자기 코드에 대해 생각하지 않는 프로그래머는 우연에 맡기는 프로그래밍을 하는 것이다. 코드가 작동하긴 하지만 왜 그렇게 작동하는지 설명은 못한다. (p.274) 테스트는 버그를 찾는 작업이 아니다. 여러분의 코드에 대한 피드백을 받는 작업이다. 파충류의..
-
실용주의 프로그래머 스터디 2장 - 실용주의 접근법Book Study 2024. 2. 19. 19:32
나의 키워드 직교성 가역성 추정 1. 직교성 (orthogonality) ‘직교성’은 기하학에서 빌려 온 용어다. 그래프와 축과 같이 두 직선이 직각으로 만나는 경우 직교한다고 말한다. 하나가 바뀌어도 나머지에 어떤 영향도 주지 않는 것을 의미한다. 컴퓨터 과학에서 이 용어는 일종의 독립성이나, 결합도 줄이기(decoupling) 를 의미한다. (p.54) 직교적인 시스템을 작성하면 두 가지 큰 장점이 있다. 바로 생산성 향상과 리스크 감소다 (p.57) 1.1) 생산성 향상 변화를 국소화해서 개발 시간과 테스트 시간이 줄어든다. 상대적으로 작고, 자족적인 컴포넌트들을 작성하는 것이 하나의 커다란 코드 덩어리를 만드는 것보다 더 쉽다. (p.57) 1.2) 리스크 감소 직교적인 접근법은 모든 개발 작업에..
-
실용주의 프로그래머 스터디 6장 - 동시성Book Study 2024. 2. 13. 20:43
들어가며 안녕하세요, 오랜만에 블로그 글로 찾아뵙습니다! 즐거운 2024년 보내고 계신가요? 연휴가 포함되어 있더라도 사내 스터디 요일은 언제나 동일하기 때문에 미리 준비하는 차원에서, 연휴 기간에 공부를 시작하게 되어 미리 글을 남기게 되었습니다. 작년 연말부터 회사에서 타 팀 개발자 분들과 실용주의 프로그래머를 스터디 책으로 골라 진행하고 있습니다. 사실 스터디를 시작한 지는 6주 이상 되었는데, 6장이 되어서야 정리를 해봐야겠다는 마음가짐이 섰습니다...! 늦었지만 이후 진행되는 부분을 정리하고 앞 장으로 돌아가, 실용주의 프로그래머에 대한 나의 키워드와 팀원 분들의 생각을 공유해 보도록 하겠습니다. 나의 키워드 동시성 병렬성 세마포어 트랜잭션 TODO 자바스크립트에서도 동시성을 보장하기 위해 제공..