경험많은 프로그래머들 중 몇몇은 전날 한 것을 기억하기 위해서
퇴근할 때나 잠시 자리를 뜰 때 일부러 작업하던 부분을 괄호를
안 닫는다던지 하는 등의 방법으로 문법을 틀리게 해 놓아서,
작업을 계속 하려고 할 때 그 문법을 고치고 컴파일되게 하면 작업의
문맥이 저절로 떠오르게 하는 방법을 쓰는 경우도 있습니다.
여기에 더 나아가서 TDD를 적용하면, 만들 기능을 먼저 unit test로 추가하고 거기에 해당하는 모듈을 구현하게 됩니다. 처음에는 몇 부분의 test에서 fail이 나겠지만, 기능구현이 완료되면 모든 test가 pass되겠죠. 그렇고 나서 다음 기능을 test로 추가하고 위의 과정을 반복합니다.
어디까지 했는지 모를때는 test를 돌려보고 fail이 나는 부분부터 코드를 보면 됩니다.
그냥 기억으로만 보존하고 있는 경우에서부터 코드에 특정 표식을 남기는경우, TODO 리스트를 지속적으로 갱신/관리하는 경우, 버전관리 시스템을 쓰는 경우, 더 크게는 형상관리를 하는 경우등으로 확장될수 있겠죠.
아무튼 장난수준의 작은 프로젝트가 아니라면 그냥 기억속에만 담아두는것은 바람직하지 못한 방법입니다.
여담이지만, 제가 요새 반지의 제왕을 탐독하고 있는데(참으로 뒤늦은 입문입니다) 서문에서 그동안 이 소설을 톨킨이 써오면서 출판상의 오류와 편집상 실수등으로 엄청나게 많은 고생을 했던 이력이 쭉 씌여 있는걸 봤습니다.
잘못 출판된것을 바로잡으려 출판사에 원고를 보낸것이 그것마저 또 실수가 발생하고, 그것을 바로잡으려 원고를 보냈던게 또 누락되고, 그렇게 출판된것을 또 다른 국가에서 다른식으로 번역하여 출판하고 하는등등의 일련의 사건들이 몇페이지에 걸쳐 장황하게 설명되어 있네요. 그래서 심지어 개정된 내용을 톨킨 자신조차도 제대로 전부 알지 못하고, 끝끝내는 자신이 펴낸 책의 오류를 바로잡지 못한채 생을 마감해버려 여기 씌여있는 바로는 아마 이 작품의 전체 오류를 완벽하게 잡기 위해서는 초판이후 3세기 정도는 지나야 되지 않느냐라는 말까지 나오고 있군요.
이 정도로 방대한 분량의 소설에서 오류가 나오지 않는것이 더 이상하겠지만, 그렇다 하더라도 톨킨의 경우는 좀 심하다싶은 생각이 들었습니다.
이 부분을 보면서 글을 쓰든 프로그래밍을 하든간에 자신이 했던것을 기록하고, 관리하는것이 무척 중요하다는것을 새삼 느끼게 되는군요.
가능하면 할 일을 여러개로 쪼개어서 업무 리스트를 메모로 만든다음 구현할때마다 완료된 리스트에 체크를 하고 있습니다.
열심히 광코딩을 하다보면 나중에는 도대체 어디까지 구현을 했지는지 모호해지기 때문이죠-_-); 그렇기 때문에 일을 중간에 쉬는것도 해당 리스트의 단위별로 완료를 하고 쉬거나 퇴근을 하곤 합니다..
또 한가지 방법으로 주석으로 어떤 일을 해야하는지 적어놓기도 합니다. //TODO : 여기에 뭘 구현해야할지를 적어놓는다.
이렇게 해놓고 다음날 와서 찾기 기능으로 //TODO 라고 시작하는 부분을 찾아서 나머지 일을 진행하기도 합니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
코딩을 할 때는 항상 생각을 하고 있으니 대부분 머릿속에 담아 놓는데, 용량이 점차 작아져서 todo를 보조로, local cvs는 대리인으로 사용합니다. 일단락은 기능별로 하고, 스펙이 없는 작은 것의 코딩은 시작할 때 이름만 있는 클래스들로 대강의 뼈대는 미리 만들어 놓습니다.
----
I paint objects as I think them, not as I see them. atie's minipage
기억을 못하니까 기록하는게 아닐까요? :)
기억을 못하니까 기록하는게 아닐까요? :)
----
자신을 이길 수 있는자는
무슨짓이든 할수있다..
즉..무서운 넘이란 말이지 ^-_-^
나? 아직 멀었지 ㅠㅠ
되도록 작은 단위로 쪼개서 부분부분 처리합니다.
코딩을 많이 하진 않지만, 되도록 단위별로 작업합니다. 함수 하나 혹은 기능 하나를 완성한다고 생각하고 시작해서 자기 전까지 하고, 그 다음날은 전날 완성된 부분을 써서 다른 부분을 짜는 식이죠.
안 그러고 전체적으로 조금씩 진척시키면 매번 파일을 바꿔가면서 열어야 하고 그걸 일일이 기억하기도 힘들죠.
하루에 몇 시간쯤 코딩을 해서 소소한 코드를 만들다보니 가능한 얘기일지도 모르겠네요. :wink:
경험많은 프로그래머들 중 몇몇은 전날 한 것을 기억하기 위해서퇴근할
경험많은 프로그래머들 중 몇몇은 전날 한 것을 기억하기 위해서
퇴근할 때나 잠시 자리를 뜰 때 일부러 작업하던 부분을 괄호를
안 닫는다던지 하는 등의 방법으로 문법을 틀리게 해 놓아서,
작업을 계속 하려고 할 때 그 문법을 고치고 컴파일되게 하면 작업의
문맥이 저절로 떠오르게 하는 방법을 쓰는 경우도 있습니다.
You need Python
저도 kZ 님 말처럼 모듈별로 작업하는게 맞다고 생각합니다. 여기
저도 kZ 님 말처럼 모듈별로 작업하는게 맞다고 생각합니다.
여기에 더 나아가서 TDD를 적용하면, 만들 기능을 먼저 unit test로 추가하고 거기에 해당하는 모듈을 구현하게 됩니다. 처음에는 몇 부분의 test에서 fail이 나겠지만, 기능구현이 완료되면 모든 test가 pass되겠죠. 그렇고 나서 다음 기능을 test로 추가하고 위의 과정을 반복합니다.
어디까지 했는지 모를때는 test를 돌려보고 fail이 나는 부분부터 코드를 보면 됩니다.
그냥 기억으로만 보존하고 있는 경우에서부터 코드에 특정 표식을 남기는경우
그냥 기억으로만 보존하고 있는 경우에서부터 코드에 특정 표식을 남기는경우, TODO 리스트를 지속적으로 갱신/관리하는 경우, 버전관리 시스템을 쓰는 경우, 더 크게는 형상관리를 하는 경우등으로 확장될수 있겠죠.
아무튼 장난수준의 작은 프로젝트가 아니라면 그냥 기억속에만 담아두는것은 바람직하지 못한 방법입니다.
여담이지만, 제가 요새 반지의 제왕을 탐독하고 있는데(참으로 뒤늦은 입문입니다) 서문에서 그동안 이 소설을 톨킨이 써오면서 출판상의 오류와 편집상 실수등으로 엄청나게 많은 고생을 했던 이력이 쭉 씌여 있는걸 봤습니다.
잘못 출판된것을 바로잡으려 출판사에 원고를 보낸것이 그것마저 또 실수가 발생하고, 그것을 바로잡으려 원고를 보냈던게 또 누락되고, 그렇게 출판된것을 또 다른 국가에서 다른식으로 번역하여 출판하고 하는등등의 일련의 사건들이 몇페이지에 걸쳐 장황하게 설명되어 있네요. 그래서 심지어 개정된 내용을 톨킨 자신조차도 제대로 전부 알지 못하고, 끝끝내는 자신이 펴낸 책의 오류를 바로잡지 못한채 생을 마감해버려 여기 씌여있는 바로는 아마 이 작품의 전체 오류를 완벽하게 잡기 위해서는 초판이후 3세기 정도는 지나야 되지 않느냐라는 말까지 나오고 있군요.
이 정도로 방대한 분량의 소설에서 오류가 나오지 않는것이 더 이상하겠지만, 그렇다 하더라도 톨킨의 경우는 좀 심하다싶은 생각이 들었습니다.
이 부분을 보면서 글을 쓰든 프로그래밍을 하든간에 자신이 했던것을 기록하고, 관리하는것이 무척 중요하다는것을 새삼 느끼게 되는군요.
perky님이 말씀하신 것과 비슷한 방법으로 TDD에서는 그날의 작업을
perky님이 말씀하신 것과 비슷한 방법으로 TDD에서는 그날의 작업을 마무리 하기 전 마지막 테스트를 실패한 상태로 만들어 두는 방법을 쓰기도 합니다. 다음날 와서 테스트 한 번 돌려보면 실패한 부분이 뜨기 때문에 그 테스트를 해결하는 것으로 작업을 시작할 수 있죠.
물론 해야할 일의 전체 목록과 뭘 했는지에 대한 큰 그림은 story card, to do list 등을 통해 관리되고 있어야하는 것이구요. 이 방법은 연속적인 코딩의 흐름을 어떻게 다음날로 이어나갈 것인가에 대한 해결책입니다.
먼저, 컴퓨터를 끄지 않았다는 가정 아래에...Emacs에서, 한
먼저, 컴퓨터를 끄지 않았다는 가정 아래에...
Emacs에서, 한 파일 내부에서 수정한 위치를 계속적으로 검토하기 위해 C-u C-<SPC>를 쓰면 수정한 위치를 주욱~ 보여줍니다.
iswitch-mode-mode를 쓴 경우, C-x b를 누르면 편집했던 파일들의 목록을 reverse LRU(least recently used) 순서로 보여줍니다.
또는 desktop-save와 desktop-revert를 쓰는 것도 좋습니다. 이 것은 emacs를 끄고 (전원을 끄더라도) 동작합니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
가능하면 할 일을 여러개로 쪼개어서 업무 리스트를 메모로 만든다음 구현할
가능하면 할 일을 여러개로 쪼개어서 업무 리스트를 메모로 만든다음 구현할때마다 완료된 리스트에 체크를 하고 있습니다.
열심히 광코딩을 하다보면 나중에는 도대체 어디까지 구현을 했지는지 모호해지기 때문이죠-_-); 그렇기 때문에 일을 중간에 쉬는것도 해당 리스트의 단위별로 완료를 하고 쉬거나 퇴근을 하곤 합니다..
또 한가지 방법으로 주석으로 어떤 일을 해야하는지 적어놓기도 합니다.
//TODO : 여기에 뭘 구현해야할지를 적어놓는다.
이렇게 해놓고 다음날 와서 찾기 기능으로 //TODO 라고 시작하는 부분을 찾아서 나머지 일을 진행하기도 합니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
그냥 소소한 개인적인 코딩시에는 vim에서 제공해주는 하이라이팅 기능을
그냥 소소한 개인적인 코딩시에는 vim에서 제공해주는 하이라이팅 기능을 애용합니다.
주석안에 TODO: 또는 XXX: 를 적고 다음 해야할일들을 주저리주저리 적어 놓으면
이 부분이 색깔이 반전이 되어서 눈에 잘 들어오더군요.
검색시는 위엣 분들이 말씀하신 것 처럼 파일 열자마자 /TODO 또는 /XXX로
바로 찾아서 작업하기 시작합니다.
물론 조그만 개인적인 작업에서나 유용할 팁이군요.
----
use perl;
Keedi Kim
저는 주로 컴퓨터를 그대로 켜놓고 에디터까지 그대로 열어놓고 퇴근합니다.
저는 주로 컴퓨터를 그대로 켜놓고 에디터까지 그대로 열어놓고 퇴근합니다.
코딩을 할 때는 항상 생각을 하고 있으니 대부분 머릿속에 담아 놓는데,
코딩을 할 때는 항상 생각을 하고 있으니 대부분 머릿속에 담아 놓는데, 용량이 점차 작아져서 todo를 보조로, local cvs는 대리인으로 사용합니다. 일단락은 기능별로 하고, 스펙이 없는 작은 것의 코딩은 시작할 때 이름만 있는 클래스들로 대강의 뼈대는 미리 만들어 놓습니다.
----
I paint objects as I think them, not as I see them.
atie's minipage
저는 한컴쪽지에 구현할 기능들을 적어놓고 하나씩 체크하면서 확인하
저는 한컴쪽지에 구현할 기능들을 적어놓고
하나씩 체크하면서 확인하고
일과끝날때는 메모를 남겨 놓습니다.
그리고 다음날 최근 작업파일을 끌고 와서...
메모보면서...
...
하지만 오래전에 만들었던 코드라면...흐음..;;;
잘 정리를 안하는 편이라...곤란을 겪을때가 많습니다.
그래서 블로그나 자신에게 메일을 보내 정리를
가끔 생각날때마다 하는 편입니다.
너무 가끔 정리해서 문제네요 :oops:
[quote="tiziman"]그래서 블로그나 자신에게 메일을 보내
전 Gmail쓰는데 메일 보낼 때 메일 제목에 특정한 문자를 집어넣습니다.
ABC라는 레이블을 만들어 두고
메일 제목에 "[ABC] 이번 일은 어쩌고 저쩌고" 라고 보내면
ABC레이블이 알아서 달리니 다음번에 ABC관련일을 찾아볼 땐
ABC레이블만 누르면 다 됩니다.
물론 Gmail의 검색기능도 활용하는 편입니다.
세계 최고의 OS 개발자 - 오리
KLDP 가입시 해야 할 일
목표 : 세계정복
'X-MAS, 석탄일을 평일로 한글날과 오리의날을 국가공휴일로 만들자.'
[quote="krisna"]저는 주로 컴퓨터를 그대로 켜놓고 에디터까지
강력하십니다. ^^=b
저도 그래요..^^
힘없는자의 슬픔
[quote]저는 주로 컴퓨터를 그대로 켜놓고 에디터까지 그대로 열어놓고
-_-정전되면 대략 난감....입니다..
몇번 당해봐서리..ㅡㅡ;;;;;;;
raise NotImplementedError또는raise
raise NotImplementedError
또는
raise Exception, "HERE"
또는
자신에게 메일로 날리기~
What do you want to eat?
저는 퇴근하기전에 내가 마지막으로 하던 짓? 을 종이에 써놓고 갑니다.
저는 퇴근하기전에 내가 마지막으로 하던 짓? 을 종이에 써놓고 갑니다.
안그러면 아침에 30분이상은 헤매야 되거든요.
^^*
[quote="bleu"][quote]저는 주로 컴퓨터를 그대로 켜놓고
저도 이 방법을 이용했습니다. (예전에 직장 다닐 때요)
퇴근할 때는 간편하게 Window-L 버튼을 눌러 데스크탑을 Lock 해놓고 퇴근했죠.
한 이년 일하면서 정전되거나 하는 일은 없더군요.