잘 정리된 글이라서 담아봤습니다.
출처는 네이버 블로그입니다. http://blog.naver.com/hukoru/20030265451
하나 더 추가해서 공부할 싸이트 모음 (출처:대한민국 대표 개발자 [짱가™] 님 블로그에서 퍼왔습니다.)입니다.



자바 입문과정 로드맵 JAVA / JSP 2006/11/09 09:40
http://blog.naver.com/hukoru/20030265451

--- 웹 프로그래밍 로드맵 ------

1. 간단 용어 정리
*mvc :  대략 30년 전부터 존재했던 코딩 패턴으로서 거의 모든 프로그램에서 쓰이는 패턴
- view : 웹에서는 요청과 결과를 보여주는 것(jsp or html로 표현)
- controller : 화면에서 요청이 넘어왔을 때, 어떤 일을 해줄 건지 결정하는 것(servlet or jsp로 작성)
- model :  어떤 무엇인가가(domain model)  어떤 행동을 하는 것에 대한 정의(business model)  java class 로 작성

* 프레임 워크 (웹 프로그램에 한정지어 설명 하겠습니다.)
- 사전적 의미 : 틀 작업
- 나름대로 의미 : 웹 프로그램의 동작(request - response)을 특정 코딩 패턴(대표적으로 mvc)에
추어서 구현 할 수 있도록 정의 해놓은 클래스들의 모음
- 구성 요소 : 특정 행위를 상속을 통해 구현하게 하는 interface와 , 공통적으로 쓰일 수 있는 부분(xml reading, connection pooling, thread pooling 등) 을 library로 가지고 있다.

* 디자인 패턴

- 못질을 하나 하더라도 잘 박는 방법이 있고, 수학 문제를 풀더라도 수월하게 풀 수 있는 공식이 있듯이,  프로그램밍의 구조나 문제점을 쉽게 헤쳐나갈 수 있는 범용적인 코딩 방법 (취급시 주의 사항 : 과다한 사용은 건강에 해롭습니다.)


1. 일단 자바 기본 서적을 읽는다.

1) Head First Java : 가벼운 기분으로 자라를 공부할 수 있는 책

- 장점 : 자바의 기본 개념을 이해하기에 좋은 책 (상속, 구현, 다형성, 은닉등의  애매모호한 단어를  쉽게 이해 시켜줌)

- 단점 : 깊이가 얕음

2) Thinking in java :  java의 모든 api를 다루고 있으며, 이 책만 제대로 이해한다면, 자바로 application을 짜는 것은 겁나지 않게 됨(초강추)

- 장점 : 자바 언의의 전반적인 사용 방법과 응용력을 높여줌

- 단점 : 번역이 잘 되어 있지만, 생초보가 보기에는 조금 난해한 면이 있음

3) effective java : 진정 효과적으로 자바 언어를 사용하고 싶다면, 이 책을 꼭 읽기 바람

- 장점 : 자바 api를 사용하시다 보면 이해가 되지 않는 사용방법이 더러 보일 실 겁니다. 이 책은 자바 api를 모르모트 삼아서 왜 이렇게 api가 만들어 졌고, 그걸 기반으로 생각했을 때, 어떻게 사용하는게 올바르고, 효과적인지 잘 설명해 주고 있습니다.

- 단점 : 자바 기본 문법을 알고, 어느 정도 프로그래밍을 해본 사람이 이해하기 쉬움 (생초보에게는 이해하기 어려울 수 있음)

4) practice in java :  자바 언어의 고전 중 하나로 자바의 철학과 사상, 기본 개념에 대한 입문서

-  장점 :  자바에서 말하는 객체가 무엇인지, 자바 언어가 가진 사상과 철학이 무엇인지 알려주는 입문서

- 단점 : 번역서를 보지 못했음 -0-;; 그래도 영어가 어려운 편은 아님

5)결론 : 위의 순서대로 책을 보시면 이해하기가 좋을 겁니다.practice in java를 마지막에 넣은 이유는 마지막에는 한 번 더 기본에 충실하기를 바라는 점에서 쓴 겁니다. 중간 중간에 꼭 해주셔야 할 것은 간단한 거라도 계속 코딩을 해보시기 바랍니다. 마지막으로 한가지 더 최고의 입문서는 java.sun.com에 있는 java document와 blueprint 입니다. -0-;;

2. 웹에 길로 들어 서다
- 제가 처음 웹에 길에 뛰어 들 때, 가장 난감햇던 것은 html  을 작성하고서, 이것을 어떻게 봐야 하는지 모를 때 였습니다. -0-;; 당근 세션이 뭔지도 몰랐지요. 부끄부끄 ^^;;  적어도 웹을 아신다는 가정하에 이제부터 글을 쓰도록 하겠습니다.

1) 쌩 울트라 하드코딩으로 게시판 만들기
: 즉, jsp  파일 하나에서 디비 커넥션을 하여 데이터를 끄집어 내서 바로 화면에다가 resultSet.getString('.....') 으로 화면에다가 쫙 뿌려주는 게시판을 하나 만들어 보세요 .... 가독성 작살입니다. 일단 연습용으로 초강추 꼭 짜보세요

2)  쪼개기 첫번째
: 위의 소스를 기반으로 먼저 DB Connection을 위한 Util Class(D)를 하나 만들어 보셔요....  그리고, 그넘을 DB Connection pooling 으로 만들어서 분리 시키세요

- 적용 가능한 패턴 : Singleton Pattern, FlyWeight Pattern(Pooling 패턴)

3) 쪼개기 두번째
: 요청을 입력하고, 결과를 받는 화면(A)과 요청을 받아서 어케 할건지 결정할 넘(B)을 분리해 보세요. A와 B를 jsp 또는  A는 jsp  B는 servlet 이렇게 나주세요 물론 B에서 디비를 찝쩍거리겠지요......
----------------여기까지가 mvc 패턴 model 1 방식 이라고 말할 수 있습니다.

4) 쪼개기 세번째
: B를 화면으로부터 모든 요청을 받을 수 있는 Servlet으로 만들어 보세요.(일명 : Router Servlet으로 불리기도 함)
그리고, 각 요청에 따른 작업들을 별도의 java Class(C)로 나누어서 작성해 보세요.
- 적용 가능한 패턴 :  Command Pattern, Factory Method Pattern, Abstract Factory Pattern,
ession Facade Pattern 등 많은 패턴을 적용 할 수 있음
---------------여기까지가 MVC패턴 model 2 에 해당합니다.

5) 쪼개기 네번째
A에 더이상 어떤 행위에 대한 짓거리나,   DB를 찝쩍 거리는 것등 단지 보여주기 위한 것 외에 불필요 한 것이 없는지 확인해 보세요.
B에서는 요청을 받고, 요청에 대한 분기, 결과의 리턴 이외에 불필요한 로직이 있는지 살펴 보세요.
C에서는 각 요청에 따른  결과를 구하기 위한 행위 이외에는 존재하지 않도록 합니다.
D는 혼자 놀게 내버려 두세요 (아마 Connection을 얻기 위한 Util 클래스가 나홀로 독도다이인  싱클톤으로 만들어 졌을 테니까요)

5) 쪼개기 다섯번째
B와  C를 최대한 느슨하게 연결해 보세요(interface와 동적 객체 생성을 이용해 보세요)
---------이 단계까지 문제 없이 구현하셨다면 MVC는 이미 은우아빠님의 충실한 종이 되어 있을 것입니다.

6) 추천 서적
- Web Development With Java Server Page (출판사: 인포북, 원서 : Maning 출판사)  : 웹 프로그램밍대해서 명쾌한 예제와 설명을 무기로 해서 초전박살을 내버린 흉기와도 같은 책, 다만 아쉬운게 있다면 2판 이후로는 소식이 없네요 그래서 최신 경향에 조금 뒤 떨어져 있습니다.

- Java Servlet (출판사 :  한빛 미디어) :  결국에 jsp는 servlet이 성형수술했을 때의 모습에 불과하다는 것을 알게 해줄 것입니다. 읽을 수록 깊이를 느낄 수 있고, 포스가 느껴지는 책입니다. 다만, 왠지 지루하게 느껴질지도 모르겠군요.

- Head First Jsp, Servlet (출판사 : 한빛미디어) : 재밋게 가르쳐 줄려는 정성이 가득한 책이므로, 한번 쯤 봐주는 센스가 필요합니다.

Posted by 라딘.

댓글을 달아 주세요