본문 바로가기

프로그래밍/Spring

나의 Spring Framework 시작..

개인적으로 Spring Framework(스프링 이라 하겠다)를 시작한지는 정말 얼마 안되었다..아니..정확하게는 스프링을 사용하는 프로젝트를 해본 케이스가 딱 한번뿐이었다. 전자정부 프레임워크로 진행했던 프로젝트였는데 전자정부 프레임워크가 스프링 기반이었다.

스프링을 하기 시작한 계기는 프리로 처음 전향하면서 면접을 본 과정이었다. 집이 안양이었던 관계로 마침 평촌에서 진행하는 프로젝트에 지원을 하게 되었다 그래서 면접을 보았는데..기억하기로는 그 프로젝트가 SK C&C에서 만든 프레임워크 기반으로 하는 프로젝트였다.
그 당시에 난 프레임워크의 필요성에 대해선 공감하고 있었지만 그것을 실무에 적용하는 점에 있어서는 약간의 회의적인 시각이 있었다. 유지보수 차원에서는 프레임워크를 적용한 프로젝트가 훨씬 유용하지만 우리나라 프로젝트 성격상 유지보수보단 얼마나 빨리 제작하는 것이었냐였고 그 점에 있어서 프레임워크 기반의 프로젝트는 기존의 Model1 방식의 개발 방법보다는 개발속도가 현저하게 떨어지기 때문이었다. 나 같은 경우는 그런점을 최대한 극복하고자 최대한 클래스로 빼서 유지보수를 극대화하고자 했지만 결국 Model1 방식을 벗어나지는 못했다.
암튼 그때의 내가 프레임워크를 써본것은 Struts 뿐이었고 그것도 1~2개 프로젝트에서만이었다. 당연 면접관은 그런 나의 이력을 보고 Spring을 잘 할수 있겠냐..는 질문을 했고 난 어차피 이력에 있는거니 거짓말은 할수 없어서(또 경력을 가지고 거짓말을 하고 싶은 생각도 없다) Spring 경력은 없지만 프레임워크 적응은 잘 할수 있다(실제로 새로운 프레임워크 적응은 잘하는 편이다. 몇몇 샘플만 보면 가닥을 바로 잡고 나머지 부분은 내가 사비를 들여서라도 책을 사서 찾아보는 성격이다)라고 면접관에게 말을 했다. 하지만 결과는 떨어지고 말았다.

이런 결과를 보고 난 나를 떨어뜨린 면접관보다는 내 자신에게 분한 맘이 들었다. 그리고 한편으로 오기가 생겼다. 그래? 그럼 스프링 까짓거 정복하겠다. 그래서 책을 두권하고 열심히 책의 샘플들을 직접 코딩하며 적응해갔다. 그래서 외워서는 아니더라도 책을 보면 따라갈수 있을 정도로까지 진행되었을때 전자정부 프레임워크 기반 프로젝트 면접을 진행했고 거기에 합격되어서 4개월간 프로젝트에 참여했다. 그 프로젝트에서 몇가지 알게된 것들이 있다. Maven과 Hudson인데 그 당시엔 이것에 대해 활용하는 입장이어서 셋팅을 하는 그런것은 몰랐다. 하지만 활용하면서 이것도 공부하고 알아야겠다 하는 생각이 들었고 프로젝트 종료하자마자 전자정부 프레임워크 교육을 4일간 받으면서 좀더 공부하게 되었다.

프로젝트가 끝나고 새로운 프로젝트를 구하는 동안 집 부근 도서관에 노트북을 들고 댕기면서 스프링을 좀더 공부했고 이젠 파일 업로드 기능이 있는 질문/답변 게시판의 기초적인 형태까지 다 잡아놓았다. 이것도 하면서 ajax를 활용하는 파일 업로드도 해보고 그러면서 파일 업로드 진행 현황도 같이 보여줄수 있게끔도 제작하게 되었다. 특별한 형태가 아니라면 대부분의 웹페이지는 게시판 유형이니까..그리고 요즘은 Spring Security를 이용한 웹사이트의 보안적용을 진행하고 있다.

지금 생각해보면 개발 시간이 오래 걸린다는 의견을 가지고 있었던 것도 점점 고쳐가고 있다. 분명 개발시간이 Model1 방식보다는 오래걸리지만 그렇다고 그렇게 많이 차이가 나는 것은 아니다. 차이가 나는 부분을 차후의 쉬운 유지보수를 위한 희생..이라고 생각하면 감내못할 부분이 아니다. 스프링에 대해 회의적인 시각이 있다면 일단 한번 진행해봤음 한다. 해보지 않은 것에 대해 추측성의 부정적인 시각을 가지고 있다면 그것은 알게 모르게 나의 고정관념이 되어서 계속 피하게 되는 것이다. 이 글을 보는 스프링에 대해 회의적인 시각을 가지고 있는 자바 프로그래머가 있다면 게시판 만들기 프로젝트를 해봤음 한다. 단순히 게시판 만들기를 할 것이 아니라 게시판 기능이 완성되면 살을 하나하나 덧붙여가면서 프로젝트를 점점 확장해가면서 적응해보면 스프링에 대해 한결 이해하기 쉬워지리라 본다.