뉴욕의 프로그래머

2022. 3. 12. 00:50책, 1년에 100권

반응형

중고나라에 올라온 IT 서적들 묶음 판매글을 보고 구입한 책 묶음에 포함되어있던 책. 

가볍게 읽을만한 소설이다. 이런 프로그래머도 있구나 싶은. 아마도 저자 임백준의 직장에서 경험했던 사건들을 소설속에 풀어 놓은 것 같다. 

 

 

 

   책 내용 정리

 

회사에서는 버그(bug)나 업무(task)를 기록하고 관리하기 위해서 아틀라시안(Atlassian)에서 만든 웹 기반 프로그램인 지라(JIRA)를 사용하고 있는데 지라에서는 버그의 우선순위를 P1에서 P5까지 다섯 단계로 구분해 놓았다. P1이나 P2는 소프트웨어가 출시되기 전에 반드시 수정되어야 하는 버그나 업무를 의미하고....

이책이 출반된지 무려 15년이나 지났으니 지금은 소프트웨어 제작 업무 관리 프로그램이 많을 듯~! 찾아보자

 

패일-패스트(fail-fast). 어느 쓰레드가 연결 리스트의 이터레이터(iterator)를 이용해서 데이터를 하나씩 읽어나가는 동안 다른 쓰레드가 리스트의 구조를 변경(새로운 데이터 추가, 혹은 데이터 삭제 등)하면 이터레이터는 컨커런트 익셉션을 발생시키면서 곧바로 루프(loop)를 빠져나오기로 되어있는데 이걸 패일-패스트라고함. 

 

리스트에 대한 참조를 통째로 리턴하는 퍼블릭 메쏘드가 있으면 프로그램 내부의 다른 객체가 리스트에 직접 접근할 수 있다. 객체는 리스트를 내부에 감추어 놓고 자기만 접근 하고 있는 것 처럼 착각하지만 이 리스트는 언제든 밖으로 나가서 내용이 변경 될 수 있다. 이런 경우 리스트의 내용을 복제(clone)한 복사본을 리턴하는 것이 프로그래밍의 기본 초식이다.  

 

코딩이 끝난느 시점은 소스코드의 변경이 끝나는 시점이 아니라 자신의 코드를 확인하기 위한 유닛테스트 코드의 작성이 끝나고, 요구사항이나 버그 리포트에 적힌 내용을 한 줄 씩 확인하면서 철저하게 기능적 테스트를 수행하고, 필요한 부분이 있으면 다시 한번 수정하고, 최종적으로 코드리뷰가 끝나는 시점을 의미한다. 이 모든 것이 '코딩'의 기본조건이다. 

 

여러 개의 쓰레드가 동시에 접근하는 변수 a가 적절한 동기화나 volatile 키워드(자바에서 쓰이는건가?)로 보호되지 않는 경우에 얼마든지 일어날 수 있는 일이다. 이와 같은 현상을 메모리의 가시성(memory visibility)문제라고 부른다. 

 

매일 아침에 모여서 서로의 할 일을 확인하고, 기술적인 문제를 짧게 토론하는 스크럼 미팅(scrum meeting)을 가졌다. 스크럼 미팅이란 익스트림 프로그래밍에서 강조하는 방법론의 하나로, 같은 프로젝트에서 일하는 프로그래머들이 매일 아침에 모여서 세가지 질문을 짧게 주고 받는 것을 의미한다. 나는 어제 무엇을 했는가? 나는 오늘 무엇을 할 것인가?, 그리고 현재 내가 맞닥뜨린 기술적, 조직적 난제는 무엇인가. 

 

 

 

 

 

 

반응형

'책, 1년에 100권' 카테고리의 다른 글

세이노의 가르침  (10) 2023.09.02
기적의 암기법  (0) 2022.12.16
전략의 탄생 (Art of Strategy)  (0) 2022.03.08
객체지향 사고 프로세스  (0) 2021.12.30
객체지향의 사실과 오해  (0) 2021.12.10