'■프로그래밍 일반'에 해당되는 글 13건
- [2011/06/15] [컨퍼런스] 제 11 회 2011 한국자바개발자 컨퍼런스
- [2010/05/28] [사이냅소프트] 2009년 채용공고
- [2010/05/28] [사이냅 소프트] 2010년도 사이냅 채용공고
- [2009/11/25] 컴퓨터 역사
- [2009/10/13] [기술면접] 프로그래밍 면접
- [2009/02/12] [필독서] UML 실전에서는 이것만 쓴다.
- [2009/02/09] [프로그래밍] 자바스크립트 완벽 가이드(5/E) 스터디
- [2009/02/09] [기술면접] 기술면접 시 도움이 되는 책 들
- [2009/02/02] [프로그래밍 기법]
- [2008/10/27] [DC 펌] 코더에서 프로그래머로... (펌)
|
<어떤 일을 하나요?>
<어떤 사람을 찾나요?>
|
|
<어떻게 진행되나요?>
2. 전화인터뷰 2009.09.14.(월) ~ 2009.09.18.(금)
3. 실무자면접 2009.09.21.(월) ~ 2009.09.25.(금)
4. 임원면접
<복리후생>
|
@ 필수 요건
- 한국어로 의사소통하는데 문제가 없는 분.
- 널리 쓰이는 자료구조와 알고리즘에 대해 충분한 이해를 가진 분.
- 자바스크립트, HTML/CSS, 자바, DBMS 전반에 대해 기본적인 역량을 갖춘 분.
@ 아래에 해당하는 분은 가산점 혜택이 있습니다.
- HTTP 등 통신 프로토콜에 대해 깊은 이해가 있는 분
- 대용량 DB 및 서비스 환경에 대한 경험과 노하우가 있는 분
- VML과 SVG를 잘 알고 계신 분
- 파이썬으로 웹로봇 정도는 제작 가능한 분
- XML과 XSLT를 잘 활용하실 줄 아는 분
사이냅 소프트의 입사 자격 요건이다.
어떤 방향으로 나아갈지 갈피가 안잡히는 요즘.
공부해 보도록 하자.
데이빗 메릴: 생각하는 장난감 블록 '시프터블'에 대하여
http://www.ted.com/talks/lang/kor/bill_joy_muses_on_what_s_next.html
빌 조이가 미래에 대해 고민하다.
http://www.ted.com/talks/lang/kor/george_dyson_at_the_birth_of_the_computer.html
George Dyson - 컴퓨터의 탄생
http://www.ted.com/talks/lang/kor/alan_kay_shares_a_powerful_idea_about_ideas.html
알란 케이의 아이디어에 대한 파워풀한 아이디어
http://www.ted.com/talks/lang/kor/evgeny_morozov_is_the_internet_what_orwell_feared.html
에브게니 모로조프: 인터넷은 오웰이 우려했던 바로 그것인가?
http://www.ted.com/talks/lang/kor/jonathan_zittrain_the_web_is_a_random_act_of_kindness.html
조너선 지트렌: 임의적 친절 행위로서의 웹
지은이 Eric Giguere/서환수 출판사 한빛미디어 | 발행일 2007년 10월 10일
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| 도서특징 |
| [전문가 서평] 또 UML 책인가? 이 책은 UML을 공부하려는 사람을 위한 책이 아니다. 이 책은 UML을 사용하려는 사람을 위한 책이다. 이 책의 철학에 그나마 가까운 UML 서적을 꼽는다면 마틴 파울러가 쓴 'UML Distilled' 정도를 꼽겠다. 하지만 그것마저도 가까운 것이지, 이토록 실용적이고 실전적이면서 최소주의(minimalism)적인 UML 서적은 본인이 아는 한 없다. 필자가 이 책의 초고를 처음 볼 때 ‘UML을 언제 사용하는가’라는 질문에 저자가 답한 것을 읽고는 뒷통수를 죽비로 얻어맞는 느낌을 받았다. ‘뭔가 꼭 테스트해야 할 것이 있고 그것을 테스트하는 데 코드로 하는 것보다 UML로 하는 것이 더 값싼 경우에 UML을 사용한다.’ 따악---! 실무에서 UML을 사용해본 사람은 이 책을 읽으면서 너무 즐거운 나머지 박수를 치고 발을 구르게 될지도 모르겠다. UML을 사용해보지 못한 사람은 무림비공을 거저 줏은 느낌을 받을 것 같다. 혹 주변의 질투와 시기의 눈초리를 받을지도 모르겠다. 군대 다녀온 사람이 별다른 이유 없이 면제된 사람을 보고 질투심을 느끼는 것처럼. 이 책은 사실 UML만 가르쳐주지는 않는다. XP와 객체 지향 설계의 원칙까지도 덤으로 알려준다. 사실 이런 부가 지식 없이는 UML을 효과적으로 사용하기 어렵다고 생각한다. 특히 뒷부분의 사례 연구를 통해 구체적인 사례에서 UML이 어떻게 사용되는지, 설계는 어떻게 하는지 등을 따라가다 보면 어느새 주변의 시기와 질투를 한 몸에 받는 자신을 발견하게 될 것이다. - 김창준 (월간 마이크로소프트웨어 편집자문위원, 익스트림프로그래밍 컨설턴트) [누구를 위한 책인가] 프로젝트를 진행하려면 UML을 사용해야 하지만, UML은 너무 복잡하고 난해하다. UML 책을 한두 권 읽어서 이론은 잘 알지만, 실무에서 UML을 어떻게 활용하는지 감을 잡을 수 없다. 프로젝트에서 쓰는 것만 배울 수는 없을까? 현업 개발자에게 맞춰 실무에 쓰기 편하게 알아야 하는 개발자 관점에서 UML을 다루었다. UML을 활용하기 위한 방법론과 리팩토링까지 보여준다. 실제 설계 예시를 단계별로 분석/설계/구현/검증까지 보여준다. 이 책에 코드가 많은 이유는 ‘평범하고 나쁜 설계’를 ‘좋은 객체지향 설계’로 발전시키는 과정을 빠짐없이 보여주기 때문이다. [이 책의 특징] 코드와 다이어그램이 매핑되어 다이어그램을 코드로 즉시 떠올릴 수 있게 소스코드 수준으로 설명해준다. 다양한 프로젝트를 진행해본 저자의 경험에서 우러나온 글이라서, 실제로 프로젝트에 UML을 적용하기로 마음먹은 개발자가 첫 발을 내딛기에 좋다. 저자가 누누이 “적게 쓰는 것이 좋은 것이다”를 강조하며 실제 프로젝트에서 그 다이어그램을 잘 쓰지 않는다면 되도록 적게 쓰라고 말한다. 각종 다이어그램의 단점과 주의할 점을 딱 집어서 설명해서, UML을 사용하면서 느끼는 궁금증이나 불명확한 부분에 대해 권위 있는 사람이 단정적으로 정리를 해준다. UML은 단지 의사소통이나 대규모 프로그램의 로드맵이나 막바지 문서화에 쓰는 도구일 뿐이다. 우리의 목표는 제대로 객체지향적으로 개발하기를 원한다. 최근 관심을 불러일으키는 XP 방법론은 저자의 UML 관(觀)과 잘 들어맞는다. 간략하게 활용하는 예를 보여준다. 좋은 설계를 보면 누구나 어떻게 저런 생각을 해 냈을까하고 궁금하게 여기기 마련이지만 대개 좋은 설계의 예를 보여주고 끝날 뿐이다. 하지만 이 책은 평범하고 나쁜 설계에서 어떻게 좋은 설계로 발전시켜 가는지 중간 단계를 생략하지 않고 모두 보여준다. 프로젝트 관리와 설계에 눈을 떠가는 개발자가 현장에서 만나는 문제를 어떻게 풀어야 할지 선배 개발자가 명쾌하고 유머러스하게 조언해주는 책이다. [부/장별 내용 요약] 1장 - 이 책의 개요 정말 바쁜 사람이라면 1장에서 다룬 것만 읽어도 남이 그린 다이어그램을 읽거나 간단한 다이어그램을 그리는 데 문제가 없을 것이다. 2장 - 다이어그램으로 작업하기 UML는 문서화를 위해 쓰는 것이 아니다. 그러면 UML을 언제, 왜 사용해야 할까? UML이 단지 의사소통이나 대규모 프로그램의 로드맵을 만들거나 막바지 문서화에 쓰는 도구일 뿐이다. UML 지상주의에 빠지지 마라. 3장 - 클래스 다이어그램 UML 클래스 다이어그램의 기본개념과 세부사항을 제시하고, 코드와 다이어그램을 대응시키고 표기법의 핵심적인 내용을 정리한다. UML로 표기할 수 있는 것은 다양하지만, 대부분 UML을 너무 적게 쓰는 편이 너무 많이 사용하는 편보다 낫다. 4장 - 시퀀스 다이어그램 시퀀스 다이어그램은 반복과 조건, 비동기 메시지, 다중 쓰레드처럼 복잡한 상황에서 유용하다. 그러나 모든 메소드의 시퀀스 다이어그램을 그리려고 하지는 마라. 5장 - 유스케이스 유스케이스 개념을 명확히 하고, 기본 흐름과 대안 흐름을 어떻게 작성해야 할지 설명한다. 복잡한 유스케이스라는 암흑의 길로 발을 들여놓지 마라. 6장 - OOD(객체지향 개발)의 원칙 나쁜 설계 냄새가 날 때 단 하나의 책임 원칙(SRP), 개방-폐쇄 원칙(OCP), 리스코프 교체 원칙(LSP), 의존 관계 역전 원칙(DIP), 인터페이스 격리 원칙(ISP) 등 다섯 가지 원칙을 어떻게 써야 할지 소개한다. 7장 - 실천방법: dX 익스트림 프로그래밍(XP)을 간략하게 설명해서, 개발 방법론이 아직 정립되지 않은 팀에서도 비교적 빨리 dX 개발 방법론에 익숙해질 수 있다. 8장 - 패키지 패키지 다이어그램 표기법을 설명한 다음, 소프트웨어 모듈을 패키지로 어떻게 나누어야 좋은지 릴리즈 재사용 등가 원칙(REP), 공통 폐쇄 원칙(CCP), 공통 재사용 원칙(CRP), 의존 관계 비순환 원칙(ADP), 안정된 의존 관계 원칙(SDP) 등 다섯 가지 원칙을 통해 설명한다. 9장 - 객체 다이어그램 간단한 소켓 서비스 프레임워크를 예로 들어 객체 다이어그램이 유용한 경우를 설명한다. 하지만 클래스 다이어그램에서 바로 유추해내기 힘든 경우를 제외하고는 큰 쓸모가 없다. 10장 - 상태 다이어그램 많은 개발자들이 간과하지만 사실은 매우 유용한 유한 상태 기계(FSM)를 소개하고, FSM을 상태 다이어그램으로 어떻게 표기하는지 설명한다. 덤으로 저자가 직접 만든 상태 기계 컴파일러를 사용해 직관적인 문법을 사용하는 작은 언어로부터 FSM을 소스 코드로 생성하는 방법도 설명한다. 11장 - 휴리스틱과 커피 실제로 커피 메이커를 객체 지향으로 설계하면서 초보자가 빠지기 쉬운 실수들을 지적하고 어떻게 더 나은 설계로 개선하는지 단계별로 설명한다. 고차원 정책과 세부사항을 격리하고 행위 중심으로 설계하며 허깨비 클래스, 하나님 클래스 등을 조심하라. 12장 - SMC 원격 서비스: 사례 연구 여태까지 설명한 UML 다이어그램을 전부 사용해서 실무 수준의 복잡한 애플리케이션을 설명한다. 10장에서 설명한 상태 기계 컴파일러를 원격으로 호출하여 사용하게 해주는 서버와 클라이언트를 사례 연구로 제시한다. 애플리케이션의 모든 부분을 빠짐없이 UML 다이어그램으로 그린 다음, 그에 대응하는 모든 코드를 보여주므로 실제로 큰 규모의 프로그램 개발에서 UML이 어떻게 쓰이는지 또렷이 알 수 있다. [추천 서평] 과연 이 다이어그램이 코드랑 무슨 상관인가?이 책을 리뷰하면서 옛 생각이 머릿속을 스쳐 지나갔습니다. “과연 이 다이어그램이 코드랑 무슨 상관인가?” 이 질문은 UML 처음으로 접한 사람들이 대부분 제일 처음으로 하는 질문입니다. 저 역시 4년 전에 UML을 처음 만나고 나서 했던 질문이기도 합니다. 그 당시에는 코드와 다이어그램간의 구체적인 상관관계를 속시원하게 털어놓는 책이 없었습니다. UML Distilled와 같은 명저가 있었지만 그 당시 객체지향 분석설계에 제가 거의 경험이 없는데다가 그 책 자체가 코드와 다이어그램을 매핑하지 않으려고 하는 경향이 강했습니다. 4년 전에 그토록 갈구했던 답이 이 책 속에 있었습니다. 그것도 아주 구체적으로. 물론 UML 자체의 특성상 코드와 다이어그램의 관계가 1:1 매핑된 것이 아니기 때문에, 완벽한 답이 아닙니다.(완벽한 답이란 존재할 수 없죠.^^) 단지 이 다이어그램으로 코드를 어떻게 나올까하는 ‘감’을 잡을 수 있습니다. 그러나 이 책이 그런 감만 잡게 해줬다면 평범한(?) UML 서적으로 묻혔을지 모릅니다. 객체지향 분석 설계하면서 생기는 UML 사용 노하우가 녹아 있지요. 뭔가 또 부족한가요? 네, 맞습니다. UML을 배우면 자연스레 다가가는 객체지향 분석 설계의 원칙도 다루고 있죠. 더 나아가 최근 뜨는 XP(eXtreme Programming)의 핵심도 다룹니다. 이 얇은 책에 이런 게 어떻게 다 있냐구요? 한번 확인해보길 바랍니다. 정말 다 있습니다. 마지막으로 다음같이 생각이 드는 분에게는 이 책을 적극 권하겠습니다. “다이어그램이랑 코드랑 대체 무슨 상관인 거야!” “UML 책 한 권 보고 남는 게 없어.” “UML 표기법 다 외워야 하는 건가?” “객체지향 분석 설계를 맛보고 싶어.” “뭐 이리 다이어그램이 많아!” “뭘 어떻게 써야 하지?” “도통 감이 안 잡혀.” - 미리 읽어 본 독자 서현호(objectworld.org) C++ 프로그래머도 이 책을 한 번 봐야 한다. 저자가 이 책을 자바 프로그래머들에게 UML을 가르치려는 책이라고 하는 것은 나도 잘 안다. 논리적으로 자바에 맞게 구성해놓았고 많은 예제들도 다 자바로 되어 있으니 확실하다. 하지만 좋은 UML 책을 찾는 C++ 프로그래머들에게도 이 책이 도움이 될 지도 모르겠다. 자바 예제들이 자바 언어의 복잡한 점을 모두 사용하지는 않으니까. 그럴 필요도 없다. 그러니까 자바를 잘 모른다고 해도 그냥 눈으로 코드를 읽기만 해도 무슨 뜻인지 알 수 있을 것이다. 머릿속으로 그냥 C++로 다시 작성해 볼 수도 있겠다. 그리고 자바가 C++보다 객체 지향적으로 더 순수하긴 해도, 문법이 C++만큼 강력하진 않지 않은가. 다중 상속도 없고, 템플릿이나 연산자 오버로딩도 없고. 이런 의미에서 C++를 자바의 상위 집합으로 생각해도 괜찮겠다. 그러니까 이 책의 자바 예제를 정면으로 보지 말고 눈을 가늘게 뜨고 보면 그냥 C++로 보인다! 너무 비유가 지나치다고 생각할지도 모르지만, 경험이 많은 C++ 프로그래머에게는 비유가 아니라 사실이다. - 아마존서평(Wes Boudville) 뛰어난 교육 도구 많은 UML 책과 달리 이 책은 글도 잘 썼고 재미도 있을 뿐 아니라, UML의 기본을 가르쳐주는 데 그치지 않고 독자를 더 훌륭한 프로그래머로 만들어준다. 이 책은 대다수의 UML 책처럼 UML의 모든 것을 피상적으로 다루지 않고, 모델링을 언제, 어떻게, 왜 사용하는지 설명한다. 그리고 이보다 더 중요한 내용인, 언제 사용하지 *말아야* 하는지도 설명한다. 저자는 모델이란 코드를 더 쉽게 이해하기 위한 설명일 뿐이고, 그런 역할을 하지 않는 모델은 쓸모없다고 생각한다. 이 책에서 UML의 모든 주제를 다루지는 않지만, 중요한 내용들을 적절한 수준에서 다룬다. 특히 저자가 나쁜 코드를 찾아내는 데 모델을 사용할 수 있다는 점을 보여주고, 기본적인 OOAD 원칙들도 몇 가지 논의하는 점이 마음에 든다. 내가 일하는 곳이 XP 기반은 아니지만, 저자는 설계에 대해서 약간 수정한 XP 접근 방법을 옹호한다. 그러나 저자의 접근 방법에는 XP와 무관한 좋은 내용도 많이 들어있다. 나는 이 책을 두고두고 참고할 수 있도록 결코 내 책상에서 먼 곳에 두지 않을 것이다. - 아마존서평 |
![]() |
| 저자소개 |
| 로버트 C. 마틴(Robert C. Martin) 객체 지향 설계, 패턴, UML, 애자일 방법론(agile methodology)과 익스트림 프로그래밍(eXtreme programming) 컨설팅 분야에서 선두를 달리는 오브젝트 멘터사(Object Mentor Inc.)의 대표다. 2002년 "Agile Software development: Principles, Patterns, and Practices(Prentice Hall)"으로 졸트상(JOLT Winner)을 수상했고, 베스트셀러 "Designing Object-Oriented C++ Applications Using the Booch Method(Prentice Hall)"를 저술했다. "Pattern Languages of Program Design 3(Addison-Wesley)"과 "More C++ Gems"를 편집했으며, 제임스 뉴커크(James Newkirk)와 "XP inPractice(Addison-Wesley)"를 공동 저술했다. 또 국제적인 개발자 이벤트에서 유명한 강연자이기도 하며, 4년간 C++ 리포트(C++ Report)의 편집자이기도 했다. [역자 소개] 이용원 중앙대학교 컴퓨터공학과에서 소프트웨어공학을 전공했으며, (주)소프트웨어크래프트 책임 컨설턴트, JStorm 자문으로 있다. 삼성생명 CM 지원 시스템에 프로젝트 매니저로 참여하고, 삼성생명 인터넷 몰 표준화와 동부건설 ERP 시스템, 삼성생명 CBD기반 자산 관리 시스템 개발, 조흥은행 국외점포 표준 전산 시스템에 아키텍트로 참여했다. "엔터프라이즈 자바빈즈(대청)"와 "J2EE 응용과 디자인 패턴(대청)"을 썼고, "EJB 디자인 패턴(인사이트)","J2EE Design Patterns(정보문화사)", "Thinking in Java(대웅미디어)"를 번역했다. 정지호 서울대학교 재학 중이며 현재 (주)언어과학에서 주임 연구원으로 있다. 한국어 Text To Speech 서버의 통신 하위 시스템, 유아용 한글 학습 게임 ‘디디미’, 영어 교육 솔루션인 ‘Dr. Listening’ 등 다양한 프로젝트에 참여했다. 파이썬, 펄, 루비 같은 동적 프로그래밍 언어들에 관심이 많아서 큰 규모의 시스템에 통합하는 일이나 UML을 동적 언어에 적용시킬 방법에도 관심이 많다. |
출처 : http://argus.tistory.com/20
16년동안 기술서적만 읽어오신 필독의 달인 아거스님의 추천도서입니다.
|
고수님들의 방법을 익히자 !!! |
자바스크립트 완벽 가이드 - 전2권 - ![]() 데이비드 플래너건 지음, 송인철 외 옮김/인사이트 신년계획 중 기술서적 10권 이상 읽기가 있는데 그 중 일환으로 작년에 사놓고 읽지 못했던 책을 다시 보기로 했습니다. 물론 저 혼자는 심심해서 회사 동료 몇 몇 분을 끌어들였습니다.^^
진행방식은 김창준님께서 블로그에 소개해주신 "바쁜 직장인을 위한 스터디 비결"을 따르기로 했습니다.
(삼색볼펜비법 빼구요^^ - 삼색 볼펜이 없어서ㅠㅠ)
나름 올 해 첫 스터디 진행인데 끝까지 마무리가 잘 되었으면 하는 바램입니다.^^
스터디가 종료되면(약 1.5 ~ 2개월 정도 예상) 정리된 내용들은 블로그에 포스팅하도록 하겠습니다. |
1. 자료구조 & 알고리즘
(C언어로 쉽게 풀어쓴) 자료구조 - 천인국
일단 모든 페이지가 컬러로 되있어서 그림을 식별하기 편하다.
내용도 기본적인 자료구조인 스택,큐부터 시작하여 리스트, 트리,
그래프, 정렬등의 자료구조의 전반적인 내용을 잘 정리해놓았다.
모든 자료구조를 직접 구현해 볼 수 있도록 수도코드 및 실제 C코드도 제공된다.
알고리즘 책의 본좌 중의 하나. 알고리즘 뿐만 아니라 자료구조도
다뤄서 사실 이 한권만 제대로 봐도 문제없다. 하지만 책이 일단 너무 두꺼워서 들고 다니기가 힘들고, 내용 자체도 증명 등의 수학적 측면을 많이 다뤄서 실제 면접에서 필요한 내용을 간추리기가 어렵다.
구현도 수도 코드로 되어있어서 실제로 적용해보기는 좀 어려운게 흠.
2. 운영체제
현재 우리 학교 운영체제 교재로 쓰이는 책이다.
분량도 적당하고, 운영체제의 필수 요소들도 빠짐 없이 다루고 있다.
(다른 책에는 다루지 않은 부분이 서울대 대학원 필기 시험에도 나왔었다-Virtual Round Robin-.)
다만, 교수님도 언급했었는데, 파일 시스템 부분이 이상하게도 DBMS를 설명하고 있어서 수업시간에는 다른 책을 참고했었다.
내공이 느껴지는 책. OS의 주요 개념인, 스케쥴링이나 메모리 관리를 중점적으로 다루고, 논리 회로부터 어셈블리, 기본적인 프로그래밍 기법들도 다루고 있다.
3. 컴퓨터 구조
간단하게 컴퓨터 구조를 복습할 수 있는 책이다.
주로 파이프라인과 캐쉬메모리에 대해 정리할 때 참고했다.
분량도 얇고 빠르게 한 번 볼 수 있는 책이다.
게다가 네트워크에 대해서도 간단하게 내용 정리를 해 놓아서
전반적으로 유용하게 참고할 수 있는 책.
전반적인 컴퓨터 구조 내용이 잘 정리되어 있는 책.
도식이 많이 첨가되어서 이해하기 편하다.
이 책에서는 주로 캐쉬 메모리와 버스 구조를 정리하는데 많이 참고하였다.
위의 책들 외에도 면접 준비를 하면서 다양한 책을 참고하였으나, 중복되는 내용도 많았고, 그 중에서도 위의 책들이 설명도 깔끔하고 이해되기 쉽게 되어있어서 언급해봤다.
2~3시간 동안 면접을 진행하면서 밑천이 다 드러나는 그런 면접이 아니라면, 위에 나온 책들 위주로 간단하게 정리해 간다면 무난할 것이라고 생각한다.
DC 펌 : http://gall.dcinside.com/list.php?id=pr ··· page%3D1
여기서 공부하는 많은 사람들 보면, 걍 옛날 생각도나고해서... 올려 봤습니다. ^^
프로그래밍 언어를 공부하는 많은 입문자들은 프로그래머가 되기위해 보통 C언어를 먼저 공부하게 됩니다.
그리고는 좌절하죠 -_-;;
우선 암기해야할 문법 규칙이 너무 많기 때문입니다.
이건 뭐..... Hello World 문장 하나 만드는데도, 암껏두 안보구 혼자 만들라면, 컴파일 단계를 넘어가기가 왜 이리 힘든지 ㅋㅋ
C를 공부하고자 하는 여러분들을 위해서 제가 드리고 싶은 말은...
문법 생각하지 말고 로직을 생각하라는 겁니다.
문법 까짓꺼 책보고 하면 됩니다. 중요한건 어떤 절차를 기반으로 프로그램이 실행 될것이냐 하는 것입니다.
먼저 종이에 글을 쓰시기 바랍니다. 귀찮으면 그림을 그리시던지 -_-;;
코드를 작성하는것은 시험볼때 아니면 책보고 해도 문제될것 없습니다.
C는 로직이 중심입니다.
어쨌든 이래저래 고생고생해서 제법 포인터와 구조체를 가지고 어찌어찌 몇천라인 정도 되는 코드를 작성할 수 있는 단계까지 왔습니다.
C는 로직이 중요하기 땜에, 몇천라인 작성했으면 몇만라인 작성하는건 문제가 안됩니다. 시간이 문제죠 ㅋㅋㅋ
이제 C++이랑 자바를 좀 배워볼까? 라고 생각하고 책을 펴는 순간 속이 울렁이기 시작하죠
객체지향... -_-;;;
관련 책에보면 대충 이런말이 나옵니다.
사람이랑 원숭이는 포유류의 자식 클래스이고, 원숭이들 중에 내 원숭이는 원숭이 클래스의 객체이다.
이런 ㅅㅂ 그래서 클래스가 뭐고 객체가 도데체 뭔데? 내가 원숭이랑 동급인가? 라는 생각이 들면서 괜히 짜증이 납니다. -_-;;
대충 C는 아니까 C++이나 자바관련 과제 나오면 코드는 작성 할 수 있겠죠.... 그러나 그건 객체 코드가 아닙니다. 로직 중심의 코드입니다.
C언어의 로직에 익숙해진 여러분은 객체중심으로 생각하는 능력을 가지고 있지 않습니다.
따라서 진짜 객체지향 프로그래밍을 할 수 없습니다.
객체지향은 단순 코드만 보고 쉽게 이해할 수 있는 언어가 아닙니다.
소프트웨어가 객체들간의 메시지 교환을 통해서 내가 원하는 행동을 하도록 만드는것이 객체지향의 기본 개념입니다.
제가 여러분께 권해드리는 방식은, UML(Unified Modeling Language)을 공부하라는 것 입니다.
특히 UML의 클래스 다이어그램, 상태 다이어그램, 시퀀스 다이어그램을 공부하시기 바랍니다.
어렵지 않습니다. 한.... 1주일정도면 충분히 마스터 가능 합니다.
그리고, 코드를 작성 하기 전에, 먼저 위에서 소개한 다이어그램을 이용하여 그림을 그려보시기 바랍니다.
처음엔 시간이 걸리지만, 익숙해지면, 머리에 객체지향에 관한 개념이 그려질 것입니다.
Together나 Rational Rose와 같은 UML도구는 클래스 다이어그램 설계로부터 C++이나 자바와 같은 객체지향 언어로의 소스코드 생성을 지원합니다. ^^
생성된 소스코드를 살펴보는 것도 많은 공부가 될 것입니다.
그리고 사전에 UML로 설계를 할때, 무엇보다 클래스의 재 사용성에 관해서 고민하시기 바랍니다.
이 작업을 반복하게되면 여러분의 개인 라이브러리가 구축될 것입니다.
그리고 또 하나,
소프트웨어 공학을 공부하시기 바랍니다.
이것은 여러분이 프로젝트에 임했을때, 여러분 스스로가 문제를 해결해나갈 수 있는 다양한 방법을 제공합니다.
그 외에도 여러분이 훌륭한 프로그래머로 성장하기 위해선 많은 경험을 쌓아야 하고, 많은 학문을 공부해야 합니다.
최소 3개월 마다 새로운 언어를 익혀두시기 바랍니다.
그리고 무엇보다 중요한건 프로그래밍 관점에서 모든 사물을 재 해석할 수 있는 능력입니다.
예를들어 똑같이 스타크래프트 동영상을 구경 하더라도
저그대 저그 3:3 경기를 본다고 가정하면
양 팀에서 저글링 수백마리가 나와서 맵을 캐첩 번벅으로 만들면서 박터지게 싸우는걸 봤다면
여러분은.... 우아 대박이다 라고 생각할것입니다. -_-;;
그러나 진짜 프로그래머라면,,,,
우아 장난아니다. 저글링 한마리 한마리가 다 객체로 생성되었을때 그게 다 메모리 한공간씩 잡아먹는다면,
라운드 로빈 방식으로 동작 하는 CPU에서 저녀석들의 개별적인 동작을 각각 하나씩 처리할텐데....
저건 최소 600개의 객체가 성성되는건데, 왜 컴퓨터가 버벅되지 않을까?
어떤 방식으로 객체를 처리할까....
라고 생각하는 것입니다. -_-;;;
그리고 저것이 가능한 코드를 작성하려면 어떤 방식으로 설계가 되어야 할지 고민하게 되고
결국, 시스템의 성능에 최적화된 코드를 작성할 수 있는 능력을 기르게 됩니다.
단순한 코더가 될것인지, 생각하는 프로그래머가 될것인지는 여러분이 어느길을 선택하느냐에 따라 달려있습니다.




















::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::