목록개발 (41)
Dharma
프로그래머들이 너무 많은 고민을 할 필요가 없다. 그대 앞에는 키보드가 놓여 있지 않은가? - 누군가의 말 - 누가 했는지 기억이 안나지만 제가 가끔 인용하곤 하는 말입니다. 너무 기술 문서를 보다 보면 '내가 지금 뭐하고 있나' 라는 생각이 들 때가 있는데 그때마다 이 말을 기억하고 바로 뭔가를 만들어 볼려고 노력하게 됩니다. 어쨌건 키보드를 잡으면 어지간하면 졸음이 달아나기 때문이지요 ㅎㅎ
http://www.ziggytech.net/technology/web-development/experiences-with-node-js-porting-a-restful-service-written-in-java/ - 초간단 요약 - 기존의 자바 서비스하고 있던 부분의 일부를 node.js 로 포팅해서 두개를 벤치마크 해 봄. 자바는 멀티코어 환경에서 테스트하고 node.js 는 cluster 를 안쓰고 단일 코어에서 (아무것도 안하면 단일코어에서 도니 ㅎㅎ) 동작시켜봄 결과는 아래와 같음 씨피유와 메모리는 적게 쓰지만 (훨씬 적게..) 성능은 그리 낫지 않음. 이거저거 바꿔가며 테스트를 하던중 ORM 을 지원하는 Sequelizer 가 느리다는 것을 알아냄, node-mysql 로 바꾸고 나니 바뀐 내..
As programming environments grow in power, and languages become more abstract, the Lisp style of programming is gradually replacing the old plan-and-implement model. - Paul graham 조금 의역을 하자면 (하드웨어 스펙들이 점점 좋아져서 언어별의 속도차이가 별로 티가 안나는) 프로그래밍 환경이 되어가면 갈 수록 , (프로그래밍) 언어들은 점점 더 추상적이 되어 가고 (조금 더 고수준의 언어가 되어 가고) 리습 스타일의 프로그래밍 방법들이 (Bottom-up 프로그래밍 스타일을 말하는 것 같습니다) 옛날 방식의 '계획을 세우고 구현을 하는' 모델을 점차적으로 대체할 것입..
프로그래머로 부터 배우는 코딩 기술 (プログラマから学ぶコーディングテクニック) from Mayuko Sekiya 이거 웹 디자인 하시는 분이라는데.. 왠만한 개발자 보다 수준이 훨씬 높으신 듯 ㅎㅎ
저번에 살짝 언급했던 일을 처리중입니다. ( 요기에서 언급함 ) 뭐 우리가 무슨 힘이 있겠습니까? 해달라면 해줄 뿐이지 ㅎㅎ 바꾸면서 나도 무슨 테이블인지, 무슨 컬럼인지 자세히 봐야지만 알 수가 있는 네이밍 컨벤션이더군요.. 투덜 투덜.. 아 이제 그만 투덜되고!! 그렇다고 많지도 않지만 또 어찌보면 많은 부분을 다 찾아주기가 귀찮더군요. 그래서 어떻게 하면 편하게 바꿀 수 있을까를 고민했습니다. '훌륭한 해커는 게을러 지기 위해서 프로그래밍을 한다!!' 라는 멋진 사상과 부합되간다면 저도 훌륭하지는 않지만 해커의 길로 나선 것이라고 볼 수가 있습니다. 더구나 제가 쓰는 텍스트 에디터가 바로 이맥스 아닙니까? 바로 개발 들어갔습니다. 바껴야 될 쿼리 부분을 리젼으로 지전하고 change-table 함수..
'하늘 아래 새로운 것은 거의 없다' 제가 즐겨 하는 말입니다. 물론 제품의 완성 단계에서 똑같이 베껴서 제품을 내 놓는 경우는 모방이라기 보다는 '복제'라고 볼 수 있습니다. 저는 '복제'를 말하는 것이 아니라 '모방'을 말합니다. 차이가 애매하다고 볼 수 있습니다. 새로 시작하는 입장에서 무엇인가 만들어 가려면 막막할 수 밖에 없습니다. 저는 그 때 필요한 것이 모방이라고 봅니다. 모방하며 개발을 진행하면, 그 결과로 개발 인프라가 쌓이고, 모방하여 개발한 제품을 운영하면 그 결과로 운영 인프라가 쌓입니다. 자 이렇게 인프라를 따라 잡았다면 그 다음은? 바로 혁신이 필요할 차례입니다. 이 혁신의 과정에서 선두 주자를 앞 지를 수도 있는 것입니다. 모방과 혁신!! 이 두가지를 항상 염두에 둬야 합니다.
Node.js 와 Node.js 를 잘 활용하기 위한 웹 프레임워크까지 쭈욱 따라하기 식으로 하루만에 쫓아갈 수 있는 훌륭한 튜토리얼이 정리되어 있습니다. 비록 영어이긴 하지만 신기술은 번역되어 있는 것을 구하기 힘드니 여기서 쭈욱 따라가시면서 이해만 하시면 충분히 node.js 로 바로 웹 사이트 하나 만들 수 있는 실력을 구비하실 수 있을 것입니다. Node.js 설치하기 는 예전 제 포스트를 참조하시면 됩니다. 기본 (The Basics) (1-2 시간 소요) The Node Beginner Book 기본적인 문법과 Asynchronous 코딩에 대한 기본을 설명해주고 있는 훌륭한 책입니다. 정말 쭈욱 따라하시면 됩니다. 더 깊게 들어가기 (Going Deeper) (1 시간 소요) chapter7..
아이디어 기획의 시작은 종이와 연필로 부터 , 프로그래밍 시작은 키보드로 부터 아이디어 자체보다 실행이 중요하며, 프로그램은 머리로 짜는 것이 맞지만, 손 부터 움직이지 않으면 일 시작하기가 애매합니다. 빠른 개발론 (Rapid Development)을 실현화 할려면 무엇보다 시간을 많이 잡아먹는 변수를 없애야 합니다. 그 변수중 첫째는 기획 문서 만드는 것과 둘째는 프로그램 개발의 시작입니다. 이 두가지 변수를 없애는 방법은 '빠르게 시작하는 것' 일단 종이와 연필을 가지고 아이디어를 구상하고 구상 단계가 끝나면 잽싸게 키보드를 부여잡고 개발을 시작하는 것입니다. 진행하면서 생각하기!! 빠른 개발론의 시작입니다.
문혜군이 말했습니다. "참, 훌륭하도다. 기술이 어찌 이런 경지에 이를 수 있을까?" 요리사가 칼을 내려놓고 대답했습니다. "제가 귀히 여기는 것은 도입니다. 기술을 넘어선 것입니다. 제가 처음 소를 잡을 때는 눈에 보이는 것이 온통 소뿐이었습니다. 삼 년이 지나자 통째인 소가 보이지 않게 되었습니다. 지금은 신(神)으로 대할 뿐, 눈으로 보지 않습니다. 감각 기관은 쉬고, 신(神)이 원하는 대로 움직입니다. 하늘이 낸 결을 따라 큰 틈바귀에 칼을 밀어 넣고, 큰 구멍에 칼을 댑니다. 이렇게 정말 본래의 모습에 따를 뿐, 아직 인대나 건을 베어 본 일이 없습니다. 큰 뼈야 말할 나위도 없지 않겠습니까? 훌륭한 요리사는 해마다 칼을 바꿉니다. 살을 가르기 때문입니다. 보통의 요리사는 달마다 칼을 바꿉니다...
"How to Design Programs" 라는 책에서 언급된 DESIGN RECIPE 라고 불리우는 프로그램 디자인을 하는데 필요한 몇가지 단계 Contract 단계 area-of-ring : number number -> number area-of-ring 이라는 프로그램은 number 2개를 인자로 받아서 number 를 리턴하는 프로그램이다. 라고 구상하는 단계 Purpose 단계 outer 라는 바깥쪽의 원의 반지름과 inner 라는 안쪽 원의 반지름을 가진 두원의 사이에 끼어져 있는 고리의 영역을 계산하기 위한 것이 목적이다. Example 단계 (area-of-ring 5 3) 이거나 area-of-ring (5, 3); 은 50.24 의 값이 나와야 한다. Definition 단계 (de..