Transcript 스터디의 착안
자바지기 2007년 SW-DESIGN STUDY
장회수
본 스터디는 각 참여자의 설계지식의 함양에 목적을 둔다.
1. 개발을 어떻게 해야 효율적으로 할것인가?
2. 어떤 지식을 쌓아야 개발에 대한 중심을 관통하는 지식을 가지게 될것인가?
3. 실천 방법은 무엇인가?
4. 어떤 형태의 개발 방법과 사상이 나에게 가장 잘 맞는가?
5. 다른 이들을 어떻게 리드하고 설득 할 것인가?
라는 개인적인 생각에서 출발함.
자바지기 2007년 SW-DESIGN STUDY
스터디의 착안
1. OO 개발에 관련된 지식의 함양
2. 지식의 발전을 통한 자신감의 배양
3. 표현력의 향상
4. 커뮤니케이션 능력의 증대
5. 다른 이의 의견을 이해하고 스스로의 설득력의 향상
6. 골방에 박힌 개발자가 되지 말자!
자바지기 2007년 SW-DESIGN STUDY
스터디의 목적
발췌 : 오달자님의 블로그
1 : 고객은 요구사항을 프로젝트 팀에게 간략하게만 설명한다. 자신의 요
구사항을 다 이야기해주는 친절한 고객은 없다. 알아서 잘 해주기를 바라
는 고객이 대부분이다.
2 : 프로젝트 리더(PL)는 고객이 말한 것을 자세히 파악하지 못하고 일부
분만 어렴풋이 이해한다.(선반이 3개에서 1개로 줄었고 나무에 매다는 방
식도 나뭇가지 양쪽에 각각 매다는 것으로 이해한다.)
3 : 업무를 분석하고 설계한 결과는 전혀 연관성이 없고 실제 구현되기 어
렵게 디자인되어 있다. (나뭇가지가 땅에서 나오고 나무는 둘로 잘라져
있다.)
4 : 프로그래머가 짠 코드는 응집력이 떨어지고 나무에 매달 수 없을 정도
로 축 늘어져 있다. 쓸데없는 코드로 가득하다.
5 : 영업은 고객에게 실현될 수 없는 장미빛 공약을 남발하여 프로젝트를
더 힘들게 한다. (세상에 대한민국에 안되는 게 어디 있냐마는 럭셔리한
의자를 가느다란 나뭇가지에 매달 수 있다고 허풍을 치다니.)
6 : 프로젝트 산출물은 납기준수라는 미명하에 거의 흔적을 찾아볼 수 없
다.(흔적은 그림자만 남아 있어서 이해하기는 거의 불가능)
7 : 실제 구현되어 사용할 수 있는 프로그램은 거의 없고, 있어도 업무에는
별 도움이 안되는 프로그램들이다.(끈만 매달았으니 진척은 100%지만 실
제 구현은 절반도 채 안된다.)
8 : 고객에게 청구하는 금액은 정확한 기준이 없이 들쭉날쭉하다. (마치
롤러코스트를 타는 것처럼 어쩔 때는 거의 공짜로 해주겠다고 하다가 만
만한 고객을 만나면 과당청구하기도 한다.)
9 : 회사에서 지원받은 건 전혀 없다. 어떤 문제가 발생하더라도 프로젝트
에서 알아서 잘 해결하라는 미션 임파서블이 프로젝트의 목표이다.(지원
을 받으면 오히려 나무를 자르게 되는 역효과가 크다.)
10 : 고객이 정말 필요한 것은> 아뿔싸, 고무 타이어가 튼튼하게 매달린 그
네였다. 그렇다면 프로젝트의 운명은? 재개발 아니면 클레임이다
자바지기 2007년 SW-DESIGN STUDY
의사 소통?
[출처: ZDNet-Korea – 박민우 님의 컬럼에서 발췌 ]
1. 프로그램 하는 일이 즐거워서 개발자가 됩니다.
2. 처음에는 평생 개발자가 되고자 합니다.
3. 선배가 개발자 정년 35살 이라고 합니다.
4. 무슨 소리냐고 경력이 쌓일수록 좋은(?) 개발자가 될 수 있다고 빡빡 우깁니다.
5. 2-3년 개발자가 무엇인지를 이해하기 시작합니다.
6. 4-5년 되면 개발자의 한계(수명?)을 인식하게 되며, 주변의 비슷한 나이의 기획자 등의 동료와
사회에서의 위치(?)를 비교합니다.
7. 정년을 조금 더 연장하려고 기술 개발에 치중합니다.
8. 7-8년 되면 회사에서 기획이나 영업 마인드를 가지기를 원합니다.
9. 위 과정을 거치다가 개발을 계속할지 관리자가 될지를 고민하고, 대부분은 관리자의 길을 선택
합니다. (개발자의 미래가 불확실하니까)
우리의 정년은 35세 입니까?
아니라면 ?
무엇과 어떻게 가 정해져야 합니다.
자바지기 2007년 SW-DESIGN STUDY
개발자의 정년은 35세?
[출처: ZDNet-Korea - 안윤호 님의 컬럼 ]
http://www.zdnet.co.kr/itbiz/column/anchor/mindengine/0,39030382,39152801,00.htm
피터 노빅이 제시한 프로그래밍을 배우는 방법
- 프로그래밍에 관심을 가져보고 정말 재미가 있다고 생각해야 10년 정도를 기꺼이 쏟아 부을 수 있다
- 다른 사람의 프로그램을 읽어보고 다른 사람과 이야기해야 하는데 이 과정은 어떤 책이나 교육과정보다 중요하다(다른 사
람의 작품을 읽어보지 않으면 당연히 다른 사람에게 읽힐 작품을 쓸 수 없다.).
- 가장 좋은 배우기는 실제로 해보면서 배우는 것이고 이 방법을 더 적극적으로 체계화해야 한다는 것이다. 최고의 성취는 오
랜 기간 경험을 쌓으면서 생기는 것이 아니라 노련한 사람의 경우에 있어서도 끊임없는 개선으로 이루어지기 때문이다(이
과정에서 엄청난 에너지가 필요하다는 것을 알고 있다. 버전업과 점진적인 발전 앞에는 장사가 없다.).
- 컴퓨터 학과가 가르쳐주는 것이 전부가 아니며 일을 하면서 배울 수도 있다.
- 프로젝트를 다양하게 해보면서 어떤 프로젝트에서는 최고의 프로그래머가 되어 다른 사람들을 리드하고 비전을 제시해 보
기도 하고 어떤 프로젝트에서는 다른 사람으로부터 지도 받을 필요가 있다(다른 사람에게 무엇인가를 가르쳐보는 것이 최고
의 학습이라는 말이 있다.).
- 다른 사람이 이끄는 프로젝트에 참여하여 다른 사람의 프로그램을 이해한 후 원래의 작성자가 놓친 부분을 고쳐보기도 하
고 자기의 프로그램을 관리할 다른 사람들이 쉽게 작업할 수 있는 프로그램을 작성하기도 해야 한다(작가의 표현력은 여러
번 고쳐 써 보면서 증가한다고 한다.최고의 글쓰기는 다시 써보기라는 말도 있다.).
- 다양한 프로그래밍 언어를 배워라(여러가지의 패러다임을 배울 필요가 있다.).
등등등,
자바지기 2007년 SW-DESIGN STUDY
10년동안 프로그래밍 배우기
1.
2.
3.
4.
새로나온 라이브러리, 오픈소스들. 써보기에 바쁘다
만든 이의 설계 사상을 이해하기는 커녕 API도 보기 힘들어서 남이 만든 튜토리얼이나 예제 소스를 뒤지고 있다.
무언가를 만들려고 하면 무턱대고 만들고 있다.- 사고의 체계가 없다.
핵심을 관통하는 기술에 대한 직관이 부족하다.
- 자바를 하는 사람은 JVM, OO를 하는 사람은 OOAD 능력 등
TO-BE
1.
2.
3.
4.
5.
구현을 이해하기 위해서 남의 코드를 많이 봐야 겠다. - 오픈
남의 코드를 볼 때 reverse 해서 그 사람의 사상을 이해하는 습관을 길러야 겠다.
설계와 구현의 본질을 파악하는 고민과 추적의 시간을 가져야 겠다.
다른 이와의 커뮤니 케이션을 하는 방법에 대한 깨달음이 있어야 겠다.
표현력을 증대 시키겠다.
자바지기 2007년 SW-DESIGN STUDY
현재 나 자신의 위치
1. 스터디에 참여하는 각 참여자들은 사용하는 언어에 대해 ( 특히, 커뮤니케이션의 활성
화를 위해 자바 ) 숙지하고 어느정도의 경험을 가지고 있다고 가정한다.
2. 첫번째 목표 : OOAD 라는 것에 대한 탐구를 목적으로 한다.
3. 두번째 목표 : 표현하는 방법에 대한 깨달음을 각자가 가지는 것을 목적으로 한다.
4. 세번째 목표 : 스스로의 방법론을 구축한다.
5. 네번째 목표 : 현재 우리가 참여하는 개발 환경에서의 패러다임과의 접목을 어떻게 할
것인지 깨달음을 얻는 것을 목적으로 한다.
6. 다섯번째 목표 : 내가 가진 생각을 남에게 어떻게 표현하고 설득하고 남의 얘기를 어떻
게 들을지 자신을 돌아보고 가다듬는 시간이 되기를 목적으로 한다.
자바지기 2007년 SW-DESIGN STUDY
스터디 의 방향
1. 일단은 첫번째 운영자는 "장회수“ 로 한다.
2. 두번째 책 부터 운영하는 사람을 돌아가면서 정할지를 첫모임에서 정한다.
3. 모임당 회비는 만원으로 한다. 불참자는 오천원으로 한다. ( 정확하게 정해진 인원으로
운용, 중간 참여자 있을시 표결에 붙인다. )
4. 회비의 관리는 총무를 별도로 정한다.
5. 회비의 운영 내역은 회의실 대여비, 프리젠테이션 비용, 여타 비용
자바지기 2007년 SW-DESIGN STUDY
스터디의 운영
SITE RESOURCE
도움될 만한 사이트 리스트
http://www.cs.colorado.edu/~kena/classes/6448/s05/lectures/
http://agilejava.net/tt/
http://www.openseed.net/forum/
http://domaindriven.tistory.com/
http://www.objectworld.org/
아키텍쳐 사이트 리스트
스터디 하는 데 있어 참고할 커뮤니티 ( 벤치 마킹 )
http://www.ibm.com/developerworks/kr/architecture/newto/
http://www.devpia.com/AnD.MAEUL ( POSA )
http://agilejava.net/tt/
http://www.openseed.net/forum/
http://www.cs.colorado.edu/~kena/classes/6448/s05/lectures/
• 이름
• 나이
• 직업/회사/현프로젝트
• 주로 해온일 그리고 잘하는 것
• 관심사
• 스터디 참여 목적
자기 소개
자기 소개