메뉴 건너뛰기

박영식 홈페이지

[도서] 코딩호러의 이펙티브 프로그래밍

lispro062015.10.23 00:37조회 수 172댓글 0

    • 글자 크기

사람들은효과적으로 글을 쓰는 방법을 익히면서 평생을 보낸다. 이 과정에는 속임수가 없다. 글을 쓰는 능력은 돈을 주고 살 수도 없다. 스스로 열심히 익히는 방법 외에는 다른 방법이 없다.


바로 그렇기 때문에 글을 쓰는 것을 두려워하는 사람들은 블로그를 시작해야 한다.


그것은 일종의 운동과 같다. 아무리 몸매가 엉망인 사람이라도 매주 몇 번씩 운동을 열심히 하다 보면 몸매가 차츰 나아지기 마련이다. 자신의 블로그에 짧은 글이나마 일주일에 몇 차례씩 글을 올리면 글쓰기 능력도 차츰 나아진다. 글을 쓰는 것이 무서워서 글쓰기를 회피하면 엉망인 몸매로 평생을 살아가야 한다. 30쪽


초보 프로그래머 혹은 실력은 있지만 열정이 부족한 프로그래머는 원격근무를 하면서 성과를 내기가 어렵다. 적어도 전형적인 관리자나 투덜거리는 팀 리더가 그들의 목 뒤에 콧김을 내뿜지 않으면 말이다. 상처에서 피 대신 1과 0이라는 비트가 흘러내리지 않는 사람, 혹은 스스로 성과를 낼 수 있는 사람이라는 확실한 증거가 있는 사람이 아니라면 그런 사람과 원격근무를 통해 일할 생각은 하지 않는 것이 좋다. 163쪽


사용자는 미쳤다. 자동화된 테스트 스위트는 실제 베타 테스터들이 현실 세계에서 수행하는 베타 테스팅에 미치지 못한다. 사용자는 예측 불가능하기 때문이다. 사용자들은 자기가 선호하는 코드의 경로를 갖기 마련이다. 사용자들은 자신의 PC에 이상한 소프트웨어를 설치해 놓고 있다. 사용자는 미쳤다. 여기에 논쟁의 여지가 없다. 이러한 사용자들에 비해 컴퓨터는 지나칠 정도로 이성적이다. 293쪽


당신의 애플리케이션이나 웹사이트가 사용자의 행동을 유용하고 의미 있는 방식으로 수집하게 만들어라. 사용자의 피드백만 듣고 행동을 결정하지 말아야 한다. 사용자가 제공하는 피드백에 연결 지을 수 있는 실제 행동 데이터를 반드시 가지고 있어야 한다. 사용자의 피드백을 무시하는 것은 궁극적으로 당신을 실패로 몰아넣을지도 모른다. 하지만 모든 사용자의 요청에 맹목적으로 반응하는 것은 당신을 확실한 실패로 몰아 넣는다. 316쪽


사용자는 정말 "왜 그렇게 한 거지? 제대로 정신을 갖고 이런 행동을 한 것인가?"라는 생각이 들 만한 행위를 한다. 그래서 입력에 대한 로그를 수집하는 건 참으로 중요하다. 이미 그것을 하고 있는 나로써는 상당히 흥미로운 대목이었으며, OS와 제조사에서 백그라운드 작업으로 로그 수집을 하는 것에 대해 조금 더 잘 이해하게 되었다. 그러나 몰래 수집하는 듯한 느낌을 줄이기 위해, 사용자 정보를 가져가는 행위는 조금 더 공개적으로 하면 좋겠다.

lispro06 (비회원)
    • 글자 크기
[도서] 녹지대 (by lispro06) [글쓰기] 나는 테스터다. 단위 테스트는 지양한다. (by lispro06)

댓글 달기

[도서] 녹지대

[원문보기]

박경리의 소설이다.

 

"무슨 일이든 할 때까지가 좋지. 다 이루어좋고 보면 쓸쓸하고 외로워지는 거지." 83쪽

 

"원래 연애란 순탄하지 않어." 238쪽

 

 

문학이 끊긴,........ 북카페를 떠올려 줄만한 책.

 

대학생 때, 시화전을 보았던게 떠오른다. 요즘에도 대학 축제 때 시화전을 하는지.....

[도서] 녹지대

[원문보기]

박경리의 소설이다.

 

"무슨 일이든 할 때까지가 좋지. 다 이루어좋고 보면 쓸쓸하고 외로워지는 거지." 83쪽

 

"원래 연애란 순탄하지 않어." 238쪽

 

 

문학이 끊긴,........ 북카페를 떠올려 줄만한 책.

 

대학생 때, 시화전을 보았던게 떠오른다. 요즘에도 대학 축제 때 시화전을 하는지.....

[글쓰기] 나는 테스터다. 단위 테스트는 지양한다.

[원문보기]

개발자 입장에서 실제 사용자는 어떤 식으로 입력할지, 기능을 사용할지 알 수 없다.


물론 초기에 "A는 B에 입력하고, C를 D와 같이 사용하세요." 라고 하더라도, " A?, B?, C?, D? == 가, 나, 다, 라 "로 흘려 들을 수 있다. 사실 제품 제작자가 아닌 내 자신이 사용자가 된다면, 설명서에 집중하여 최대한 시행착오를 줄이려 노력한다 해도 결국 한 두가지를 간과하여 실패에 이른다.


자주 짧은 코드를 작성하고, 간단한 단위의 배포 소스를 수정해 적용하는 업무를 하고 있다. 아무리 코드의 양이 적더라도 단위 테스트 등을 통해 품질을 관리할 필요가 있다. 이는 확장성에 닿아 있기 때문이다. 그러나 나는 게으르기 때문에 테스트를 위한 코딩은 하지 않는다. 단지 디버깅 로그를 사용할 뿐이다. 또한 핑계를 하나 더 붙여서 사용자의 입력과 행동이 단위 테스트 범위를 넘어서는 경우가 많아 차라리 사용자 테스트를 통해 버그를 수정하고, 축적된 데이터를 분석하는 것을 선호한다.


그동안은 나의 게으름을 완전히 숨겨왔지만, 이를 정당화(?)해 줄만한 글을 읽었기에 옮겨 놓는다.


테스트는 해야 한다. 테스트, 테스트, 테스트. 하지만 나는 단 한번도 (a) 설정하는 데 걸리는시간이 100 시간/사람 이상 걸리지 않거나 (b) 수많은 공학적 자원을 빨아들이지 않거나 (c) 실제로 상관이 있는 버그를 발견하는 구조적인 테스트 프로그램을 본 적이 없다. 단위 테스트라는 것은 수많은 엔지니어에게 지루함을 견디고 아무것도 찾아내지 않는 것의 대가로 급여를 지급하는 수단에 불과하다 - 윌 쉬플리-


개인적으로 나는 테스트 주도 개발이라 생각했다. 작은 코딩을 하고 테스트하여 원하는 결과를 얻고, 같은 방식으로 새로운 함수를 만들거나 확장하는 식으로 코딩을 하기 때문이다. 그러나 적확하지는 않음을 깨달았다. 이런 개발방식은 차라리 주먹구구식에 가까울지도 모른다. 그래도 설계가 어느 정도 포함되어 있고, 규모 자체가 워낙 작기에 효율적이다.


보안 점검에서 좀 더 과격한 테스터의 관점을 더한다면 아래의 조언을 받아들일 수 있다.


과감하게 말하겠다. 당신의 망할 프로그램을 반드시 테스트해야 한다. 실행하라. 사용하라. 이상한 일들을 해보라. 키보드를 망가뜨려라. 지나치게 많은 항목을 더해보라. 2MB 짜리 텍스트 파일을 넣어보라. 그것이 어떻게 오동작하는지 발견하라. 이렇게 하는 것이 매우 중요하기 때문에 나는 지금 고함을 지르고 있다. - 윌 쉬플리 -


한국은 너무과도한 테스트를 했는지도 모른다. 정말 2MB 를 넣었더니 디버깅이 불가능한 수준으로 갔다. IT 테스트베드로 좋다는 것은 인정하지만, 실험정신이 너무 강했는지도 모른다.


내가 제작한 프로그램은 사용자가 IT 관련이 아니다. 물론 이것은 중요하지 않을 수도 있다. 정말 생각지도 못한 사용이 일어나기도 하여, 끔찍한 결과가 나온 적도 있다.(그렇게 끔직하진 않다.) 아무튼 난 단위 테스트라기 보다는 사용전 테스트와 사용자 테스트를 통해 코딩을 한다. 이건 단순 테스트 주도 개발이 아닌 "주먹구구식 사용자 테스트 주도 개발" 정도로 불러본다.

[글쓰기] 당신은 왜 대출을 하지 않는가!

[원문보기]

연체료 없고, 별로 조건도 따지지 않으며 무한대로 대출하여 지적 재산을 증식할 수 있는 도서 대출을 하지 않는 사람은 바보다!




9등급도 대출 가능합니다.


이 지역에 거주하지 않으신다면, 직장 재직 증명서로 대출이 가능합니다.


직장만 있으면 OK.


그래도 안 될 것 같다면.... 학생자격으로 가입 가능.


그러나 여기에도 제한이 있습니다.


2주만에 반환해야하는 조건이있습니다.


1주일 정도는 연기해 드릴 수 있습니다.


그러나 기간을 어길 경우 해당 기간 만큼 대출해드릴 수 없습니다.


놀라지 마십시오. 연체료 NO, 반납만 잘 한다면 계속 대출할 수 있습니다.


한달에 수십에서 수백의 새로움을 대출 할 수 있습니다.


1? 3? 5까지 해드립니다.


연체가 너무 길어져 대출 정지라고요?


광복절 특사 기대하세요! 

[도서] 백세코딩

[원문보기]

도구를 준다고 문화가 바뀌지 않으며 문화가 바뀌어야 도구의 효용가치가 있다. 56쪽


필자의 주변 사람들 중 대기업에 경력직으로 입사한 경우를 살펴보면, 대부분 5년 이내에 자신의 경험들을 최대한 회사에 제공하면서 최고의 대우를 받은 다음, 그 필요성이 상실되면 권고사직 당하는 것을 어렵지 않게 발견한다. 당장 필요한 최고의 경험은 대기업에서 최고의 대우를 받을 수 있는 조건 중의 하나가 된다. 하지만, 역시 실대 대기업에서 오랫동안 직장생활을 할수 있는 정치적인 기반을 만들기에는 어렵다는 것이다. 214쪽


[도서] 잠시 검열이 있겠습니다

[원문보기]

"한 번 거짓말을 하면 군중들은 믿지 않는다. 두 번 거짓말하면 의심하지만, 계속 거짓말을 하면 믿게 된다."(괴벨스. 나치 선전장관) 이런 세뇌는 다른 생각의 여지를 차단한다는 점에서 또다른 검열의 기능을 보여준다. 123쪽


각종 경연대회를 주관하여 총독부 고관들의 이름으로 상을 주었는데, 물론 상금과 문화적 권위(상징자본)가 주어졌다. 일본어 번역료를 지원해주기도 했고 징병이나 징용까지 유예해주기도 했다. 해방 이후에도 비슷했다. 예컨대 미술에서라면 식민지 시기의 '선전(조선 미술전람회)'이 해방 이후 '국전(대한민국 미술전람회)'으로 이름이 바뀌어 지속되고 있다. 식민지 시기에 뿌리를 두면서 오늘에 이어지는 각종 문화인 단체들의 기원은 이렇듯 '불순'하다. 206쪽


그중에 참 우울한 노가바가 있다. <생일 축하합니다> 노래를 '왜 태어났니'라고 바꿔 부른다는 것이다. '얼굴도 못생긴게' '인구도 많은데' 또는 '공부도 못하는 게' 등 다양한 버전이 존재한다. 물론 재미와 농담을 곁들인 것이라고는 하지만, 섬뜩하기도 하다. 유신독재 시기에도 삶과 탄생 자체를 부정하는 노가바는 없었던 것으로 기억한다. 요즘 고등학생들이 얼마나 힘든 삶을 강요받고 있는지 짐작케 한다. 261쪽


요즘 이슈는 역사교과서 국정화다. 쓰레기들이 개소리를 하는데 차마 들을 수가 없다.

[도서] 진짜 소프트웨어 개발 이야기

[원문보기]

당신이 생각하는 것과 달리 매일 할 일을 반복하는 것은 실제 훈련이라고 보기 어렵다. 회의에 참석한다고 해서 사람을 다루는 기술이 연마되는 것도 아니다. 이메일에 답장을 쓴다고 해서 타이핑 실력이 느는 것은 아닌 것과 마찬가지다. 뭔가에 대한 실력을 키우려면 별도의 시간을 마련해서 집중적으로 훈련해야만 한다. ~중략~

내가 알고 있는 한 뛰어난 엔지니어는 바로 이처럼 끊임없이 이뤄지는 훈련 덕분에 그 정도의 실력을 유지한다. 신체적으로 좋은 몸매를 유지하고 있는 사람은 정기적으로 운동을 하고, 계속 운동을 한다. 그렇게 하지 않으면 몸매가 망가지기 때문이다. 프로그래밍과 엔지니어링도 이와 마찬가지다. 97쪽


제가 제안하고자 하는 것은 다른 접근법입니다. 하나를 더 가지려고 하는 것이 아니라, 하나를 적게 가지려고 하는 겁니다. 더 많이 하는 것이 아니라 더 적게 하는 겁니다. 경쟁자를 이기기 위해 오히려 더 적게 하는 방법입니다. 122쪽


하지만 대다수의 사람도 책을 읽지 않는다. 쓰지도 않는다. 대다수의 소프트웨어 개발자들은 소프트웨어 개발에 대한 책을 읽지 않는다. 소프트웨어 개발에 대한 웹사이트를 읽지 않는다.

프로그래머들이 책을 읽지 않는다면 프로그래밍을 어떻게 배우는 것일까? 그들은 고전적인 방법을 통해 배운다. 소매를 걷어 올리고 실제로 코드를 작성하면서 두 번째 창에 열려 있는 인터넷에 존재하는 집단 지성을 활용하는 것이다. 인터넷은 프로그래밍 서적을 쓸모없는 것으로 만들었다. 인터넷은 더 빠르고, 더 효율적이다. 그렇기 때문에 프로그래밍과 관련된 정보를 인터넷에서 찾아보는 것은 당연히 더 현명한 행동이다. 나는 더그 맥쿠인이 '나는 왜 책을 읽지 않는가에서 적절하게 설명한 자신의 경험이 상당히 일반적이라고 생각한다. 271쪽


조엘의 책 이후 좋은 책을 발견했다. 번역은 임백준

[도서] 한국이 싫어서

[원문보기]

영화 베테랑을 봤다. 오십보 백보라지만, 그래도 넌 좀 심했다. 거기서 진경이 한 말은 참 내가 반성해야할 말이다.

"흔들리더라"


아무튼 답은 없다. 좀 덜 억울하게 사는게 나을 뿐이다.


"한의사들 다 망했어."

"그래? 우리 때만 해도 한의대가 거의 의대 수준 아니었나?"

"비아그라랑 홍삼 때문에 다 망했어. 안 그래도 한의사가 많은데. 요즘 누가 보약 먹어? 그게 다 비아그라 나오기 전에 정력 보충한다고 먹던 거지."

"약사는 전망 괜찮아?"

"약사도 뭐 어느 날 갑자기 슈퍼마켓에서 어지간한 약 다 팔게 되면 망하겠지. 그런데 그런 날은 안 와."

경윤이가 단어하더라.

"왜?"

"약사들은 조직력이 탄탄하거든. 콩가루인 한의사들하고 달라."

그 말을 듣고서도 별로 안심은 안 되더라. 외국계 약국 체인이 한국에 대거 들어와서 약값 할인 판매를 한다거나 하면 조직력이 아무리 튼튼해도 도리 없는 것 아닌가? 그렇게 생각하니까 회계사의 앞날도 그리 안전해 보이지 않더라고. 지금이야 시험으로 사람 수 조절하니까 고수익일 수 있지. 그런데 어느 날 갑자기 구글이나 마이크로소프트에서 자동 회계 프로그램 같은 걸 만든다면? 회계는 정말 그런 프로그램이 나올 수 있어.

 어떻게 보면 당연한 건데, 내가 뭘 하겠다고 나서건 그게 성공할지 성공 안 할지는 몰라. 지금 내가 의대 가서 성형외과 의사 되면, 로스쿨 가서 변호사 되면, 본전 뽑을 수 있을까? 아닐걸? 10년 뒤, 20년 뒤에 어떤 직업이 뜰지 아는 사람은 아무도 없어. 그러니까 앞으로 전망 얘기하는 건 무의미한 거고 내가 뭘 하고 싶으냐가 정말 중요한 거지. 돈이 안 벌려도 하고 싶은 일을 하면 좀 덜 억울할 거 아냐.


150페이지 ~ 151페이지

정보보안기사 필기

[원문보기]

- 축하합니다. 박영식님은 제6회 정보보안기사 필기 시험에 합격 하셨습니다.

과목점수과락여부
시스템 보안65통과
네트워크 보안75통과
어플리케이션 보안65통과
정보보안 일반45통과
정보보안관리 및 법규75통과
총점 (평균)325 ( 65.0 )합격

[도서] 이미도, 씩스팩

[원문보기]

Forest for the trees.


웹을 검색할 때는 숲을 보지 못합니다. 나무조차도 보지 못합니다. 본다고 해봤자 겨우 잔가지와 나뭇잎뿐입니다.


많은 어록들이 있지만, 책에서 직접 확인하는게 좋겠다.

이전 1 ... 28 29 30 31 32 33 34 35 36 37... 77다음
첨부 (0)
위로