왜 스프링을 사용해야 하는가?

   첫 번째 글부터 매우 확 막히네요. 우리는 왜 자바 어플리케이션을 만들때 특히 웹 어플리케이션을 만들 때 스프링 프레임워크를 사용할까요? 안타깝게도 정확하게 떠오르지는 않는 것 같습니다. 하지만 반대로 스프링을 사용하지 않고 웹을 만드는 과정을 생각해 보면 조금 그려지기도 하는 것 같습니다. 스프링을 사용하지 않으면 어떻게 만들까요?

   아마도 매우 어렵겠지요? 서블릿도 사용해야 하고 각 객체들의 생성/소멸도 신경을 써 주어야 하고 변경에 대하여 유연하게 대응하려면 여러가지 패턴들도 내가 직접 짜야 할 것 같습니다. 거기에 다가 인증/보안/로깅 등 공통으로 필요한 모듈들은 직접 만들어야 할 것 같습니다.

   또한 여러가지 쏟아지는 새로운 모듈들을 활용하려면 많은 노력들이 필요할 것 같습니다. 아마도 반영을 못할 것 같은 느낌이 드네요. 아마도 한국의 개발자들은 집에 들어가지 못할 것 같습니다.

   그리고 마지막으로 좋은 개발자가 개발한 프로그램과 나쁜 개발자가 개발한 프로그램은 많은 차이가 날 것 같습니다. 또한 여러 사람들이 각각 자기만의 패턴과 자기만의 스타일대로 프로그램을 만들 것이고 아마도 수많은 해설에 대한 문제가 없다면 유지보수 / 다른 사람이 만들 코드들에 대한 분석이 아마도 불가능 할 것 같습니다.

아래와 같이 다시 한번 정리해 보도록 하겠습니다.

변경에 대한 적응력

  • DI
    많이 들어보셨겠지만 DI, IOC를 이용한 변경에 대하여 좀 더 유연하게 대응이 가능합니다. 해당에 대한 상세 사유는 차후 실습에서 좀더 상세하게 적어보도록 하겠습니다.

  • Portable Service Abstraction
    만약 오늘까지는 Hibernate로 ORM모듈을 사용해다가 내일 EclipseLink로 모듈이 변경되었다면, 혹은 오늘까지는 log4로 로깅을 남기다다 내일부터는 logback으로 남기고 싶을 때 스프링은 쉽게 이를 적용할 수 있습니다. 왜? Spring 별도의 추상화된 라이브러리를 적용하고 그를 이용하여 다른 라이브러리를 사용하기 때문입니다. 메시징에 대해서도 동일하게 유연하게 적용이 가능합니다.

엔터프라이즈급 서비스를 위한 모듈 제공

  • AOP
    관점지향프로그램(추후 다시 설명), 로깅/보안/트랜젹션 공통 처리

  • Logging System
    전문적인 로깅, Log4j나 Logback을 쉽게 적용할 수 있음.

  • 보안(Spring Security) / 배치(Spring Batch) / EIP(Spring Integration)
    추후 설명 예정

  • 다양한 View Template 엔진 적용 : JSP, Thymeleaf
    (물론 스프링을 안써도 적용할 수 있으나 쉽게 적용할 수 있다는 이야기.)

많은 예제

Bean 관리

  • 기존 J2ee에서는 POJO를 사용할 수 없었으나 Spring은 이를 사용 가능함.
  • 빈의 라이프사이클 관리
    프로그램에서 사용하는 수 많은 Bean에 대한 라이프사이클을 관리(라이프사이클)해 주며 Autowire란 어노테이션을 제공하여 Bean들을 쉽게 이용할 수 있음.

물론 배우기 어렵다는 단점이 존재하지만 이를 교육으로 잘 처리해 보려고 합니다.

참고사이트 : http://a07274.tistory.com/200

'JAVA > Spring Framework' 카테고리의 다른 글

03. Spring DI의 개념  (0) 2016.10.27
02. POJO의 개념  (0) 2016.09.06
글을 시작하기에 앞서...  (0) 2016.09.05

안녕하세요?

  현재까지 IT에 있은지 취직 이후로는 10년이 되었습니다. 대학교 때부터 계산해 보면 17년이 된 것 같습니다. 제 나이가 37살이니 거의 절반 정도를 IT 업계에서 있어왔고 공부를 해왔던 것 같습니다. 지금 돌이켜 보니 17년 동안 제가 공부하던 것이 저에게만 머물러 있었던 것 같습니다.

  이제 더 이상 제가 배워오고 고민해왔던 것이 저에게 머물러 있기를 원치 않습니다. 저보다 좋은 기술을 가지고 있는 분들도 많으시고, 저보다 많이 알고 있는 분들도 사실 엄청 많습니다. 예전에는 그런 분들을 보면서 제가 다른 사람에게 뭔가를 전하는 것이 부끄럽고 때가 아니라고 느꼈었는데 지난 번 아라한사님을 만났을 때 많은 것을 느꼈고 이런 생각을 돌이키게 되었습니다.

  저의 조그만한 앎에도 도움을 받을 수 있는 사람이 있다면 충분히 의미가 있고 보람이 있을 것 같습니다. 그런 이유로 제가 최근에 공부해 왔던 Spring Boot에 대해서 한번 말씀을 드리려 합니다. 가능한 일주일에 한 개으 토픽정도 작성해 보려고 합니다. 혹시나 한분이라고 보신다면.. 그리고 일주일에 글이 하나가 안올라오면.... 채찍을 부탁드립니다.

  그럼 다음 주 부터 한번 가보도록 하겠습니다. 아마도 거짓말도 많이 있을 수 있고 엉터리 같은 내용도 있을 수 있겠지만 끝까지 한번 가보도록 노력하겠습니다.

2016년 09월 02일 Kim Jong IL(TANDEM6-ODSJ)

'JAVA > Spring Framework' 카테고리의 다른 글

03. Spring DI의 개념  (0) 2016.10.27
02. POJO의 개념  (0) 2016.09.06
01. Spring Framework을 사용해야 하는 이유  (0) 2016.09.05
    목표 : 가능한 책으로 공부하되 요약본을 남기도록 함.  PT요약이 되지 않으면 필기로라도 남김.
    우선순위 : 원할한 개발 을 위하여 애자일 개발과 스크럼 먼저 학습하도록 함.

  • Postgresql 성능최적화 : 그레고리 스미스, 박동식, 최원희 옮김
  • Storm 실시간 빅데이터 분석 플랫폼 : 퀸튼 앤더슨 지음, 조효성 옮김
  • JavaScript Patterns : 스토인 스테파노프, 김준기, 변유진
  • BPMN 2.0 비지니스 프로세서 모델링 입문(Thomas Allweyer, 박주영 역자, 김연홍, 박상혁, 변성민 감수)
  • 레거시 코드를 클린 코드로 누구나 쉽게, 리팩토링 : 신성호, 이규일, 박승규, 김태환, 정승욱(한빛미디어)
  • 애자일 개발과 스크럼 : 노나카 아쿠지로, 히라나베 겐지 지음, 이명교 옮김


+ Recent posts