[실용주의 프로그래머] GUI

“하지만 모든 작업을 GUI로만 한다면, 여러분이 가진 환경의 전체 능력을 이용하지 못하게 된다. GUI의 장점은 WYSIWYG(What You See Is What You Get), 즉 여러분이 보는 것이 여러분이 얻는 것이라는 것이다. 단점은 WYSIAYG(What You See Is All You Get), 즉 여러분이 보는 것이 여러분이 얻는 전부라는 것이다.

 GUI 환경의 기능은 일반적으로 설계자의 의도에 따른 제약을 받는다. … 어떤 도구든지 사용 범위는 보통 설계자가 그 도구가 사용되리라고 예상한 작업에 한정된다.

– 앤드류 헌트.데이비드 토머스(지음), 김창준.정지호(옮김), <실용주의 프로그래머>, [15. Shell game] p.140 –

WISDOM : 청중 이해하기

(What) 무엇을 배우기 원하는가?

(Interest) 말하려는 것에서 청중이 관심있어 하는 건 무엇인가?

(Sophisticated) 얼마나 소양이 있는가?

(Detail) 어느 정도의 구체적인 내용을 원하는가?

(Own) 누가 정보를 소유하길 원하는가?

(Motive) 청중이 경청하도록 동기를 주려면 어떻게 해야 할까?

—-

” 우리는 전형적인 개발자가 난해한 기술의 장점에 대해 긴 독백을 읊조리는 동안, 앉아 있는 마케팅 부사장의 눈이 점점 흐리멍텅해지는 회의에 참석해 봤다. 그건 소통이 아니다. 단지 지껄임일 뿐이다. … 청중에 대한 뚜렷한 그림을 가져야 한다.“ 

– 앤드류 헌트.데이비드 토머스(지음), 김창준.정지호(옮김), <실용주의 프로그래머>, [6. 소통하라] p.55 –

[실용주의 프로그래머] expiring assets

”여러분의 지식과 경험이야말로 가장 중요한 전문가적인 자산이다. 그러나 불행히도 지식은 소진되는 자산이다. 새로운 기술, 언어, 환경이 개발됨에 따라 지식은 옛것이 된다.”

– 앤드류 헌트.데이비드 토머스(지음), 김창준.정지호(옮김), <실용주의 프로그래머>, [5. 지식 포트폴리오] p.47 –

===

끊임없이 공부해야 하는 이유이자, 지식과 지혜의 차이를 극명하게 말해준 부분.

“1분 하둡 정리”

“하둡의 화두는 ‘분산’ 입니다.”하둡은 두가지 큰 요소의 결합입니다. ‘처리(계산)’ 와 ‘저장’ 입니다. 즉 ‘분산처리’ 와 ‘분산저장’ 이라고 보면 됩니다. 여러개의 저가형 컴퓨터를 마치 하나인것 처럼 묶어주는 기술이라고 보면 됩니다. (그래서 계산 능력과 저장 공간을 늘립니다) [분산저장]하둡 파일시스템(HDFS: Hadoop Distributed File System) 을 이용해서 파일을 적당한 블록 사이즈 (64MB)로 나눠서 각 노드 클러스터(각각의 개별 컴퓨터) 에 저장합니다. 또한 데이타 유실의 위험이나 사람들이 많이 접근할때 (Access) 할때의 부하처리를 위해서 각 블록의 복사본 (Replication)을 만들어 둡니다. 보통 복사본은 최소 3카피 정도입니다. 왜 이렇게 하냐면 고성능 서버에서 저장공간은 돈이 많이 들어가는 부분입니다. 그것을 저가형 저장소 여러개를 묶어서 마치 레이드 처럼 동작하게 하려는 목적으로 분산저장을 하는것입니다. [분산처리]MapReduce 라는 프레임워크를 이용해서 계산합니다. 프레임워크라는 것이 중요합니다. 즉 분산처리를 위해서 프레임워크를 만들어 둔것입니다. 분산처리를 위해서 프레임워크에 맞추어서 코딩을 하고 하둡 시스템에서 그것을 실행하면 자동으로 분산처리를 해 줍니다. 그 맵리듀스 (MapReduce) 라는 프레임 워크는 Map + Reduce 라는 두가지 형식으로 나누어 집니다. 개념은 간단합니다.Map 함수에서 데이타를 처리를 하고 Reduce 함수에서 원하는 결과값을 계산시킵니다.cf. 쉬운 설명여러가지 설명이 있겠지만 정말 쉽게 설명을 하자면 하둡은 분산을 지원하기 위한 자바를 이용한 ‘가상 OS’ 와 같은 개념으로 보면 가장 편리할 것입니다. (보통 OS 가 파일 시스템 과 잡 스케쥴러를 기반으로 구성됩니다)

[1분 하둡 정리]