본문 바로가기

DevStory

얼마전 혼자 깨작거리면서 느낀 것..

실력은 좋지 않은 주제에..

누가 만들어주고 "이거대로 맞춰서 써. 사용법만 익혀" 라고 얘기하면서 주는

프레임웍등에 대한 거부감이 있어서..

(자기가 필요에 의해서 찾아서 사용한다면 더할나위 없이 좋겠지만

무조건 주고 써라. 이런것에 대한 거부감이 크다..

내 주위에는 스프링을 사용해 웹 어플리케이션을 개발 해 보았지만

서블릿에 대해서는 전혀 알지 못 하는 사람도 존재한다...)


그리고 작은 웹 어플리케이션을 만들면서 한번 프레임웍 쓰지말고 해볼까.. 하면서

풍대리님께서 시키신 일을 한번 날(生) 서블릿으로 한번 작업해보았었다..

전체적으로는 굉장히 큰 어플이지만.. 일단 시키신 부분은 작은 부분이었고

페이지 단 4개, 저장/리스트보기등 몇몇 기능밖에 구현 할 것이 없었는데..

페이지에 따라서 서블릿만들고 dd에 작성해주고 post get 방식에 따라서

메소드 분류해주던지..하고.. actiontype등을 지정해서 저장인지 리스트보기인지..등등.. 메소드 분기 해줘야 하고..

그러다보니 "중간에서 모든 요청을 받아서 분기해주는

dispatcher로써의 역할을 하는 서블릿이 있으면 좋겠다.."

라는 생각이 들었다.. 그래서 그렇게 또 구조를 조금 바꾸다보니

각각의 url에 대해서 if else가 발생하기 시작했다..

소스도 복잡해지고...


url이 추가되거나 삭제되면 클래스를 재컴파일해야 한다. 그러다보니 또

"아..이거 xml로 설정을 돌려서 url 추가 , 삭제를 좀 편하게 해보자.."

라는 생각이 자연히 들게되고 그래서 또 그렇게 만들어보니까

이제 xml도 귀찮아지기 시작했다. --;


그러다보니.. 이번에는 어노테이션을 사용해서 메소드에 직접 url을 맵핑시키고

"was가 올라갈 때 각 클래스의 어노테이션 정보를 읽어서 자동적으로 url과 controller를 매핑하면 어떨까.."

하는 생각도 하게 된다.


그러다보면 어노테이션을 어떻게 정의하고 메소드와 클래스로부터 그 정보를 런타임에 읽어 올 수 있지?

라는 것이 궁금해지고.. 또 그것에 대해 공부하게 되고....



여기까지 진행되고 보니.. 느껴지는게 있었습니다..

본래 프레임워크가 만들어져온 과정은 자세히 모릅니다.

그 사상들도 100% 이해하고 있다고 말할 수도 없지만..제가 이번에 느끼게 된 것은..

아무튼 프레임웍이라는 것은 "서블릿"을 모르고서는 절대 제대로 사용 할 수가 없는 영역이고

프레임웍이 발전해온 과정이라는 것은.. 적어도 저는

제가 느꼈던 저런 불편함들 (물론 다른 부분도 많이 있겠지만..)을 개선하는 과정에서

발전해온 것은 아닌가..? 하는 생각이 들게 되더라구요..


주위에보면 정말로

사용하던 프레임웍이 아니면 어쩔줄을 몰라하는 사람도 있었고

여러 프레임웍 (스프링이건 사이트매쉬건)을 사용하면서 서블릿을 모르는 사람도 있었습니다.

저도 얼마전까지는 비슷했구요.


그런데 직접 해보니까..

정말 느끼게 됩니다.. 물론 저렇게 느껴오는 것이 정상은 아닐지도 모릅니다 -_-

(그거 그래서 그렇게 변해온 것이 아냐~~~~~!!! 라고 말 할 수도 있구요..^^)

하지만 저는 그렇게 느꼈습니다.. 좋은 경험이 되었습니다..

DB없이 뭔가 개발 해보려 했던 경험과 더불어서요..


풍대리님께서 한마디 하시더군요..

"혼자 공부하고 혼자 개인 프로젝트를 할 때는 지금처럼 이런 저런것도 해보고 하는 건 좋은 일이지만,
나중에 프로젝트라던가 일정을 요하는 상황에서는 잘 만들어진 것을 가져다 사용하는 것이 맞는 거야..
왕따 안 당하려면..." 

라구요.. ㅎㅎ