프로그램 설계 스킬업에 대해서 헬프

icabord의 이미지

안녕하세요.

같은 질문을 또 올립니다.

다름이 아니라, 다들 아시다시피 자료구조, 알고리즘 같은

어떻게 하면 프로그램을 효과적으로 짤 수 있는지에 대해서는 거의 배우셨을 거라고 봅니다.

저 또한 저 두 과목을 배웠으며, 잘 안다고 할 수 없지만 어떤 것이 있으며 어떤 것을 말하고자

하는 지는 알고 있습니다.

그런데;;

자아비판 일 수도 있지만, 제가 프로그래밍 한 것을 보면 제가 봐도 절대 좋은 프로그램이라고 할 수는 없는 것

같습니다.

결과가 나오지만, 흔히 말하는 하드코딩과 가독성이 떨어지는 코드를 보고 있자면 소질이 없는가보다 라는 생각도 드네요.

제가 궁금한 것은

어떻게 하면 프로그램을 잘 짜는가, 그 무엇보다도 설계를 잘할 수 있는가 입니다.

커널 소스를 많이 보라 라던가, 짬이 해결해 준다 라는 답변도 환영합니다.

그냥 대충이라도 답변 부탁드립니다.

좋은 하루 되세요.

feanor의 이미지

좋은 글을 쓰려면 좋은 글을 많이 읽어봐야한다고 하지요. 좋은 프로그램을 짜려면 좋은 프로그램을 많이 읽어보셔야 합니다.

아파치 소스 같은 거 받아서 읽어보세요.

shamlock의 이미지

저도 실력이 없어서요 감히 말씀을 드리기가 어렵지만
답답해하시는거 같아... 제 생각을 말씀드리겠습니다.

제가 대학다닐때는 사실 설계를 생각해볼 겨를이 없었습니다.

주먹구구식으로 작은 프로그램을동작시켜보는 예제작성해보는게 전부였습니다

그런데 이런게 쌓이다보니 4학년때부터 슬쩍
리눅스 커널소스도 보게되고, 졸업작품 만들기 위해 유명한 오픈소스도 보게되었습니다.

그 소스가 기술적인 공부가 된 부분도 있지만...
대형 프로그램은 이렇게 작성하니까 좋구나
하는걸 느낀것이 큰 이득인것 같습니다.

그래서 설계능력 향상에 도움되는
첫번째는.... 일단 큰 소스코드를 분석하는 것이라 생각합니다.
첨에는 완벽히 이해못하고 좌절하겠지만 반복하다보면 좌절도 익숙하게될듯..(제얘기입니다)

자바도 마찬가지 인것 같습니다.
다른 자바 라이브러리를 분석하다가 나도 모르게 흉내내게 되고 그러면
큰 프로그램을 작성할 수 있는 스킬이 쌓이는것 같습니다.
(개인적생각으로 자바의 스프링 프레임워크는 정말 잘된 설계입니다. )

이제 실력이 쌓여서 대형 프로그램을 만들만한 스킬이 있다치죠..
드디어 큰 소스코드를 직접 구현해보고 싶은데...
사실..
큰 소스로 뭘 만들지 모르는 경우가 많습니다.(제 얘기)
전공지식도 부족한데다 구현대상의 전체 구조를 모르니 만들만한게 없는거죠.
관심이 없어서 구현대상을 파악하기도 쉽지 않습니다.

그래서 중요한게 자기가 관심있는 또 재미있어하는 구현대상을 찾고
작은것부터 시작해서 기능추가를 통해 큰 소프트웨어를 만드는게 좋을것 같습니다.
저같은 초보자들은
만들다가 다시 뒤업고,다 지우고 다시 만들고 이런 갈아치우는 과정을 반복하게 될것 같습니다.
이게 두번째입니다.

세번째는 꾸준한 전공지식이 필요하다는 것입니다.
큰 소프트웨어가 전공지식이 부족한 상태로 제대로 만들어지기 어려울것 같습니다.

에공
내가 나한테 하는말같네요

@.@

icabord의 이미지

가야할 방향이 조금 잡히는 것 같네요 ^^

M.W.Park의 이미지

다독(多讀), 다작(多作), 다상량(多想量)

옛말이 틀린게 없습니다. ^^;

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

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