관리 메뉴

플랫폼공작소 IT Blog

[springframework] 스프링 프레임워크 정리 - 1차 본문

Framework/Spring Framework

[springframework] 스프링 프레임워크 정리 - 1차

솜픽(Sompic) 플랫폼공작소 2018. 8. 30. 10:30

안녕하세요. 말랑고양입니다. 오랜만에 스프링프레임워크에 대해서 정리를 해보려합니다.

눈으로 그대로 읽으면 되도록 포스팅을 할 계획이고, 궁금한 것이 있다면 댓글남겨주세요. 감사합니다.


프레임워크란?

프레임워크란 반제품이라고 생각합니다. 우리가 원하는 제품(홈페이지)을 만들기 위해서 필요한 제품이라고 생각합니다. 특수한 경우라면 처음부터 만들어야겠지만, 그런 것이 아니라면 프레임워크처럼 반쯤 만들어진 제품을 가지고 완제품을 빨리 만들어내는 것이 시간적인 면에서 유리하다고 생각이 듭니다. 


Spring Framework란?

엔터프라이즈(대형)급 어플리케이션을 구축할 때 사용하는 프레임워크입니다. 수많은 프레임워크 중에서 하나에 불과합니다. 우리가 관심을 가지는 스프링 프레임워크의 특징은 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다는 것입니다. 선언적으로 트랜잭션을 관리할 수 있으며 완전한 기능을 갖춘 MVC Framework를 제공합니다. AOP 지원합니다.


벌써부터 새로운 단어들이 몇가지 제시가 되었네요. 짚고 넘어가겠습니다.


모듈화란?

작은 단위로 나누는 것을 '모듈화'라고 합니다. 소프트웨어 개발에서 모듈은 다음과 같이 말할 수 있습니다. 우선 '규모가 큰 것을 여러 개로 나눈 조각'이라고 생각할 수 있습니다. 예시로 들자면, A라는 홈페이지에 로그인하는 기능, 게시판에 글을 쓰는 기능, 회원가입을 하는 기능이 있다고 가정합시다. 로그인하는 기능, 게시판에 글을 쓰는 기능, 회원가입을 하는 기능 이 각각 모듈이라고 생각될 수 있습니다.


트랜잭션?

아래의 사진이 가장 트랜잭션이라는 용어를 잘 나타내는 것 같습니다.

성공하면 DB에 반영하고 실패하면 모두 취소한다. All Or Nothing입니다.

어떠한 에러가 발생할 경우 자동으로 모든 과정을 원래 상태로 돌려놓는 것입니다.

reference : http://egloos.zum.com/springmvc/v/495798


AOP란?

Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 합니다. 코드 재사용(모듈)을 위해서 사용되는 프로그래밍 방법입니다. 예시로 들자면, A라는 홈페이지에 로그인하는 기능, 게시판에 글을 쓰는 기능, 회원가입을 하는 기능이 있다고 가정합시다. 막 만들다보면 로그인하는 기능, 게시판에 글을 쓰는 기능, 회원가입을 하는 기능의 코드가 서로 얽혀서(Tangling) 모듈화가 되지 않습니다. 그러면 게시판에 글을 쓰는 기능만이 필요한 B라는 홈페이지에 해당 코드를 사용할 수 없게되겠죠. 서로 코드가 얽히지 않고 모듈화를 잘 해내기 위한 프로그래밍이 AOP입니다.

reference : http://seulkom.tistory.com/18


MVC Framework란?

Model & View & Controller 프레임워크입니다. 

Model은 데이터베이스와 상호작용, View는 화면, Controller는 Model과 View의 연결고리입니다.

아무튼, 각 계층을 분리시킴으로써 코드의 재활용성을 높이고 불필요한 중복을 막기위한 프레임워크입니다.

refenece : http://hackersstudy.tistory.com/71


용어 설명을 중요하게 생각하려합니다. 용어를 완벽하게 이해하고 숙지해야, 왜 이런 개념이 나왔고 앞으로 어떻게 코딩을 해야할지 감을 잡을 수 있을거라 생각하기 때문입니다. 스프링워크에는 수많은 모듈들이 존재하는데요 대표적으로 아래와 같은 것들입니다.


데이터 엑서스(Data Access) / 통합(Integration)

데이터 엑세스/통합 계층은 JDBC, ORM, OXM, JMS 및 트랜잭션 모듈로 구성되어 있다.

spring-jdbc : 자바 JDBC프로그래밍을 쉽게 할 수 있도록 기능을 제공합니다.

spring-tx : 선언적 트랜잭션 관리를 할 수 있는 기능을 제공합니다. 


웹(Web)

웹 계층은 spring-web, spring-webmvc, spring-websocket, spring-webmvc-portlet 모듈로 구성됩니다.

spring-web : 멀티 파트 파일 업로드, 서블릿 리스너 등 웹 지향 통합 기능을 제공한다. HTTP클라이언트와 Spring의 원격 지원을 위한 웹 관련 부분을 제공합니다. spring-webmvc : Web-Servlet 모듈이라고도 불리며, Spring MVC 및 REST 웹 서비스 구현을 포함합니다.



자세한 내용은 다음 시간에 포스팅하겠습니다. 감사합니다.

#스프링프레임워크 #스프링프레임워크강의 #springframework #강의정리


이사견적이 필요할 땐, 이사작전!

리뷰를 남겨주시는 것은 큰 도움이 됩니다.

https://play.google.com/store/apps/details?id=com.platformaker.mobileWeb

0 Comments
댓글쓰기 폼