프로그램을 짜려고할때 어떤것부터 생각하시나요?

interoasis의 이미지

올해에 늦깍이 복학하는 컴퓨터학부생입니다. 아직 전공과정은 들어가보지도 않은...;;

요즘 복습삼아 C언어를 보고 있습니다만 책에 나와있는 문제들 풀기에도 끙끙대는 경우가 많네요.
대부분은 제가 이론을 몰라서라기보다는 짜는걸 어디서부터 어떻게 시작해야될지 모른다랄까요?!

물론 연습문제의 프로그래밍이니 여기분들에게는 간단한 코딩일뿐입니다만 프로그램의 구조라던지
설계법이라던지 이런내용이 있다면 이런것부터 공부해야하는건 아닐까라고 생각될정도로 코딩이나
새로운 기능 추가/수정하는데 어려움을 겪고 있습니다.

여기계신분들은 보통 간단한 프로그래밍을 할때도 설계라던지 구조적인 부분을 생각하면서 프로그
래밍을 하시는지요? 아니면 따로 접근하시는 방법이 있으신가요?

혹시나 권해주실만한 책이 있다면 추천해주시는것도 감사하겠습니다.

아니면,, 너무 오랜만에 책상앞에 앉아서 감을 못잡은것인지... ㅠ.,ㅜ

shint의 이미지

자유오픈소스 무료 강좌 사이트
http://kldp.org/node/119830
http://www.olccenter.or.kr/

보시면 좋을것 같습니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

interoasis의 이미지

헉, 윈도우에서만 강좌를 볼 수 있군요. 좋은정보 감사합니다.

버박에서 돌려봐야겠네요. 우분투 사용중이라...
그런데 이중에 어떤강의를 저에게 추천해주시는건지요?

shint의 이미지

그냥 다 보시면 좋을거같아요;;;;;

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

interoasis의 이미지

음... 하긴 다보는게 좋긴하겠지요.ㅎㅎ
우선 C언어 강좌부터 봐야겠네요.
이상엽님 바이블책을 예전에 봤었던지라 어떻게 강의하실지 궁금..

chadr의 이미지

프로그램을 짜기 전에 가장 선행되어야 할 부분은

"자신이 도대체 무엇을 하고 싶은가" 입니다.

이를 명확하게 하고 나서 이를 구현하기 위해서 데이터들이 오가는 구조를 구상하고
이를 기반으로 설계를 하고 실제 구현을 시작합니다.

무작정 개발툴을 실행하고나서 키보드를 만지작거리는 것 보다는 종이와 펜을 가지고
끄적이는것이 훨씬 낫습니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

interoasis의 이미지

무엇을 하고싶은지는 문제에 제시돼있으니 해결된다치더라도

막상 책상앞에서 끄적이는 제 모습에비해 다른사람들은 열심히 키보드 두드리고있고,,
그런 모습에 좀 초조했던 기억은 나네요. 다시 차분히 생각해봐야겠습니다.

오리가날지못해우물에빠진날의 이미지

프로그램 개발에 있어서
키보드 두드리는건 거의 마지막에 해야하는 일이지요.

ydhoney의 이미지

Code Complete 같은건 어떠실지 :-)

interoasis의 이미지

책 추천 감사합니다. 내일 서점에 들러서 한번 봐봐야겠네요.
원서로도 있을지...

kalevala의 이미지

http://ko.wikipedia.org/wiki/%EC%95%A0%EC%9E%90%EC%9D%BC_%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EA%B0%9C%EB%B0%9C

이런 것도 도움이 될거라 믿습니다 :)

위에서 언급된 코드 컴플릿과 더불어 리팩토링도 추천드립니다.

interoasis의 이미지

아.. 에자일.. 예전에 여기서 몇번 들어봤었던것 같네요.
링크해주신곳에는 추상적인 개념만 있어서 좀더 찾아봐야할듯 합니다.
저에겐 좀 앞서가는 내용인것 같기도하지만..ㅎㅎ

아, 리펙토링이란것도 한번 보겠습니다. 조언 감사드립니다.^^

camelcricket의 이미지

C 언어보다는 Java 같은 좀더 편한 언어가 좋지 않나 싶네요,
일단 무조건 만들어보고 발전시켜나가는 방법도 좋을거 같습니다.

딱히 뭘 만드실지 모르겠으면,
여러가지 프레임웍들을 익히시는 것도 좋을거 같습니다.
프레임웍을 익히면서 그 프레임웍에 깔린 디자인 철학을 이해할 수 있거든요.

interoasis의 이미지

아,, 우선은 몇년만에 책상으로 돌아온거라 C언어 복습이 목적입니다.
(정확하게는 연습문제 풀이가 목적이죠. 교재는 ABoononC..)
솔직히 아직 전공과정에 들어간것도 아닌지라 아는것도 없습니다.;;

말씀하신 프레임웍이라는 단어조차도 저에겐 생소하네요.
이것도 한번 찾아보겠습니다.

emptynote의 이미지

저 같은 경우 프로그래밍 짤려고 할때 고려하는것들입니다.
프로그램 구조, 설계 중요합니다.
하지만 이런것도 생각해 봐야 하지 않을까? 해서 적어봅니다.
다소 쓰레드에 맞지 않는 글이라도 넓은 아량으로 봐주시기 바랍니다.

1. 개발 목적 : 윷놀이 클라이언트
2. 개발 언어 : C언어
2.1 GUI lib : GTKMM
3. 개발 도구
3.1 DB : mysql
주) mysql 선택이유 : 공짜이며 DB개발을 도와줄 sql-query browser및 모델링 도구(=mysql-workbench) 제공
3.1.1 mysql 모델링 도구 : mysql-workbench
3.2 IDE : 이클립스
주) 이클립스 같은 IDE가 아닌 vi라면 빌더로서 autoconf 이용
3.3 CVS같은 버전관리 : Subversion
3.4 javadoc같은 문서화 도구 : doxygen
3.4.1 doxygen GUI tool : doxywizard
4. 개발
4.1 명몇규칙 정하기 : 자바식 명명
주) 헝가리 표기법으로 하지 않음. vi로 소스를 볼땐 난감하지만 이클립스에서 보면 쉽게 type을 알수있음

JuEUS-U의 이미지

아무래도 목적이 가장 중요하죠...
목적이 뚜렷하지 않으면 아키텍쳐가 불필요하게 복잡하거나 너무 단순해집니다.
덤으로 설계 자체를 뒤엎는 일도 잦아지죠.

M.W.Park의 이미지

예전에는 성능, 확장성, 느슨한 결합 등등 많은 것들을 생각했지만,
요즘은 딱 두가지만 생각합니다.

1. 혹시 누가 똑같은 것을 만들어 놓지 않았을까? (거인의 어깨에 올라서면 멀리 보입니다. 바퀴를 새로 발명할 필요도 없죠).
2. 테스트 가능성 (여러 책에도 나와있고 저도 체득한 것입니다. 테스트 범위내의 정확한 동작을 보증하며 과잉 엔지니어링을 미연에 방지합니다.)

특히 2번과 관련하여 스펙을 검사하는 자동화된 테스트를 준비하면 인생이 좀 편해집니다.

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

unipro의 이미지

1번 강추!!!
회사라면 동료들에게 "이거이거 하는데 도움이 되는 소스 없나요?"라고 묻기를 강력히 추천 합니다.
개인적으로 사용하는 것이라면 검색과 커뮤티니를 이용해서 누군가 만들어 놓은 오픈 소스를 활용하면 좋더군요.

2번에 대해서는 뭘 공부해야 하는 건가요?

내 블로그: http://unipro.tistory.com

neocoin의 이미지

Test Drivent Development

Behavior Driven Development

참고할만한 관련 한글 번역 서적

  • 테스트 주도 개발
  • 리펙토링
  • 실용주의 프로그래밍

이외에도 관련 서적은 많습니다.

ps. 위와 같은 내용을 의도하시는거 같네요. 아니라면 추가 의견 주세요.