출처 : http://www.mimul.com/pebble/default/2009/08/31/1251715500000.html

중학생이든, 고등학생이든, 대학생이든, 직장인이든지 Java한 언어를 배워보고 싶은 분들에게 필요한 13가지 항목들을 주저리 두서없이 적어보았습니다.
참으로 많지요. 욕심내지 말고 하나씩 하나씩 독파해 간다는 마음으로 임했으면 합니다. 지레 겁먹지는 마시구요. 열정을 가지고 파다보면 어느덧 경지에 오르지 않을까요? 저도 열심히 열공하고 있습니다.

또한, 이런 것도 있었으면 좋겠다하는 것 댓글로 달아주시면 반영해 드리겠습니다.

1. 객체의 개념을 알아야 한다.
 - OOA/OOAD 개념이 들어간 책을 학습하면 됨
 - UML도 다루는 법을 배워 실제 설계도 해보면 객체의 개념을 이해하고 설계하는 데 도움이 됨

2. Java 언어의 기본을 알아야 한다.
 - Class/Object, Interface, Exception, Threads, I/O Package, System Programming, Internationalization/Localization
 - Collections, Reflection, Serialization, Networking(NIO 포함)
 - 기본을 알아야 응용력이 생김

3. Design Pattern을 공부하면 좋다.
 - GOF, Anti-Pattern 등은 효율적인 비지니스 로직을 설계 및 구현하기 위한 방법을 제공한다.
 - 성능 이슈가 발생하지 않는 효율적인 코딩 가이드라인을 숙지한다.

4. Java 언어의 구동 환경을 알아야 한다.
 - JVM, classloaders, Garbage Collection 등의 메커니즘을 알아야 함
 - 컴파일 옵션이며 실행 옵션들도 알아야 함

5. 분산 객체에 대하서도 알아야 한다.
 -  RMI and RMI / IIOP를 이해해야 함
 - JNDI (JavaNamingandDirectoryInterface), JMS (JavaMessageService), JTA / JTS (JavaTransactionAPI / JavaTransactionService), JMX (JavaManagementeXtensions)도 알면 도움이 됨
 - EJB도 알면 도움이 됨(상용 WAS 사용시)

6. Javascript를 알아야 고객을 즐겁게 할 수 있다.
 - Javascript언어가 가장 어렵다는 사람들도 있으니 기본적인 것을 배워야 됨
 - JavaScript library(Prototype, JQuery, Dojo Toolkit, MooTools, Yahoo! UI Library, Rico, Scriptaculous) 사용법도 알면 서비스에 도움이
 - Ajax의 기본적인 내용을 알아야 함(DWR 포함)

7. 웹 프로그램을 할려면 Servlets, JSP, JSTL(StandardTagLibraries), JavaScript, Third-party Framework를 알아야 한다.
 - HTTP1.1, Servlet 2.5, JSP2.0 스펙을 알면 Security 요소 대응이라던가 자원 모니터링(APM)도 가능함
 - MVC web application frameworks(JSF, Struts/Struts2, Tapestry, Cocoon, Velocity, WebWork, Spring MVC Framework)도 알아야 함
 
8. 비즈니스단의 lightweight application framework 정도는 이해해야 한다.
 - IoC/DI style(setter, constructor, interfaceinjection) - Spring, PicoContainer Avalon 를 학습함
 - Jakarta 프로젝트의 라이브러리들(commons-lang, commons-io, log4j, common-codec, http-client, commons-pool, commons-exec, commons-collections, commons-beanutils)은 사용할 수 있는게 좋음
 - JOB 스케줄링(Quartz), 검색(Lucene), 분산캐싱(JCache, Ehcache), 차트 이미징(Jfreechart) 프레임워크도 알면 좋음
 
9.  Java database 관련 기술들을 익혀라.
 - Oracle, MySQL, SQL server, Cubrid, Tibero를 기본적으로 다룰줄 알아야 함
 - ORM framework(Hibernate, iBatis, JDO, CocoBase, TopLink, InsideLiberator)를 하나 정도는 다룰 줄 알아야 함
 - 성능 형상에 도움을 줄수 있는 케턱션 풀 라이브러리(commons-dbcp, c3p0 - JDBC3 Connection and Statement Pooling)도 사용할 수 있어여 함

10. WAS중에 하나 정도는 구동할 수 있어야 한다.
 -  tomcat, resin, Jrun 중에 하나정도는 환경 설정/튜닝/구동할 수 있어야 함(Apache등 웹서버와 연동 포함)

11. Web Services를 구현할 수 있어야 한다.
 - JAX-RPC (JavaAPIforXML / RPC), SAAJ (SOAPwithAttachmentsAPIforJava), JAXB (JavaArchitectureforXMLBinding), JAXM (JavaAPIforXMLMessaging), JAXR (JavaAPIforXMLRegistries) or JWSDP (JavaWebServicesDeveloperPack)
 - Web Services Framework(AXIS, AXIS2, Apache CXF 등) 중에 하나정도는 사용할 수 있어야 함

12. Network Programming(서버 데몬)도 할 줄 알아야 한다.
 - NIO개념과 Socket의 개념 및 상태에 대해서 이해해야 함
 - Mina, James 등의 오픈 소스도 다룰 줄 알면 좋음

13. 단위 테스트 및 aspect-oriented programming, 테스팅 기법도 알아야 한다.
 - JUnit,  사용법도 알아여 함
 - Deploy 툴(Ant, Maven)도 알면 좋음
 - AspectJ, AspectWerkz 다룰수 있음 좋음

+ Recent posts