오랜만에 재밌게 프로그래밍했습니다.

gurugio의 이미지

요즘 봄을 타는지 너무 우울한데 그나마 한가지 재미있는 일이 있어서
기쁨은 나누면 배가 된다고 하니 즐거우시라고 글을 올립니다.

대학 졸업후 일로 개발하면서 사실 학생때 신기한 마음에 밤늦게까지
키보드 두들기던 기억이 까마득하게 느껴집니다.
그런데 요즘 보잘것 없지만 강좌를 하나 쓰려고 예제를 만들고 있습니다.
예제 소스가 여러개이고 소스마다 설명을 쓰고 있는데요.
소스가 바뀔때마다 설명글도 바꿔야되서 좀 귀찮았습니다.

예를 들어

print("hello\n");
인사를 하는 코드입니다.

이렇게 소스와 설명을 쓰고 있는데 소스가 바뀌면 소스 파일도 바꿔야 되고 설명을 저장한 파일의 소스도 바꿔야 되서
일이 이중으로 되는걸 느꼈습니다.
그래서 이렇게 특수 명령을 입력하도록 설명 파일을 작성하고
설명 파일을 읽고 자동으로 예제를 복사하는 프로그램을 만들었습니다.

$$main.c 3 3
인사를 하는 코드입니다.

main.c 파일의 3번째 줄부터 3번째 줄까지 (한줄만) 복사를 해서 위와 동일한 파일을 만들어주는 것이지요.
이렇게하니 소스 바꾸고 설명 바꾸는 일이 분리되서 한번씩만 수정하게 되더라구요.

어떤 불편함을 느꼈을때 그걸 자동으로 처리해주는 프로그램을 직접 만들어본다는게
참 오랜만이기도 하고 참 재밌기도 하다는걸 느꼈습니다.
사실 프로그래밍이라는게 사람이 손으로 하는 일을 편리하게 돕는거라고도 생각할 수 있다면
사람에게 도움을 주는 일을 직접적으로 경험한다는게 즐거운 일인것 같습니다.

그냥 제 스스로 불편함 점을 제가 직접 개발한 코드로 해결한 경험이었지만
오랜만에 신선한 기분을 느꼈습니다.
막상 코드는 몇십줄도 안되는 간단한 것이고 핵심 알고리즘은 여기저기서 복사해온 것이고,
언어도 널리 안쓰이는 scheme이지만 요즘 SICP를 읽는 중인데
공부한 것을 실제로 써먹는다는 즐거움도 오랜만에 느꼈습니다.

..익명으로 잘난체하지 말라고 하실 분들이 계실것 같습니다 ;-)
아주 간단한 코드이지만 즐겁게 만들고 또 자기가 즐거웠던 경험을 나눠서
비슷한 경험을 해보시길 추천하려고 남긴 글입니다.
제 자신이 기특하기도 해서 쓴 글이니 잘난척이라고 하셔도 할말은 없지요 뭐..
어쨌든 개발이 좀 재미없어지면 요런식으로 하나 주제를 찾아서 간단하게 두들기는 재미를
다시한번 느낄 수 있었으면 좋겠습니다.

kgcrom의 이미지

sicp 한번봤는데 저한테는 상당히 난이도가있어서 덮고 다시 기초를 다지고있습니다.
강좌를 하시는군요? 응원하겠습니다. 어떨지 상당히 기대가됩니다 ㅎㅎ
혹시라도 함께 하는게있다먼 꼭 같이하고싶습니다.
항상 건강하세요~~

흘러가고있는 지금 이 시간에 충실하자.

gurugio의 이미지

저도 SICP땜시 머리카락이 한웅큼은 빠졌을것 같습니다.
근데 제 성격에 포기하면 다시는 안볼게 뻔해서
본문은 대강이라도 읽고 연습문제도 다른 분들 소스 따라서 만들어보면서 읽고있습니다.
그냥 지르세요 정말로 제 프로그래밍의 패러다임을 바꿔주고 있습니다.

익명 사용자의 이미지

먹고 살기 바뻐서 남을 위한 코드를 작성하다가...
몇줄 안되더라도 자신을 위한 코드를 작성하는 기분은 말로 형용하기가 어렵습니다.

bus710의 이미지

잘난체 하지 마세요 흥흥 ;-)

life is only one time

나빌레라의 이미지

뭔가 대단하고 엄청난 프로그램보다
저런 소소하고
유용한 프로그램을
짧은 시간에 후다닥 작성하고
잘 동작하는 것을 볼때
굉장히 뿌듯해요~^^
ㅎㅎ

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

jwstyle의 이미지

맞습니다.!!!
소소한 유틸을 만드는게 크고 긴 프로그램보다 느낌이 짜릿하죠. ;;;;

----------------------------
Let's Do It

snowall의 이미지

저도...
실험할 때 컴퓨터들 동기화 시켜서 클릭시키고 자동으로 데이터 저장한 후 실험 결과 분석해서 그래프까지 그려주는 완전 자동화 프로그램을 만들었었는데

인간이 게을러진다는 이유로 도입 거절되었네요...

피할 수 있을때 즐겨라! http://melotopia.net/b

gurugio의 이미지

성경에 돼지목에 진주목걸이를 걸지 말라고하지요.
공자님 말씀에도 누울 자리를 보고 누우라는 말씀도 있구요.

남의 성과나 진보를 인정할줄 모르는 사람은 그냥 자기 안에서 살라고 해야지요
갠히 내것을 보여줘봐야 나만 갑갑하고 내 기분만 우울해지더라구요.

네이버나 구글에 프로젝트로 등록하세요 ;-)
저도 가끔 그런 프로그램이 필요했는데 GUI를 프로그래밍하는 스크립트를 몰라서 못하고 있었습니다.
필요한 분들이 많을것 같습니다.

semmal의 이미지

제가 이래서 취미가 프로그래밍인겁니다.

------------------------------
How many legs does a dog have?

unsouled의 이미지

약간 주제에서 빗나간 말이지만..

만드신 프로그램은 라인이 추가/삭제가 되어서 위치가 벗어나면 추후에 쓰기가 좀 불편하실 것 같습니다.

// START print_hello
print("hello\n");
// END print_hello

 $$main.c print_hello
 인사를 하는 코드입니다.

나중에는 이런식으로 코드 내에 주석으로 시작, 끝 블럭을 지정해서 이름을 붙여 불러오게 쓰면 좀 더 유용할 것 같네요.

gurugio의 이미지

몇번 써보니 말씀해주신 방식이 제가 만든 방식보다 방식이 더 좋은것 같습니다.
지금 다시 만들고 있습니다.
조언 감사합니다.