java가 나온 이래로 OOP에서 가장 성공적으로 개발자들에게 매김을 한거 같다.
OOP의 강점을 살려서 10년이라는 시간동안 많은 발전을 했다는 것을 새삼 느낀다.

요즘 java개발자들은 무슨 고민을 하고, 어떤 일을 하고 있을까?
framework 학습과 새로운 프로젝트에 대한 회의, 기존 업무에 대한 운영 및 유지보수, 대부분의 개발자들이 현재 하고 있는 일이라 생각을 한다.

사내에서도 기본적인 업무를 제외하고, framework를 스터디하는 사람이 제법된다. 개인적인 시간까지 내서 하는 분들도 대부분이다. 나도 최근에 여러가지 framework에 대해서 학습을 하고 있다. 지금까지는 자율적으로 내가 했었는데, 최근에는 반강제적(?)으로 해야 하는 입장에 놓여서 이다. 일단, 내가 과거에 선택했고 좋다고 생각했던 프레임워크&라이브러리가 사내에 공식적으로 들어가서 좋긴하지만..^^

framework들이 하는 역할은 무엇일까?
  • MVC, Event Driven.....etc..... 검증된 design model & pattern을 지원한다.
    : 사용자들도 모르는 사이에 좋은 프로그래밍 모델이나 패턴을 가능하게 해준다.
  • 중복된 코드를 하나의 컴포넌트로 만들어서 재사용성을 증대시킨다.
  • 추상화를 통해서 의미없이 반복되는 코드들을 없애준다.
  • 저수준의 API를 사용하기 쉬운 인터페이스로 만들어준다.
  • 비즈니스 로직에 집중을 하게 해준다.
이것보다 더 많은 것의 역할을 해내고 있다. 최근의 프레임워크들은 거의 만능에 가깝다.

struts, webwork, spring, iBATIS, hibernate, EJB 등등 이제는 안정화를 넘어서서 세계적으로 가장 많이 쓰이는 framework들이다.

개발시 내가 생각하는 가장 중요한 것은 아래와 같다.
1. design pattern : 중복코드없이 개발해야 한다.
2. domain model central : 비즈니스 로직에 집중할수 있어야 한다.
3. high productive code : 코드를 빠른 시간에 개발
4. maintain easily : 업그레이드(유지보수)시에 더 쉽게 개발이 가능해야 한다는 것이다.

framework 사용에 있어서 가장 중요한것은 위에 요건을 얼마나 많이 만족을 하냐에 따라서 사용여부를 판단하게 된다. 하지만, 위에 나열한 framework를 사용하는 개발자들이나 얼마나 개발자의 마음을 충족하느냐는 개인마다 차이가 크다.

기초가 부족한 상태에서 framework사용법을 배우느라 많은 시간을 보내고 있지는 않은지? 기초가 부족한 사람들에게 framework를 쓰게 할려면 지금하는 접근방법이 옳은 것인지 다시 한번 고민해봐야 하는 시점인거 같다.

spring의 철학중에는 spring user들이 하루빨리 spring을 잊었으면 좋겠다는 얘기가 있다. 좋은 design model이지만, 쉽게 적용하기 어려운 것들을 framework들이 쉽게 해준다는 생각을 하자. 정말 잘 짜여진 코드를 framewokr간에 migration은 빠른 시간안에 가능해야 할것이다. migration이 어렵거나 시간이 오래 걸리면 그것은 framework에 상관없이 벌써 잘못 짜여진 냄새가 나는 코드이다. 기본에 안 맞는 코드, 잘못된 코드 위에 framework만 얹어 놓은 것은 아닌지?  

요즘 보는 책들중에 2002년,2003년 책들이 꽤 있는데(그때는 JDF, STRUTS정도가 국내에서 알려져 있을 시기였다.) 현재(2006년)에 봐도 감동을 느낄만한 책들이 많이 있다. 왜 진작 그 책들을 못 봤을까라는 아쉬움 속에 다시 초심으로 돌아가서 시작하려 한다.
자바기초서적(fundamental, design pattern, anti pattern, refactoring etc)을 보고 괜히 아는척하고 깝죽거렸던 2002년(지금 생각하면 AP만 열심히 만들었다..-.-)....이제는 너무 많은 책들과 문서, 신기술, framework가 나온 지금 다시 한번 과거에 했던 고민을 다시 해봐야 겠다.

기초부터 기본부터 잘 이해를 해서 잘 짜여진 프로그래밍 모델로 framework를 얼렁 잊자!!!



 

about Spring

2006/03/19 01:53
Spring에 관한 흥미로운 글 몇가지
http://toby.epril.com/?p=146

Spring Everywhere
http://toby.epril.com/?p=147

Spring is Busting Out All Over
http://dev2dev.bea.com/blog/wgroth2/archive/2006/02/spring_is_busti.html

Spring is just the ticket
http://dev2dev.bea.com/blog/andypiper/archive/2006/01/spring_is_just_1.html

J2EE관련된 프레임워크와 기술은 계속 발전해왔고, 앞으로도 발전할 것이다.
- 서블릿, JSP, 커스텀태그, EJB, ORM, STRUTS, JSF, Spring

어떤 프레임워크나 기술에 종속적이기보다는 어느정도 잘 골라서 쓰고, 그 안의 기술을 적용의 범위를 결정하는 것도 실력일 것이다. 개발을 많이 해보는 수밖에 없는건가?
* Apache Struts - 59%
* JavaServer Faces- 34%
* Spring - 26%
* Other - 13%
* Tapestry - 6%
* WebWork - 5%
* Wicket - 1%

출처: JBoss사용자는 Struts를 제일 즐겨사용한다..??
http://openframework.or.kr/blog/?p=124

다음 프로젝트에 사용할 웹 프레임워크 순위!
http://openframework.or.kr/blog/?p=71

자바를 처음 시작하고 이렇게 많은 컴포넌트가 있지만 않았던 2000년대 초반, 오픈소스니 남이 만들어둔 소스는 눈에도 들어오지 않았다. 아니 있구나..-.- 이원영님의 JDF~

그 때는 그 소스를 바탕으로 회사내부에서 확장을 해서 사용을 했었다. 어느 시점에서인가..우리 자신이 만든 코드들의 한계를 느끼기 시작을 했고, 진정한 OOP난 MVC를 하기 위해서는 기존 방식에 곤란한 점들이 많았다. 그 당시에 내가 알게된 것이 struts1.0 국내에 책 한권 없을때 우연히 알게 되어서, 조금 보게 되었다. 파일럿만 몇번 해본 상태로 시간이 지났고, 좋은 책들이 나오기 시작했다. 전에 개발을 하면서 놓쳤던 부분들을 책을 통해서 한번더 정리를 할수 있게 되었고, 실무에 적용하기 시작을 했다. 사실 그때는 struts에 흠뻑 빠져있었던거 같다...^^

계속 여러가지 프로젝트에서 개발을 하면서 좀더 느끼게 된게(실력은 없으면서 생각만 많아진다..) struts나 spring MVC와 같은 웹어플리케이션 모델은 일단은 내버려두더라도 그런 오픈소스들이나 자체개발 프레임워크나 wiring하는 일도 쉽지 않다. 그런 역할을 하는 인터페이스나 필요했고, 역시나 그것 또한 외국에서는 벌써 시작해서 버젼도 꽤 올라간 것으로 알고 있다. 그럼 계속 해외에서 일어나는 오픈프로젝트들은 지켜만 보면서 뒤따라만 가야 할 것인가? 그것 또한 자존심 상하는 일이 아닌가? 우리나라 개발자들도 하루빨리 동등한 위치에서 같이 오픈소스를 연구할 수 있는 커미터 위치가 많았으면 좋겠다. 그 분들들 바탕으로 교류나 도입이나 지식의 교류 시간이 좀더 짧아 질수 있으면 좋겠다. 남들이 만들어 놓은 코드나 라이브러리, 프레임워크도 보통 2-3년 격차가 벌어져있는 지금 우리는 기반 코드 개발에 소홀하지 않았나 싶다.

말이 장황했지만, 결론을 성급히 내리고 싶다. 일단은 국내에 이일민님, 이동국님, 박재성님 등등 여러가지 프레임워크 전도사들이 있는 그들과 함께 좀더 노력을 했으면 하는 것이다. 경험이나 여러가지 극단적인 상황들을 서로 토론을 하면서 해결을 할때 좀더 좋은 방향으로 흘러가고, 인코딩 걱정없는 우리만의 기반코드를 양성할 수 있지 않을까?

나같은 경우는 이제는 기반 프레임워크에 도메인 계층에서 하는 여러가지 인터페이스와 자료구조,알고리즘에 관심을 가져보기로 했다. 물론 기반 인터페이스처럼 일반화나 추상화가 어려운 부분일 수도 있지만, 좀더 학습을 하고 경험이나 노하우를 더 쌓아간다면 좋은 미래도 생각해볼 수도 있을 것이다. 
Spring XML설정파일을 위한 12가지 가장 좋은 선택
http://openframework.or.kr/blog/?p=40

항상 아티클을 보면서 느낀것이지만, 그 본문내용도 중요하지만, 그 글에 대한 여러가지 의견들이 참 좋다는 생각을 한다.

좋은 토론을 통해서 서로의 어려운 점을 공론화해서 좀더 좋은 프로그래밍 모델이 완성이 될것이다. 외국 아티클을 보면 이런일이 많이 있지만, 이젠 우리도 공개를 통해서 그런것들을 공개할때가 왔다.

위에 글은 내가 아직은 Spring을 deep하게 프로젝트에 적용을 해보고 운영을 해본 경험이 없어서 크게 할말은 없지만, 좋은 개념도 적재적소에 적당하게 넣어야 빛을 발한다는 진리이다. 유연하게 프로그래밍을 하는 것도 중요하지만, 기준이 되는 로직이나 wire는 정해두고 개발을 하는 것도 중요한 포인트가 될것이다.

오늘 다시 한번 생각하는 것이지만, 이렇게 공개적으로 좋은 글(?)을 많은 국내 개발자에게 알리는 이동국님 애많이 쓰시는거 같다. 결혼 준비하느라 이직하셔서 바쁘실텐데, 앞으로도 수고 많이 해주세요...^^  

설치방법



  1. Open Eclipse. Go to Help -> Software Updates -> Find and Install.
  2. Select "Search for new features to install". Click "Next".
  3. Click "New Remote Site". Enter "Spring IDE updatesite" for the Name and "http://springide.org/updatesite/" for the URL (Screenshot). Click "OK".
  4. You should now see a a new entry name "Spring IDE updatesite" with a mark next to it (Screenshot). Click on that and check "Spring IDE".
  5. Click on the mark next to "Eclipse.org updatesite" and check the version of GEF which is sufficient for your version of Eclipse. Click "Next".
  6. Select the features "Graphical Editing Framework" and the lastest version of "Spring IDE" from the list. Click "Next".
  7. Check "I accept..." and click "Next". Select or add the appropriat site to install the features. Click "Finish".
  8. Click Install on the warning dialogs during feature verification (both features are not digitally signed).
  9. After successfully downloading and installing the features click "Yes" on the "Would you like to restart now?" dialog.
The Spring series, Part 1: Spring 프레임웍 소개
http://www-128.ibm.com/developerworks/kr/library/wa-spring1/

The Spring series, Part 2: Hibernate와 Spring
http://www-128.ibm.com/developerworks/kr/library/wa-spring2/

BLOG main image
OOP and Java by ologist

공지사항

카테고리

All (649)
private!! (106)
WEB & IT (140)
Developer (400)