효율적으로 프로그래밍 하는 방법?

geekforum의 이미지

벤처기업에서 일하는 아직은 초보라고 느끼는 phper입니다.
웹 프로그래밍을 공부하기 시작한지 3년, 초등학교때 gw-basic배우고 전산과 졸업생, c,perl 로 간단한 게시판정도 작성해본 경험있고, 나이는 24입니다.

제가 요즘 작업량이 많아서 일을 효율적으로 하기 위한 방법을 생각중입니다. 좋은 경험담이나 의견 듣고싶습니다.

근무시간은 보통 아침 11시부터~ 저녁 9시정도 입니다. 식사 하고, 커피마시고, 직원들하고 토론하고,
그런 시간을 빼면 보통 6시간 정도 집중해서 코딩합니다.

코딩작업을 할때 제 신조는 삽질하지 않는다입니다. 콘디션 안 좋으면 음악이나 기사을 읽으면서 일에 대한 흥미와 집중력이 생길때까지 하지않습니다. 그리고 다른 사람의 소스나 전에 만든 소스를 재사용하는 편입니다.

굳이 다른 사람이 했던 작업을 중복해서 하는 시간낭비를 절약하기 위해서이죠. 또한 2번이상 겹쳐서 사용되는 부분은 화일나 함수로 작성해서 나중에 수정 작업을 한번에 할수 있도록 작성합니다.

주로 코딩하는 편집기는 editplus이고 필요에 따라서는 notepad>wordpad>데이타맨편집기 순으로 사용합니다. 화면에 창이 많아서 복잡하기는 하지만, 편집기마다의 장단점이 있어서 다양하게 사용하는 편입니다.

생활방식도 조금씩 바꾸고 있습니다. 일에 집중할수 있도록 주위환경을 만들고 필요없는 일에 에너지를 소비하지 않기 위해서 합리적으로 생각하고 체계화시킨다....

보다 효율적으로 코딩할수 있는 방법 적어주세요.

올해 크리스마스는 가족과 함께 보낼수 있도록...

댓글

balman_의 이미지

하하하....다읽었습니다.

질문의 답과는 다소 거리가 벌어지는 과정인것 같기에...

많이 짜보는 것이 진리일지도....

익명 사용자의 이미지

*** 아래 2개 글은 잘못 올렸내요 ( 죄송합니다. )

효율적으로 프로그램을 하는 방법이라 ??

저는 스스로 프로라고 자부하는 7년차 프로그래머
입니다.
( 중요한것 실력이 그렇다는것이 아니고 그런 맘을 먹고 해야 좋은 작품이 나온다는 애기죠 !! <= 일종에
자기 최면이라 할까 !!)

저는 개인적으로 C언어와 JAVA를 좋아 합니다.
왜냐면 효율적으로 프로그램을 할수 있는 기반을 제공하기 때문이죠

왜냐고요 ?

현재 작성하고 있는 프로그램을 나중에 재사용 할수
있도록 또 그렇게 하는것이 불편하지 않는 체계를
언어 스스로가 제공하기 때문이죠 ( C++를 좋아하지
않는것은 이것이 없기 때문이죠 )

서두가 너무 길었내요

저는 항상 프로그램을 내가 할수 있는 범위내에서는
최선을 다해 효율적으로 할려고 합니다.
그래서 이렇게 합니다.

1.구현하는 언어선택에 있어 조심합니다.
- Web의 경우 가능하면 서블릿으로 합니다.
- 퍼포먼스가 요구되는경우 C로 합니다.
- 윈도에서는 Visual Basic을 선호합니다.

2.남들도 유지보수 할수 있을 정도로 주석문을 많이
넣고 가능하면 쉽게구현 할려고 노력합니다.
=> 그래야 나중에 유지보수가 쉽습니다.
( 시간을 절약하는 요령이라 생각하지요 )

3.중요한것 => 공통의 라이브러리/클래스를 가능하
면 많이 작성합니다.
( 호랑이는 가죽을 남기지만 프로그래머는 라이브러리
를 남긴다. )

4. 회사에 도움이 되는 쪽으로 프로그램을 작성합니다.
=> 나중에 보는 나한테 더 도움이 됩니다.

5. 정말 중요한 프로그램인 경우 예술작품을 만든다는
기분으로 작성합니다.
( 가끔 소스를 보면서 스스로 감탄할 정도로 깔끔하고
보기 좋게 ...... )

6. 가장중요한 것이라 생각합니다.
** 표준화에 신경써야 합니다.
- 함수명, 변수명, 프로그램 골격, 시스템 구조..
( 소프웨어 공학에서 말하는 그런것은 아님 )

** 결론
실제로 위와 같은 방법으로 했던 작품들은 유지보수가
매우 효율적으로 되고 있고 신규로 해야하는 업무의
초석이 되고 있습니다.

익명 사용자의 이미지

효율적으로 프로그램을 하는 방법이라 ??

저는 스스로 프로라고 자부하는 7년차 프로그래머
입니다.
( 중요한것 실력이 그렇다는것이 아니고 그런 맘을 먹고 해야 좋은 작품이 나온다는 애기죠 !! <= 일종에
자기 최면이라 할까 !!)

저는 개인적으로 C언어와 JAVA를 좋아 합니다.
왜냐면 효율적으로 프로그램을 할수 있는 기반을 제공하기 때문이죠

왜냐고요 ?

현재 작성하고 있는 프로그램을 나중에 재사용 할수
있도록 또 그렇게 하는것이 불편하지 않는 체계를
언어 스스로가 제공하기 때문이죠 ( C++를 좋아하지
않는것은 이것이 없기 때문이죠 )

서두가 너무 길었내요

저는 항상 프로그램을 내가 할수 있는 범위내에서는
최선을 다해 효율적으로 할려고 합니다.
그래서 이렇게 합니다.

1.구현하는 언어선택에 있어 조심합니다.
- Web의 경우 가능하면 서블릿으로 합니다.
- 퍼포먼스가 요구되는경우 C로 합니다.

익명 사용자의 이미지

효율적으로 프로그램을 하는 방법이라 ??

저는 스스로 프로라고 자부하는 7년차 프로그래머
입니다.
( 중요한것 실력이 그렇다는것이 아니고 그런 맘을 먹고 해야 좋은 작품이 나온다는 애기죠 !! <= 일종에
자기 최면이라 할까 !!)

저는 개인적으로 C언어와 JAVA를 좋아 합니다.
왜냐면 효율적으로 프로그램을 할수 있는 기반을 제공하기 때문이죠

왜냐고요 ?

현재 작성하고 있는 프로그램을 나중에 재사용 할수
있도록 또 그렇게 하는것이 불편하지 않는 체계를
언어 스스로가 제공하기 때문이죠 ( C++를 좋아하지
않는것은 이것이 없기 때문이죠 )

서두가 너무 길었내요

저는 항상 프로그램을 내가 할수 있는 범위내에서는
최선을 다해 효율적으로 할려고 합니다.
그래서 이렇게 합니다.

1.구현하는 언어선택에 있어 조심합니다.
- Web의 경우 가능하면 서블릿으로 합니다.
- 퍼포먼스가 요구되는경우 C로 합니다.

익명 사용자의 이미지

항상 연습장을 곁에 두세요.

연습장에 뭔가를 항상 끄적이세요.

그리고 모아두세요. 주기적으로 정리하면

멋진 자료 (쫄다구 교육자료)로 활용가능합니다.

지금 어디로 가는지 매일 방향을 확인하세요.

빨리 가는것만이 빠르다는건 잘못된 생각입니다.

문제는 빨리 서둘러 가는게 아니라

바른 방향으로 가는겁니다.

익명 사용자의 이미지

안녕하셔요. 프로그래밍만 하지는 않지만, 이바닥 생활 그럭저럭 7년째 접어들고 있는 직장인입니다.

제가 프로그래밍을 하면서 가장 먼저 깨달은 시행착오를 가장 줄이는 방법은 \"모든 경우의 수를 생각해야 한다.\" 라는 것이었습니다.

내가 만든 시스템이 뭐가 어떻게 될지는 아무도 모릅니다. 특히 소스가 공개되어 있지 않은 프로그램 - 예를 들어서 윈도그용 컴포넌트라든지 다른 시스템에서 제공하는 API 같은 것들 - 을 사용하게 될 경우에는 그 프로그램이 항상 저보다 못한 사람들이 만들었다고 생각해야 합니다. 심하게 말하자면 나와 함께 일하는 사람들, 내게 어떤 루틴을 사용하라고 준 사람들 모두는 나보다 실력이 딸리는 사람들이며, 그러한 사람들이 발생시킨 에러를 저는 모두 염두에 두고 있어야 한다는 것입니다.
* 개무시하라는 얘기 아닌건 아시죠? 그런 마음가짐으로.. *

사용자는 *나쁜놈이기 때문에* 내 프로그램에 무슨 짓을 할 지 모릅니다. 버튼 안누르고 옆에 있는 공간 누르면서 아무것도 안된다고 할 수도 있고, 메뉴를 오른쪽 버튼으로 누를 수도 있습니다. 심지어 열받으면 모니터에 이단옆자기를 가할 수도 있습니다!!

가끔가다 보게 되는 - rm -r 잘못 사용한 다음에 프로그램 잘못짰다고 투덜거리는 - *나쁜 사용자들*을 보세요. 여러분도 한때는 나쁜 사용자일 수 있습니다.

그 다음으로 깨달은 것은 시스템을 구성하는 모든 것에 대해서 생각해야 한다는 것이었습니다. 왜 이런 구성이 필요했을까. 다음에 이런 구성을 또 사용할 수 있을까. 이런 구성으로 했을 때 컴퓨터는 편하지만 사람은 불편하지 않을까...

내가 만들고 있는 시스템에 100개의 소스 파일과 1800개의 함수가 들어가 있을 때 그 모든 구성과 상관관계에 있어서 맥을 짚고 있어야 합니다. 만약 내가 그 시스템의 총 책임자가 아니라 그 중 일부라면 *독심술* 또는 그에 준하는 *초능력*을 가지고 있어야 합니다. 특히 프로젝트 관리자나 시스템 설계자가 바보라면 더더욱!

누군가 당신에게 이러한 것을 하라고 명령할 때 그 사람은 \"내 마음을 읽고 그렇게 되도록 작업을 수행하게\" 라는 생각을 가지고 있다고 생각하세요. 세상에는 생각보다 뻔뻔한 사람 많습니다.

비교적 최근에 깨달은 것은 *사용자는 항상 옳다* 라는 것입니다. 사용자는 *나쁜놈*이지만, *진리*입니다. 사용자가 말도 안되는 것을 해 달라고 우길 때에는 그것이 *진리*라고 생각하고 왜 그렇게 만들어야만 하는지 구도자의 입장에서 생각하세요.
그 다음에 그 사용자가 딴소리하면 신에게 버림받은 카인의 심정으로 그 사용자를 갈구세요. 하지만, 악마가 신을 용서하듯이 자비로운 마음으로 사용자를 용서하고 타이르는 덕을 기르십시오.

주위에 있는 모든 이들을 하찮게 여길 수 있는 위치를 가지고, 내가 구성하는 것에 대한 모든 것에 대해 파악하고 있는 지식을 획득하고, 신을 용서할 수 있는 덕을 갖추게 되면 많은 것들이 바뀌게 될 것입니다.

당장 그렇게 하기가 힘들다구요? 그럼 씩 웃으시고 조크 쯤으로 넘겨 버리세요.

좋은 크리스마스 보내세요.

만약 일이 많아서 크리스마스에 가족과 함께 보낼 수 없다면 그 일을 째 버리세요.

개발자는 관리자와 달라서 일 좀 늦게 해도 더 열씨미 노력하면 되니까요. 당신이 크리스마스에 쉴 수 있는 시간마저 없다면, 그 이유의 80%는 당신이 모시고 있는 돼지같고 무식한 프로젝트 매니저 때문일 것입니다.

대부분의 프로젝트 관리 툴을 사용하거나 스케줄을 만드는 사람들은 자원(개발자)이 휴가도 낼 수 있고, 휴일에는 쉬어야 되는 사람이며, 그 개발자가 어느정도의 능력을 가졌는지 등은 전혀 생각 안하거든요.

하지만, 당신이 크리스마스를 희생하고 일한다고 해서 고객이나 프로젝트 매니저가 감동하지는 않습니다. ( -.ㅜa )

익명 사용자의 이미지

어떻게 삽질의 과정을 거치지 않고 편하게 프로그램 짤생각을 하는지 ...

아래의 코딩 노하우들도 삽질과 시행착오를 거친 끝에 얻어진 결과라는 것을 아셔야지...

모든 문제는 자신의 마음에서 비롯되죠.

쉽게 하고 싶다면 차라리 비주얼툴을 쓰던지...

단순한 에디터로는 삽질을 피할수 없을거요...

박용관의 이미지

음.. 이런 책 한번 보심이 어떠신지요..

저도 학교에 있는 처지라 현업에 종사하시는 분에게..
모라고 말씀드리기는 그렇지만..

저한테 많은 일깨움을 준 책입니다.

상당히 유명한 책이죠..

(원서라서.. 읽는데 약간 고생을 했습니다만..)

\"The Mythical Man-Month\"
Frederick p. Brooks, JR.

이책은 효율적으로 코딩하는거 보다는 효과적으로
프로잭트하고 효과적으로 프로그램을 만들까?? 라는

Software 공학쪽의 에세이입니다만.. ^^;

선장의 이미지

흠.. 코딩 방법, 에디터 이야기는 잘 모르겠고..

저는 코딩을 할때..

일기를 쓰는 기분으로 합니다.
혼자 읽는 목적으로 하지만..

왠지 남이 읽는걸 대비하는 그런 마음가짐 있죠..
-_-;;

이게 먼 말이래.. -_-;

향기의 이미지

제가 사용하고 있는 Uedit 에 대한 자랑(?) 을 해볼까요.
이놈은 막대한양의 text 도 걍 엽니다.
바이너리일경우는 바이너리로 걍 엽니다.
컬럼 모드 편집이 죽입니다. 대부분의 에디터에서 컬럼을 지원하기는 하지만 이놈만큼 편한놈은 아직은 못봤습니다.
컬럼단위로 숫자넣기, 들여쓰기, 내어쓰기. 바꾸기.. 등 이점이 젤 좋습니다.
이놈은 FTP 로 화일을 열고 저장할 수 있어, Linux/Unix 사용자들도 Window 에서 편집하고 Ftp 로 저장할 수 있습니다. 또 file compare 기능이 죽여 줍니다. 한번 날 잡아 사용해 보시면 자기가 어떻게 소스를 수정했는지 한눈에 파악 됩니다.
마지막으로 출력시.. 한면에 양쪽인쇄 됩니다. 많은양의 코드도 한눈에 쏙....등등입니다..

뭐.. 에디터 좋다고 프로그램 잘 짤 수는 없습니다. 새로운 제안을 하나 해볼까요.. 요즘 드는 생각입니다. 아직 저도 프로젝트에서는 한번도 해보지는 않았죠.. 어떤 방법이냐면..
제일먼저.. 도움말을 제작하는 겁니다. 엥 이게 무슨 말일까요.이말은 내가 가야할 길을 분명히 하고 가자는 얘깁니다. 최종적으로 내프로그램을 사용할 사람에게 설명하듯이 도움말을 먼저 만들고 그다음에 코딩을 하잔 말이죠.. 갈길을 먼저 알고 가자 이말 이었습니다.. 그럼...

익명 사용자의 이미지

내가 본 에디트는 VIM이 짱인뎅^^

익명 사용자의 이미지

전 처음 프로그램 만들때는 아무 계획 없이 생각 나는대루 짭니다.
물론 한번 해봤던거면 계획을 잡아서 하죠...
하지만... 처음 해보는거라면 무작정 해보는게 더 좋은것 같습니다. 실패를 하고 고민을 해봐야 머리속에 남거든여...
뭐.. 내가 머리가 나빠서 그럴수도 있지만..

그리구 전 에디터로 VC++ 을 쓰고 있답니다. 디버깅이 평하다는 이유로 쓰고 있죠...
디버깅 이외엔 완전히 에디텁니다. 사용하기 편한 에디터... ^^

익명 사용자의 이미지

나두요 ^^\'

구봉진의 이미지


효율적인 프로그래밍이란 ?

알고서 하는 것이 되겠지요.

효율적인, 효과적인 프로그래밍이라는 것은
무슨 목적(속도, 성능, 개발시간, 장비) 인지
불분명하지만, 국내 인터넷 업체에서의 효율이라
함은, 아마도 시간에 국한되지 않을까 자조해 봅니다

익명 사용자의 이미지

이제 사회 초년생인것 같습니다만
아침 11시부터 저녁 9시라....
물론 휴일,공휴일,휴가 모두 챙기는 것은 아닌지
일반적인 웹프로그램머들 정도의 시간을 투자하시는 군요
남들도 당신과 비슷한 고민을 하면서 적당히 하더군요
당신이 뛰어난(효율적인) 웹프로그램머가 되려면 더많은
시간을 투자해야 합니다.
이러한 고민을 하는 시간도 더 투자해야하고
맨땅에 헤딩도 더해야 하고
다른 사람의 코드도 더보아야 하고
당신이 한 프로그램중에서 다시 사용할 만한 가치가
있는 것들은 더 잘 다듬어서 다음에 가져다 쓸수 있도록
갈고 닦는데 투자를 아끼지 말아야 합니다.
에디터역시 마찬가지 입니다. 어떤에디터를 사용하더라도
그것을 연구하지 않으면 잘 사용할 수 없습니다.
현재 쓰는 에디터의 좋은 기능을 더 찾는 데에도 시간을
더 투자 해야합니다.
즉 현재1년에 당신의 능력이 성장하는 것을 6개월만에
해보세요 그러면 현재부터 1년을 더 빨리 앞서가 있는
효과를 누릴 것입니다.
여유는 3-4년후에 찾으세요
결과적으로 쉬는 시간을 모두 계산해보면 비슷할 것입니다.
물론 cgi,perl,asp도 능수능란하게 하는 것이 좋습니다.
시간을 더 투자하세요

문창민의 이미지

상당히 많은 분들이 여전히 윈도그를 데스크탑으로 쓰시는군요. 저는 그놈광이라서 쩝.. 뭐 하지만 다들 자기 손에 맞는게 좋겠죠.
저는 vi와 emacs를 같이 써요. 물론 교대로 쓰는게 아니고 용도를 구분하죠. 쉘에서 가볍게 편집할수 있는 것들 쉘스크립트나 환경 설정 파일 같은 거는 vi 쓰고요. c programming 할때는 emacs를 쓴답니다. 물론 vi의 중독성도 느끼고 있고, 코팅 할때 emacs의 막강함도 같이 느낌답니다. 가끔씩 양다리를 걸치는데 대한 죄책감(?)도 느끼죠. 히히 .그럼 즐거운 리눅싱...

익명 사용자의 이미지

^^;

컴을 켜기 전에 항상 담배 한대와... 종이와 연필을
가까이 하는 습관이 중요 함돠.....

담배는 일하기 앞서 생각이 없을때 피던쥐...
생각한바 있을때 후딱 하구 피던쥐...

이 방법은 골초가 아님 불가능 함돠...~!

--- 쿠라이 ---

익명 사용자의 이미지


*** 프로그래머 십계명 *** by 임인건(turbo)
시작부터 경지에 이르기까지...

1. 정보를 모음에 소홀히 하지 말고 설명서를 읽음에 게을리 하지 말지어
다. 오늘 필요 없는 정보는 내일 필요하리라. 가장 가치 있고도 저렴한
지식은 책 속에 있느니라. 서점과 동료의 책꽂이에 무엇이 꽂혀 있는지
때때로 살피어라. 무심코 흘렸던 종이 한 장이 너의 근심을 풀어 주었
으리라. 설명서는 충분히, 꼼꼼히 읽을지어다. 모든 의문은 설명서를
안 보는 데서 생기니라. 그렇더라도 모두 다 읽을 필요는 없느니라.

2. 너의 PC가 안전하다고 믿지 말지어다. 5분 후에 정전이 되고 내일 너의
하드가 맛이 가리라. 그러하니 너의 소중한 소스 코드는 정기적으로 여
러 군데에 단계별로 백업해 두어라.

3. 변하는 수를 다룰 때에는 늘 조심할지어다. 정수가 절대로 그 한계를
넘지 않으리라 가정하는 것은 어리석음이라. 127, -128, 255, 32767,
-32768, 65535, 이 숫자들을 너의 골수에 새기어라. 0.0은 0이 아니니
실수는 원래부터 결코 정밀하지 않느니라. 부호 없는 것과 있는 것을
어울리거나 정수끼리 나눌 때에는 늘 조심하여라.

4. 무슨 일을 반복시킬 때에는 처음과 끝에 유의할지어다. 너의 컴퓨터는
1보다는 0을 좋아 하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈
때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너
의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.

5. 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다. 절대로 일
어나지 않을 일은 반드시 일어나고, 가장 드물게 일어날 일이 가장 너
를괴롭히리라. 그러하니 언제나 논리에 구멍이 없는지 꼼꼼히 따져 보
고, if를 쓸 때에는 else부터 생각하라.

6. 함수 안에서 매개 변수값은 결코 믿지 말지어다. 지금 그 매개 변수가
결코 가질 수 없다는 값을 내일부터는 가지리라. 그러하니 매개 변수값
이 올바름을 항상 검사할지어다. 그렇더라도 처리 속도가 문제가 되는
경우는 예외이니라.

7. 오류를 알려 주는 기능은 있는 대로 모두 활용할지어다. 컴파일러의 경
고는 모두 켜 두어라. 경고는 곧 오류이니라. 오류를 알리는 함수의 결
과를 확인하지 않는 우를 범하지 말지어다. 모든 파일 입출력과 모든
메모리 할당은 조만간 실패할 것이라.

8. 한 번의 수정과 재컴파일만으로 연관된 모든 것이 저절로, 강제로 바뀌
도록 할지어다. 어떠한 것을 수정했을 때에 연관된 것이 따라서 변하지
않는다면 그것이 곧 벌레이니라. 컴파일러로 하여금 매개 변수 리스트
를 완전하게 검사하도록 하고, 언젠가 손대야 하거나 따라서 변해야 하
는 수치는 전부 매크로로 치환하며, 형 정의를 적극 활용하여라.

9. 사용자가 알아서 잘 써 주리라고 희망하지 말지어다. 너의 프로그램은
항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨
리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.

10.매사에 겸손하고 항상 남을 생각할지어다. 가장 완벽한 프로그램일수록
가장 완벽하게 숨은 벌레가 있느니라. 네가 이 세상 최고의 프로그래머
라고 떠들며 자만할 때, 옆집 곳간에서는 훨씬 더 뛰어난 것을 묵묵히
만들고 있느니라. 아무렴 프로그래밍은 혼자 잘나서 할 게 아니니, 너
로 인해 다른 사람들도 더불어 잘 되면 그얼마나 좋은 것이냐.

이 모든 것을 깨닫고 지키려 애쓰는 자는, 있어도 없어도 되어도 아니
되어도 늘 평온하리라.

익명 사용자의 이미지

현업에 종사하시는 분들이 너무도 많은 듯해서~
학교에 있는 감히 모라고 이야기 하긴 어렵지만~

자신만의 개발환경~
자신만의 프로그래밍 스타일
자신만의 개발 방법론~

이 모든게 만들어지기에는 수많은 삽질과
엄청나게 많은 생각~ ..

이런 것들이 한데 어울어져야~
나올 수 있는 것이 아닐까요 ??

심지어~ 그 사람의 가치관 까지요~ .

오죽하면 Software Architecture 라고 하겠습니까?

정말 큰 시스템들을 보면~
설계자들과~ 그것을 만든 사람들의 가치관이 녹아나 있지 않습니까?

소프트웨어 공학이야기 하는 거 같아서 조금 이상하지만~
(참고로 저는 System Software전공임)
Software 구조 쪽의 논문들을 주로 보면~ ..
2000년전의 알렉산더가 도시 설계하던 사상~
미켈란젤로가 조각하던 가치관~ 뭐 이런거랑 ~
소프트웨어 설계랑 결부 시킴니다~

결국 무에서 유를 창조하기 위한 일련의 과정에는 그에 합당한 엄청난 생각을 요구하는데~
그 틀이 되는 것이 그것을 만는 사람의 철학이 되겠죠~ ^^

이렇게 말하는 저도 너무나 멀게만 느껴지는 아득한 말입니다.

익명 사용자의 이미지

ACM에 가보면 Software Engineering에 관련된
논문집이 있습니다.

거기에 논문중에 Software Architecture 혹은.
디자인에 관련된 논문들을 보면~ 그런 내용들이 있습니다.

익명 사용자의 이미지

위에 알렉산더, 미켈란젤로 나오는 글은 어떻게 구할 수 있을까요?
지금 다루는 소스 파일 수가 세보니 100개도 넘는군요.
제가 직접 짠 것도 아니고, 플로우 차트를 그려볼려고 해도 이것도 막막......
이럴 때 필요한 글일 것 같아서요.

iron의 이미지

음. 편집기도 중요하겟지만..

그것보다는 스타일이 더 중요하겠지요...

저는 키보드보다는 펜을 가까이 하려고 노력합니다.

그리고 코딩을 하더라도 타자수를 최대한

줄이도록 노력합니다.

( 잘된 설계 , 그리고 함수 , 매크로 혹은 객체는
타자수를 확실히 줄여주죠..)

음..

저같은 경우는 실제 코딩보다.

생각하는 시간이 더 많으면 많을 수록

버그나 에러도 없고, 더 좋은

프로그래밍이 나오는 편입니다만....

익명 사용자의 이미지

답변의 글 감사합니다.
초보에게 있어서 삽질(시행각오)는 필수입니다.
하지만 시행각오의 원인을 분석해보고,
효율적이고 창의력적 프로그래밍 작업을...
---------------------------------------------
★ ...*...
♧†♧ ...***.∞.. 징글벨♬`~
\"' ,*, \" ` ..*****.. 징글벨♬`~
`,\". ***,.'\" *******
∞*****.` ` *********
\" .******* ,\".. ....∏.... `♨`. ` ▲
********* .`.`(^.^) ` .▲▲` .`
*********** `.♣♣ (____) . . `∏.`, . ,
*************
.___&&_ノ..
┃┃ 설매를 타고... ___&&_ノ.. ♬` ♪ .___&&_ノ..
┛┗ ___&&_ノ.. ♬`~ ♪ ____&&_ノ.. .___&&_ノ ..

연말을 즐겁고 행복 하게 보내세요...~☆★*:\"*:\"*:\"☆★

익명 사용자의 이미지

웹프로그래머라면.

논리적인 코드와 html 의 분리를 생각하고

작업하면 좀더 효육적인 코딩을 할 수가 있습니다.

phper 라면. 논리적인 코드를 class로 묶어서

관리하던지 function 으로 처리를 하고.

html 부분에서는 다만 <? echo 변수 ?>

정도만 나오도록 코딩하는 것입니다.

그리고 나서 해당 html 문서들은 필요한 부분에다가

적절히 include 하면 됩니다. 즐거운 날 되시기 바랍니다. :-)

익명 사용자의 이미지

emacs사용자는 말이없다...

익명 사용자의 이미지

효율적인 코딩??

지금까지 언어책에는 꼭 위와 같은말이 있었따...

2번이상 쓰는 것은 함수로..

변수이름의 정의 통일..

함수이름의 정의 통일..

블록당.. 칸맞추기...

goto 문보다는 반복문...

if문보다는 case문...

하지만.. 전... 그냥 삽질하는게 좋은데... -_-...

지금은 오라클을 베이스로 둔 상태에서

델파이로 프로그램짜는 일을 하는디...

대부분이 일이 리포트 출력... -_-...

지겹다.. 왠 리포트의 종류가 이리두 많은지...

전 항상 코딩을 할때마다.. 같은 기능이지만...

다른 방법으로.. 구현을 해보자라는...

식으로.. 일을 합니다..

덕분에.. 저의 소스보기를 동료들이 두려워하지여..-_-

함수를 만들어 써보기두 하구...

클래스 정의해서 만들어보기두 하구...

그냥 ctrl-c ctrl-v 로 만들구..

배열안쓰고.. list 구조로 맨들어도 보구...

효율적으로.. 일만 하는것보다는...

삽질을 많이 하는게.. 발전의 가능성이... 더..

있지 않을까..하는데...

잘못된 생각일까여.. -_-.....

익명 사용자의 이미지

효율적인 프로그램 얘기가 왜 편집기 얘기로 바꼇는지는 몰겠지만 나두 한마디

VIM 쓰다가 editplus 쓸려구 화면 뛰우곤 다음 라인으로 이동할려구 jjjjjj

웹에서 이렇게 문서작성할 때 작성 다하눈 ESC ESC

허미 데타가 없송 ;;

익명 사용자의 이미지

예전에 펄 책 보다가 좋은 글귀가 있어 기억해
두었습니다.

-코딩하기에 앞서 생각하라.

모든 일에 시행착오는 필수적이겠지만 그 시행착오를
어떻게 줄일 것인가를 궁리하면서 일을 하는 것과
일단 저질러 보자는 식으로 일을 하는 것 사이에는
엄청난 차이가 있습니다.
왜냐면 머리 쓰기 귀찮아서 차라리 노가다를 택해
버리면 끝까지 노가다에서 벗어날 수 없기 때문이죠.

가능하면 좋은 구현을 생각합니다. 근데 좀 버겹군요.^^

박응주의 이미지

삽질을 안하기 위해 이방법 저방법 생각하는
시간에 그냥 함 삽집하는게 훨 빠르당.

익명 사용자의 이미지

저도 초보라고 우기면, 초보겠지만.. 한말씀 드리자면..
삽질은 무조건 필요합니다.. 고 봅니다..
여기서 말하는 삽질은.. 진짜 삽을 들고 하는 삽질은 물론
아니고.. 좋은 말로 해서 시행착오입니다.. 이런 삽질은
그 사람을 발전시키죠.. 적어도, 자기가 의도한대로 해본
결과가 삽질이었다.. 이런거면 후회는 않할수 있을 겁니다..
삽질끝에 이루어진 성과를 보며 즐거워하려면, 일단 삽질을 해야 하지 않을까요.. 이런 즐거움이 없다면, 거 프로그래머로서의 즐거움이 반으로 줄어들지 않을까 하는 생각입니다.
삽질을 두려워하는 것은, 어느정도
전문가 수준이 되었을때 해도 충분할 겁니다.. 그때가면
필요없는 삽질할 수준이 아니기도 하겠지요..
중복되는 코드를 화일로 나누고, 함수로 빼고.. 좋은 방법
입니다만, 그런걸 객체로 생각해 보는것도 좋을것 같습니다..
객체지향 개념은 괜히 한번 나와본게 아니죠.. 홀딱 빠질
정도로 훌륭한 개념이 아닌가 생각합니다..
글구.. 플로우 차트 그리신다는 밑의 분 말씀이 훌륭한거
같습니다.. 플로우 차트까지는 필요가 없다고 해도.. 그냥
글로 적어봐도 될꺼고, .. 제 경우엔 클래스들 관계도를
그려봅니다.. 대충이라도 말이죠.. 글로 적기도 하구여..
이거 아주 큰 도움이 되죠..

걍 제 생각이었습니다..
수고하세요..

익명 사용자의 이미지


자신만의 변수선언 룰을 지킨다.

작은것은 매크로, 조금 큰 기능은 함수로,
확장성을 고려한다면 클래스로.. (클래스 쓸 일이
없어서 쓰진 않는다만..)

모듈화시켜서 컴파일 시간을 줄이고 디버깅 횟수를
줄인다던지..

설계를 자~알해서 문서화된걸 옆에 끼고 있으면
프로그래밍이 아니라 워드작업하듯이 코딩한다..

공개된 소스를 평소에 소설책 읽듯이 읽는 습관을
들여서 남들은 어떻게 코딩을 했는지 분석도 해보고..

지금까지 쭉 적어봤는데 난 그렇게 잘 안합니다. 호호호~
습관이 되야 하는데 그게 말처럼 잘 안되네..

P.S
vi든 에디터+ 이든 요즘 편집기들은 다 기능도 좋고
장단점이 있어서 뭘 쓰던 별 문제가 없다고 봅니다.
따지고 보면 통합적인 기능을 제공하는 이맥이 최고지 뭐..
난 vi만 쓴다만..

휙~

agolta_의 이미지

vi가 편집기인가요?
말두 안돼
세상에서 가장 뛰어난
IDE개발툴이죠.

익명 사용자의 이미지

소스 파일이 몇개정도라면 관계없겠지만

한 100개 이상의 파일이고 make 를 쓰고

컴파일까지 해야 하는 c나 c++ 파일이라면

editplus 나 울트라에디터 같은걸로는 좀 어려울거 같은데요.

일단 소스 분석만 하려해도 헤더와 소스 파일 합쳐서

한 50개 만 넘어도 저같이 머리 나쁜넘은

함수 따라가고 헤더 정의 따라가고 하다보면 엄청 헷갈립니다.

이경우에 Source Insight 라는 에디터를 강력 추천합니다.

함수나 정의에 커서만 갖다대도 선언부를 바로 보여줍니다..

그럼 수고들 하십시오..

익명 사용자의 이미지

단순히 마크업 언어나 스크립트 언어만 코딩할꺼라면 HOMESITE두 쓸만 하던데여? 물론 VIM만은 몬하더라두 나름대루 편리한 기능들이 많이 들어있더군요.. 글구 PHP코딩할때는 다른 개발자가 만들어놓은 ADD-ON중에 쓸만한게 많더군요..
HOMESITE 추천합니다..

익명 사용자의 이미지

에디터 얘기가 많이서 적는 건데 말이죠..

전 vi 중독의 길로 막 들어선 놈입니다.

제가 컴 없이 PC방을 전전하는 떠돌이인

지라.. PC방에서 윈도 기본 텔넷으로 접

속해서 24줄로 줄이고 색깔 바꾸고 폰트

바꾼 창에 vi를 띄워 홈페이지를 만든지

어언 2주일? (그전에도 물론 썼었지만.)

웹에서 글을 쓰고 있을 때였습니다.글을

다 쓰고 나서.. 누른 것은.. T.T

ESC!

오오! 확 지워지더군요. :( ctrl + Z 란

걸 모를때는 정말 황당한 일도 많았습니

다.. vi.. 조,조심하셔야 합니다! :)

익명 사용자의 이미지

^^ 저도 그런적 많답니다^^

ESC 때문에 똑같은글을 3번 적은 적도 있죠^_^;;
(멍청해서 그런가?^^)

exman_의 이미지

편집기는 vi를 강추합니다만, 주의 하셔야 합니다.

중독성이 강합니다.

www.vim.org에 가보시면 윈독용 vim을 받으실수 있습니다.

거기서 한글 설정(:set fileencoding=korea)만 해주면 정말 유용하게 쓸수 있습니다.

그리고....삽질도 많이 해봐야지 좋은 프로그램이 나오지 않을까요?

그렇게 몇번 삽질하다 보면 자신만의 효율적인 방법이 나올꺼라 생각 됩니다.

메롱이의 이미지

편집기종류를 보니 윈도그 사용하시나보네여...
일단 편집기를 하나 추천하져
AcroEdit라는 건데여 국산이고 프리이고 기능 막강합니다.
저도 윈도그 작업에선 이거 씁니다.
편하거든여 ^^
그리고 vi 편집기가 사용하기엔 첨엔 불편해도 자주 사용하시면 이보다 좋은 에디터가 또 있을까하는 생각이 드실겁니다.
이미 생각하고 계실지 모르지만...

white23의 이미지

안녕하세요...

흠흠흠...
우선은 편집기를 바꿔 보시는게 어떨지...
물론 editplus나 notpad도 아주 좋은 프로그램이지만(전 이걸로 코딩해 본적은 없지만서도)...
vi 편집기 이거 아주 편합니다.
그리고 항상 어떤 작업(코딩)을 하시 전에 순서도 정도는 그려 보시는게 어떨실지?
이거 좀 불편하지만 삽질 안하는 가장 좋은 방법인듯...
한번 flowchart만 제대로 그려 놓으면 일은 일사천리로 진행됩니다.
그러나 저도 이건 생활화가 아직...^^

<어떠한 역경에도 굴하지 않는 \'하양 지훈\'>

어떠한 역경에도 굴하지 않는 '하양 지훈' - It's Now or Never!!!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.