Framework 프레임워크
Spring framework
• 경량프레임워크, 프로젝트 전체 구조 설계할때 유용
• 다양한 분야에서 사용하는 프레임워크, 엡에서 주로 많이 사용, 다른 프레임워크 포용(여러프레임워크 혼용가능), 개발도구 지원
❔ spring framework를 왜 쓸까
• 회사입장 : 일정한 품질이 보장되는 결과물을 얻을 수 있음
• 개발자 입장 : 완성된 구조에 자신이 맡은 코드를 개발해서 넣는 구조로 개발시간 단축, 개인적 개발실력의 차이를 약간 극복
스프링 버전에 따를 눈에 띄는 변화
• 2.5 : 어노테이션을 활용하는 설정 도입, 편리한 설정과 개발 가능
• 3.0 : 별도의 설정없이도 Java클래스만으로 설정파일을 대신할 수 있게 지원
• 4.0 : 모바일환경과 웹 환경에서 많이 사용되는 REST방식의 컨트롤러 지원
• 5.0 : Reactor를 이용한 Reactive 스타일의 개발 환경 지원
우리나라에서 많이 사용하는 프레임워크
• Spring Framework
• 전자정보 프레임워크 (관공서 같은곳)
• .NET Freamwork
• Struts
• PHP
• 자체 프레임워크
* 스프링은 스프링프레임워크만 단독으로 사용하기 보다는 여러 스프링 관련 프로젝트를 함께 사용한다.
Framework 가이드
• 프레임워크 사용법
• Spring MVC 프레임워크 : 웹 프로그래밍 기반
• Spring AOP 프레임워크 : 설계 기반
• Spring Boot 프레임워크 : 모든 설계 환경들을 합쳐놓은것
Spring Freamework
✔ 특징
☑ POJO 기반 구성 (Plain Old Java Object)
∙ 일반적인 자바 코드를 이용해 객체를 구성하는 방식 그대로 스프링에 사용할 수 있음
☑ MVC 웹 프레임 워크 제공 : MVC 모델 가지고 있음
☑ DI (Dependency Injection) 의존성 주입 / IoC (Inversion of Control 제어의 역전
∙ 객체를 대여하는 개념
∙ 만들어놓은 객체를 잠시 빌려쓰고 돌려주는 개념
☑ AOP (Aspect Oriented Programing) 관점 지향 프로그래밍
∙ 대부분의 시스템이 공통적으로 가지고 있는 로그, 트랜젝션, 보안 등 같이 비지니스 로직은 아니지만 반드시 처리가 필요한 부분을 횡단관심사라 하고, 스프링은 이런 횡단 관심사를 분리해서 제작하는 것이 가능
∙ AOP는 이런 횡단관심사를 모듈로 분리하는 프로그래밍 패러다임 이다.
👀
▫ POP Procedural Oriented Programing : 절차지향 : C
▫ OOP Object Oriented Programing : 객체지향 : Java, C+
▫ AOP Aspect Oriented Programing : 관점지향 : 개발자가 만들어놓은 기능을 사용자의 관점에 따라 목적에 맞으면 사용되고 그 사용처가 관점에 따라 다양해질 수 있는것
▸절차 + 관점 사용가능 / 객체 +관점 사용가능
✔ Spring 개발 환경 세팅
- JDK 1.8 (환경변수 세팅 필수)
- STS/Eclipse 툴 사용
- Tomcat 8.5 Server
- 오라클 DB(DBMS) 19c / SqlDeveloper 툴
- 스프링 MVC 프로젝트 생성 / 라이브러리 추가
- Mybatis (DB 프레임워크)
✔ Spring Tool
☑ IDE Tool
가장 많이 사용하는 통합개발도구 Eclipse 기반인 STS(Spring Tool Suite), 기본 Eclipse나 Intellij에 플러그인 형태로 사용
이클립스 : 기존에 사용하는 방법
STS : 스프링에서 배포해주는 eclipse
▪ 방법
- STS3 로 스프링
- 기존에 사용하던 일반 이클립스에서 STS3 프러그인 추가
- 기존에 사용하던 일반 이클립스에 Maven 프로젝트로 변경해 스프링라이브러리 추가하는 방식 (환경세팅 전부 다해야
☑ 프로젝트 생성방식
Spring 기본 방식 : lib 폴더에 스프링라이브러리들 다운받아 넣기 (offline)
Spring Boot 방식
Spring Maven 방식 : 많이 사용 (online)
SPring Gradle 방식 : 호주, 미국에서 많이 사용
✔ STS 세팅
1) STS 다운받아 설치
∙ Spring.od > project > Sprint Tool 4 > 하단에 Sts3 wiki 링크 클릭 > 하위버전 다운받아 압축해제
2) 서버세팅
3) 프로젝트 생성
∙ File - New - Spring Legacy Project > Project Name : 프로젝트명 / Template : Spring MVC Project 선택 > base package : com.spring.controller 등 3단계로 작성 > finish
❗ 주의 : 프로젝트 생성하고 하단에 프로그레스바가 완료될때까지 건드리지말고 기다리기. 소요시간 1~10분 정도
* STS4를 설치했을때 sts3 플러그인 추가 가능
- STS4에서는 Spring Legacy Project가 없으므로 sts 플러그인을 추가하면 해결된다.
- Help - Eclipse MarketPalce - Find에 sts 검색 - Spring Tool 3 Add on ~~ 나오면 Install 버튼 눌러서 설치
👀 폴더 설명
src/main/java : 자바로 작성되는 클래스들 위치할 곳 (패키지로 분리)
src/main/resources : 실행할때 필요한 자원같은 파일들 위치할 곳 (예를들어 부수적인 설정파일들)
src/test/java : 테스트 코드 작성하는 곳
src/test/resources : 테스트용 자원 위치할 곳
- src
- main
- webapp : (webContent랑 비슷) 존재하지 않는 가상의 폴더
- resources : js, css, img 등 외부에서 접근 가능한 자원
- WEB-INF
- classes : 컴파일된 자바 소스가 저장되는 곳
- spring
- root-context.xml : Root 컨테이너 설정 파일 (Root Context) : 공통으로 사용하는 것들 세팅 (부모설정)
- appServlet
- servlet-context.xml : Servlet 컨테이너 설정 파일 (Servlet Context) : 컨트롤러와 관련된 것들 세팅 (자식설정)
- views : jsp 파일들 위치할 곳
- web.xml : 전체 매핑해주는 것
- webapp : (webContent랑 비슷) 존재하지 않는 가상의 폴더
- main
- pom.xml : maven 방식으로 라이브러리 관리시 사용되는 설정 파일 (라이브러리 관리함)
✔ Eclipse
☑ Dynamic Web Project > Maven 으로 Convert 해서 Spring 개발
1) Eclipse 새로운것 실행 > Workspace 경로 새로운곳으로 설정하고 스타트
2) Encoding > utf-8 세팅
3) Server 세팅
4) 프로젝트 생성 : Dynamic Web Project > next > next > web.xml 생성한다에 체크하고 finish
5) 프로젝트를 Maven 방식으로 Converting하기
∙ 프로젝트폴더 우클릭 > Configure > Convert to Maven project 선택
∙ group id : 보통은 패키지 네이밍룰(도메인 뒤집기/3단계)을 따르는게 정석
∙ artifact id : 일반적으로 jar 파일에서 버전정보를 뺀이름, 소문자로 작성, 특수기호와 띄어쓰기 불가
6) 라이브러리 추가 (spring 4.3.25 진행)
방법1. 라이브러리 검색해서 다운받아 WEB-INF > lib 폴더에 추가
방법2. maven 사이트에 가서 라이브러리 검색하여 Maven용 태그 복사해서 pom.xml에 추가
📌Maven 사이트
https://mvnrepository.com/
SpringContext
Spring web
Spring web MVC
❗ 전부 같은 version으로 배치해야 함
'basic > spring' 카테고리의 다른 글
| [spring 04] ViewResolver, 파일 업로드&다운로드 (0) | 2021.08.03 |
|---|---|
| spring framework 03 [실습] 파라미터 수집, view로 데이터 보내기, 의존성주입 (0) | 2021.08.02 |
| [spring 03] Controller 파라미터 수집, 의존성 주입, 어노테이션종류 (0) | 2021.08.02 |
| spring 01-02 [실습] spring framework 세팅 ~ 웹페이지 띄워보기 (0) | 2021.07.30 |
| [spring 02] Spring MVC 세팅, 구성 (0) | 2021.07.30 |