2008년 11월 25일 화요일

질풍노도 개발자 SGcom

 


 



도대체 스프링이 왜 필요한가요??


SGcom 2008-06-05 15:09:38.0


일자무식하다고 욕 먹을 각오하고 올립니다.ㅡㅡ;;


 


구글링으로 스프링이 나온 배경이나 특성 같은 것들을 쭉 읽어봤습니다.


그러나 스프링이 왜 필요한가?에 대한 의문은 여전히 풀리지 않네요.


의존성 주입이라는 개념을 기반으로


Bean의 라이프 사이클을 제어 하는 거 같은데요.


Bean이 있어서 편해진 것이 있나요?? 그리고 그것을 관리하는 스프링이 하는 일이 뭔가요?? MODEL2로 작업을 많이 해봤지만 무지막지하게 설정만 많고 다 설정 안하면 무수히 에러 발생 시켜 짜증나게 하고 언제나 어차피 카피엔 패이스테는 쓸 수 밖에 없고요. 차라리 model2에 돈들여서 매달리는 거 보다 코드를 제너레이트 할 수 있는 프로그램 개발이 시급하다고 생각 됩니다.


 


사실 객체지향이란 것 자체가 의존과 의존의 거미줄 같은 것이 아닌가요??


실제 현업에서는 그렇게 필요할 거 같아 보이지 않는데도 왜 사람들은 스프링, 스프링 하고 있는지...


개발자가 생산성 높고 질 높은 코드를 작성 할 수 있어야 하는 것이 최우선 과제가 아닌까요?? 그 과제를 구현하기 위해 프레임 워크가 존재 하는 거라고 알고 있는데 제가 틀린 건가요??


뭐 다 읽어 보셨다니... 아시겠지만...

뭐.. 가장 간단한 대답이라면... 스프링은 '유행' 인 것이고...

님께서 고민하시는건...

'현실' 과 '이상' 과의 괴리에서 발생하는 고민인것이구요...



이렇게 프레임웍이 진화하다 보면...

어느날엔가 우리들은 설정파일을 코딩해야 하는 날도 오겠죠.. ㅋㅋ


Jpapa 2008-06-05 15:19:03


 


SGcom//님 써보시면 압니다.

개인적으로 Struts를 쓰면서는 저도 똑같은 생각을 했고, Spring을 처음 썼던 초기에도 마찬가지 생각을 했습니다.

하지만 직접 써보시면 압니다. 특히 여러사람들이 작업하면서 이용하시면 그 진가를 아시게 될겁니다.

하지만 조그만한 홈페이지 만드는데는 당연히 필요하지 않습니다. 그건 말그대로 닭잡는데 소잡는칼 사용하는거고 인력 투입이 어느정도 되는 프로젝트라면 그 효과는 무척 큽니다. 특히 유지보수에 두각을 나타냅니다.



뭐... 저도 개인적으로 프레임워크에 대해선 별로 좋은 감정이 없었습니다만... 스프링을 쓰면서 생각이 많이 바뀌었습니다.


흰둥이 2008-06-05 15:35:18


 


http://okjsp.pe.kr/seq/113726

Q u i c K 2008-06-05 16:27:00


 


흰둥이님 의견에 한 표!

접하는 프레임웍에 비판적인 생각도 좋지만 일단 거부감을 버리시고

한번 써보시는게 좋을 것 같습니다.

대부분 스프링이나 하이버네이트를 처음 접하시는 분들이 왜 필요한지에 대해 의문을 많이 가지시는것 같습니다. 하지만 써본 후에는 많이들 달라지시더라구요.

이런 말씀 드릴 짬밥은 안되지만 도움이 되셨으면 합니다.


스프링짱!! 2008-06-05 17:37:58


소스코드 제네레이션이 가능한 부분은 주로 반복되고, 일정한 패턴을 보이는 형태입니다.

이 경우 대부분 프레임워크화 시킬수 있습니다. 예전에 간단하게 jdbc관련 코드 생성기 형태를 사용했었는데, 스프링 프레임워크들 보면 콜백형태로 프레임워크화 가능하더라구요.

소스 코드 생성기의 경우 동일한 패턴을 시스템 전체에 걸쳐 중복하여 사용하기 때문에, 추후 수정사항이 생길경우 문제가 생길 가능성이 높습니다.


emeroad 2008-06-05 19:31:08


Spring도 개발자 편하라고 나온겁니다.

잘 정제된 코드를 만들려고 하다보면 결국에는 스프링이 권장하는 방식으로 코드가 가게 되더군요. 그래서 애초부터 스프링을 써서 하게 되는거지요.

그리고, Spring을 사용하게 되면 최초 설정할 때의 커브만 넘기면 코딩량은 더 줄어들고, 유지보수성은 높아집니다.



"사실 객체지향이란 것 자체가 의존과 의존의 거미줄 같은 것이 아닌가요??" 라고 말씀하셨는데, 그 거미줄 같은 의존관계를 어떻게 하면 편하게 설정하고, 유지보수하기 쉽게 만들까요?

그게 Spring의 역할입니다. 그리고 Spring의 역할은 MVC랑은 별 상관 없습니다.

얼마전까지만해도 프레임워크를 사용하면 설정파일이 외부 XML로 빠지기 때문에 Java 코드보랴, XML 보랴 정신 없었습니다. 하지만 요즘엔 Annotation 덕분에 그런 걱정도 없습니다.

코드가 정말 깔끔해지죠.



요즘엔 코딩을 최소화 할 수 있는 프레임워크들이 많이 나와 있습니다. 단, 자바쪽보다는 Ruby나 Python 쪽이지요.

사실 Ruby on Rails로 웹 개발 한 번 해보고 나면 Java로 웹 개발하는게 짜증납니다. 그냥 제 단적인 느낌으로는 RoR이나 Django를 사용하면 Java로 할때의 1/3 시간이면 되는 것 같네요. 그렇다고 유지보수성이 희생되지도 않고요.



진정 생산성 높은 웹 개발을 경험해보고 싶으시다면 Ruby On Rails나 Python의 Django, PHP의 Cake PHP 를 사용해보시기 바랍니다.


권남 2008-06-05 20:02:36


 


일단 대부분 "일단 함 써봐라 진가를 알게 될 거야"라고 말씀하시는 것 같네요..

IoC와 같은 스프링의 핵심 기능들은 제가 원했던 프레임웍의 용도와는 약간의 거리가 있는 거 같네요.. 스프링은 스프링 자체로 기능하는 것이 아닌 struts, hibernate등의 프레임웍과 접합될 때 빛이 나는 거네요.

Jpapa님,흰둥이님,Q u i c k님,스프링짱!!님,emeroad님,권남 님 답글 달아 주셔서 정말 감사드립니다.


SGcom 2008-06-09 14:07:03


싱글턴 패턴의 구현이라든가 뭐 그런게 관련있지 않나 싶은데


2311 2008-06-17 15:15:07


 


음... 프로젝트에 출현하는 모델들? 단어들? 요소들? 엘리먼트들? 하나씩 때내어 봤을때 얼마정도 등장합니까? 금융쪽이나 , 인사 , 회계 , SMS(가입자관리시스템) 등 엄청나게 복잡한 시스템에는 엄청나게 많은 관리되어져야할 요소들이 많습니다. 이경우 개발시 rule 이나 약속, 재사용성의 부재가 악순환적으로 발생하거나 깨지면 지금당장 프로젝트 납품하고 완료 할수 있어도 , 그후 유지보수 하는 사람들은 죽음입니다.



솔직히 프레임워크 제대로 이해하고 쓰는 사람이 드뭅니다..이해한답시고 java API 처럼 열심히 annotaion , 주석달아주는 프로젝트 드뭅니다..팀원들이 다같이 제대로 이해하고 써야되는데 대중성 안전성이 없는 ror , Django 써보자하면 난리납니다..가뜩이나 java 도 이해를 못하고 쓰는데 --;



개발상 서로간의 '약속'을 좀더 타이트하게 해줄수 있는것이 프레임워크의 도움인것 같습니다...



솔직히 저같은 경우 spring의 매력은 게으른 결합 , 유연한 결합 , 쉽게 분리될수 있는 설계등 보단, 하나의 DBMS connection 으로 다중 트랜잭션을 유연하게 처리 할수 있다는것에만 크게 매력으로 보이질 않더군요. 트랜잭션이 끊어진것에 대한 신뢰할수 없는 데이터들 보다 무서운것이 있겠습니까..


맨체스터 2008-07-03 02:37:49



 


6개월 전에 올린 글이다.


마틴 파울러가 이야기 했던가?프레임워크는 생각하는 방법이라고 나도 내가 생각하는 방법을 만들어야 할때이다.


기반 지식은 이미 습득했고 만들면 된다.


이 글은 스프링노트에서 작성되었습니다.

댓글 없음:

분류