본문 바로가기
TechNical/Spring

Spring Basic

by 강멍멍이 2014. 3. 2.
반응형

스프링 프레임워크가 도데체 뭐냐...?

별로 아는건 없지만 꼴에 몇 일 공부 했다고 .. 생각나는대로 정리를 좀 해 보자.

 

웹서비스 개발을 편리하게 할 수 있도록 도와주는 툴이다...??

물론 이런 툴이 없어도 물론 개발은 가능하다.

날코딩으로 열심히 지지고 볶으면 나만의 프로그램이 완성이 되긴 된다.

 

하지만 프레임워크를 사용하는 이유는...

개발자에게는 그렇게 한가하게 모든 기능을 셀프로 구현 할 수 있도록 무한한 시간이 주어지지 않는다.

또한 여러명이 협업을 하는데 니가 하는 방식 내가 하는 방식이 달라서는 일이 되지를 않는다.

주어진 프로젝트 기간안에 정형화된 방법으로 최적의 개발을 할 수 있도록 도와 주는 것이 프레임워크다.

 

스프링 프레임워크는 MVC패턴을 적용하여 DI / IoC , AOP, TDD 등의 개념을 쿨하게 사용하도록 해 준다.

 

용어정리)

- MVC = 모델, 뷰, 컨트롤러로 분리하여 개발하는 디자인 패턴

- DI = 의존성 주입

- IoC = 제어의 역전

- AOP = 관점지향프로그래밍

- TDD = 테스트주도개발

 

스프링은 jar 파일로 컨테이너에 올라가서 라이브러리 형태로 구동이 된다.

솔루션 하나 팅겨 놓고 걔가 지원하는 API 를 쓴다는 개념인거 같다.

 

컨테이너는 서블릿을 구동시켜 주는 WAS이다. (Web Application Server)

톰켓이나 웹로직, 웹스피어, 제우스 이런 애들보고 와스라고 한다.

 

서블릿 컨테이너가 왜 필요하냐고?

예전의 정적인 웹사이트들은 컨테이너 따위는 필요가 없었다.

단순 HTML을 브라우저가 파싱해서 화면에 뿌려주면 되었으니까.

하지만 사람의 욕구는 그렇게 간단하지 않아서 인터렉티브 한걸 원하게 된다.

그래서 동적을 변화하고 사용자의 요구를 받아 들일 수 있는 웹을 만들려고 하다 보니 이 지경까지 온 것 같다.

예전 CGI같은 것들도 있는데 얘는 좀 무겁고 리소스를 많이 잡아 먹는 문제가 있었다고 함.

 

여처저차해서 자바로 만들어진 프로그램을 웹에서 돌리려고 서블릿 컨테이너가 등장을 하게 된거지.

예전에는 JSP라는게 없었다고 함.

서블릿에서 화면단까지 만들어 냈다고... 자바프로그램으로 html을 뽑아 내는 작업은

상당히 거지 같았다는 전설..???

서블릿 컨테이너는 JSP를 요청 받으면 JAVA코드로 바꿔서 클래스 파일로 변환을 시키지.

사용자는 컨테이너가 클래스를 html로 만들어낸 화면을 보게 되는 것이다.

WAS 재기동 후에 페이지를 처음 열면 상당히 느리게 뜨는 상황이 있다.

이건 최초 구동시에 컴파일을 시켜서 올리기 때문이지.

한번 되고 나면은 다음번에는 걔를 다시 읽어서 빠르게 화면이 뜬다.

 

그러면 또 서블릿은 뭐시냐..?

컨테이너에서 돌아가는 자바 클래스를 서블릿이라고 한다.

 

이러한 과정을 내부적으로 겁나게 거쳐야 웹사이트가 돌아가게 된다.

 

쓰고보니 죽도 밥도 안되는 개똥같은 글이 된거 같아서 가슴이 아프네..

차차 좋아지겠지... ㅠ.ㅠ

 

# 지극히 주관적인 내용으로 정확도 및 신뢰도는 상당히 많이 떨어짐 -_- 알아서 걸러야 함. ㅋ

반응형

댓글