Spring Legacy & Spring Boot

bow Rain·2021년 11월 13일
1

개발 관련 정리

목록 보기
3/19

스프링 프레임워크

WEB이나 일반 APPLICATION이나 둘다 개발이 가능하지만 WEB 쪽에 초점이 맞춰져있다.
대한민국에서 기존 스프링을 변형시켜서 만든 전자정부 프레임워크를 만들었음 오픈소스이기 때문에 가능한것이다.

https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3
설치 사이트
https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html
래퍼런스 사이트

스프링의 핵심 개념!!

DI(Dependency Injection) 의존성 주입 :

new 연산자를사용해 객체를만드는걸 스프링 프레임워크가 해줌
우리가 만들필요없으니 IOC 즉 제어의 반전이 일어나서 스프링이 대신 만들어줄수있는것
DI개념과 IOC개념 둘은 같이 돌아가는것이다.
(요약 : 설정을 하면 스프링이 변수에다가 값넣어준다)

AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 :

공통되는 기능들을 하나의 클래스에 넣어놓고
필요할때 다시 쓰는개념
기존의 흐름을 끊고 특정 클래스가 실행되기 전에 다른걸 실행되게 만들수있음 !
(예로 member를 조회하는 로직과 board를 조회하는 로직이있는데 세션을 만들고
닫고 하는 부분은 동일하고 sql문만 다르기때문에 동일한 관점의 로직을
따로 때어서 aspect로 관리해서 자동으로 처리하는 기술)

POJO(Plain Old Java Object) :

일반적인 클래스, 우리가만들었던 클래스들 전부 POJO로 등록할수있다,
클래스를 스프링에 등록하는걸 Spring Bean이라고함 스프링 객체 콩(Bean)
일반 클래스를 등록할수있음
(EJB에서의 불편한 설정을 해소해줌)

IOC(Inversion of Control) 제어의 반전 :

개발자가 아니라 컨테이너가 알아서 움직여서 처리해주는것.
WAS처럼 내가 선언만해놓으면 알아서 처리해서 뿌려주는것처럼
WAS CONTAINER말고 SPRING CONTAINER가 움직여서 알아서 처리해줌
XML에있는 설정을 읽어서 자동으로 돌아가는거
생명주기 관리도 스프링이 알아서 다한다.

스프링 구성 모듈

spring JDBC : Mybatis나 Hibernate등을 연결하는 모듈
spring MVC : 웹 프로젝트 MVC 패턴2로 만들때 사용하는 모듈
PSA : 스프링에서 제공하지않은 다른 모듈들을 사용할때 의존성을 없애주는 추상화 기능을 제공

Test : junit이라고함 mock 객체를 만들어서 가상으로 돌아가는지 테스트 서버 (Mock Server라 부름) 를 돌려 보는 역할을한다.

Data 접근 계층 : 영속성 프레임 워크 연결 담당
MVC 계층 : 서블릿을 연결하는 담당
AOP 계층 : 공통된 코드를 빼서 특정 메소드나 클래스 시점에서 흐름을 이어가게하는 담당
Core Container : 스프링 Bean을 제어, spring의 핵심 부분

스프링 웹 동작 구조의 흐름

1, Request 요청을 받음
2, 스프링 컨테이너의 설정파일을 읽어와서 서블릿 컨테이너는 Dispatcher Servlet으로 연결(web.xml설정도 봄)
3, 스프링 컨테이너 가동 후 Cotext를 불러옴 (클라이언트의 request, response를 가져옴, servlet-context.xml 스프링 설정 파일 불러옴)
4, 요청들어온 매핑값을 HandlerMapping을 이용해서 Controller 객체 매핑해서 매칭된 메소드를 실행
5, ModelAndView로 연결을해서 스프링 설정파일의 ViewResolver가 JSP 화면 찾고 사용자에게 Response 응답한다 (못찾으면 에러페이지를 쏨)

스프링 부트

Spring Legacy를 보다 더욱 쉽고 간편하게 사용하고자
개발된것이 Spring Boot이다.

여러가지 의존성(Dependency) 관리자 버전관리등 개발자들이 설정해야되는 부분을 set up, starter-pack으로 처리해줘서 버전 차이에 대한 호환성을 자동으로 맞춰주고 빠르고 쾌적하게 개발이 가능하며
내장 웹 컨테이너(Tomcat)를 탑제하고있어서 서버 구동시간이 훨씬 감소한다.
내장 서블릿 컨테이너가 있어서 빠르게 배포가 가능함.
작업 구조는 비슷함 어노테이션 처리에서 조금 차이가있고 레가시에서 추가된걸 부트가 가지고있음.

하지만 Spring Boot는 대부분 스타트업에서 사용되며 기본적으로는 Spring Legacy나 전자정부프레임워크 를 사용한다.

스프링 & 스프링 부트 설치 사이트
https://spring.io/tools#suite-three

STS 설치 및 환경 설정 정리

https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3

설치가 오래걸린다.. 시간을 갖고 기다리자.

실행!

응?

openjdk 11을 받아 ini 파일 설정을 한다..

인코딩 설정 UTF-8

Window -> Preferences -> General -> Worksapce

Window -> Preferences -> Web

Maven 폴더 생성 및 settings.xml 작성 후 설정

메이븐은 빌드 도구로 여러가지를 도와주는 프로그램이다.
기본적으로는 Ant라는 개미☆끼를 쓴다!


하지만 요즘은 메이븐보다 gradle이라는 코끼리 ☆끼를 더 많이쓴다.

Window -> Preferences -> Maven -> User Settings

기본 설정 끝!

STS 프로젝트 만들기

서버 설치

톰켓 추가 기존에 있는 서버는 첨부터 주는 서버인데
먼지 모름 걍 지움 원래 초보자 템은 버리는게 상식이다.

존나 오래걸린다.
maven 파일에 뭐 잔뜩 받음..

아는거 jstl, log4j, javax등 대충 보임

프로젝트 만들기

프로젝트 명이랑 Spring MVC Project 선택

패키지명 설정

인코딩 넣어줘야 한글안깨짐

이제는 식상한 Hello world!

0개의 댓글