[Spring] STS 플러그인

Whatever·2022년 1월 25일
0

Spring(스프링)

목록 보기
1/29
post-thumbnail

스프링 시작할때 가장 첫번째로 해야할 일:
STS 플러그인 설치

1. 이클립스 STS 플러그인

  • 현재 자바 버전은 15까지 나온 상태이지만, 주로 8버전(jdk 1.8)이 일반적임.
  • 이클립스 2020-09 버전부터는 자바 버전 11이상을 필요로 하므로 자바 버전 8버전용으로 마지막 버전인 2020-06 버전을 많이 사용함
  • Spring Tools Suite 플러그인을 이클립스에 설치
  • 스프링 개발 시에 필요한 기능들을 support하는 역할

2. Spring -> Spring Legacy Project -> Spring MVC project

  • 가장 일반적인 MVC 프로젝트

3. Maven 메이븐

  • 프로젝트를 생성하고 library를 관리하고 build하는 것까지 프로젝트의 라이프 사이클(생성-활용-제거)을 관리하는 소프트웨어.
  • 자동으로 라이브러리를 쓸 수 있게 해 줌.

4. Spring 초스피드 엑기스 간단 정리

  • pom.xml : 메이븐 프로젝트 빌드 파일
  • 자바 소스 경로는 : src/main/java
  • 정적 리소스 파일 경로는 : (이미지, 자바스크립트, JQuery, css 등 파일) src/main/resources
  • web.xml : 웹 컨테이너(톰캣) 설정 파일
  • servlet-context.xml : 스프링 웹 설정 파일
  • root-context.xml : 스프링 설정 파일
  • views 폴더 : 뷰 파일(jsp) 경로

5. 로그 레벨 설정

  • FATAL : 아주 심각한 오류 발생
  • ERROR : 요청 처리 중 문제 발생
  • WARN : 실행에는 문제 없음, But, 향후 오류의 원인이 될 수 있을 때 경고
  • INFO : 어떠한 상태변경과 같은 정보성 메시지
  • DEBUG : 개발 시 디버그 용도
  • TRACE : 상세 이벤트 발생 시 알려줌

[설치]

eclipse Marketplace 접속 > spring tools 3 검색

install 버튼 클릭 > confrim 클릭 > accept 클릭하고 Finish > 기다린 후 restart now 클릭

프로젝트 생성

레거시 : 유물, 옛날


dependency - 다운받으면 알아서 관리를 해준다. (Maven이 같이 작동한다.)




pom.xml 설정

자바버전을 1.8로, 5.2.5

프로젝트 우클릭> run as> 4.Maven Build 클릭

compile 입력
tomcat서버의 JSPbook remove

서버 더블클릭 > Modules클릭

servlet context 설정


path를 설정할 수 있다.
일반 클래스가 controller가 되어지는 과정
annotation controller 설정하면 controller가 된다.

응답하는 경우

  • prefix가 앞으로 , suffix가 뒤로 합체(조립)이 된다.
    ex)list를 응답할 경우 prefix인 /WEB-INF/views/ 이 앞에 붙고 suffix인 .jsp가 붙어서 응답됨
    이것을 ViewResolver라고 함
    => 컨트롤러에서 return되는 string값(파일명) 앞 뒤로 조립되는 값

Resource - image파일, js파일 등 파일을 저장하는 장소, 직접 접근이 가능

views - 직접 접근이 불가능(보안때문에)

servers - context.xml 설정

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--><!-- The contents of this file will be loaded for each web application -->
<Context allowCasualMultipartParsing="true" path="/">
   <Resources cashingAllowed="true" cacheMaxSize="100000" />
    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
</Context>

자동으로 UTF-8을 설정하는 방법

spring web.xml encodingfilter를 검색

log4j 설정


warn을 debug로 변경

[숙제]
스프링 삼각형에 대해서 연구해오기
POJO
POJO란 Plain Old Java Object의 약자로 다른 클래스나 인터페이스를 상속/implements 받아 메서드가 추가된 클래스가 아닌 일반적으로 우리가 알고 있는 getter, setter 같이 기본적인 기능만 가진 자바 객체를 말한다.

IoC
"제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다.
인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다.

객체관리 주체가 프레임워크(Container)가 되기 때문에 개발자는 로직에 집중할 수 있는 장점이 있다.

DI
스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,
객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.

AOP
Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다.

AOP는 OOP(Object Oriented Programming, 객체지향 프로그래밍)를 돕는 보조적인 기술로,

관심사의 분리(기능의 분리)의 문제를 해결하기 위해 만들어진 프로그래밍 패러다임 입니다.

AOP는 기능을 핵심 관심 사항(Core Concern)과 공통 관심 사항(Cross-Cutting Concern)으로 분리시키고

각각을 모듈화 하는 것을 의미합니다.

업무 로직을 포함하는 기능을 핵심 기능(Core Concern)

  • 핵심 기능을 도와주는 부가적인 기능을 부가 기능(Cross-Cutting Concern) 이라고 부른다.
  • OOP를 적용하여도 핵심 기능에서 부가 기능을 쉽게 분리된 모듈로 작성하기 어려운 문제점을 AOP가 해결해준다.
  • AOP는 부가 기능을 애스펙트(Aspect)로 정의하여, 핵심 기능에서 부가 기능을 분리함으로써 핵심 기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 있게 도와주는 개념이다.

PSA
환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하는 추상화 구조를 말합니다.
PSA가 적용된 코드라면 나의 코드가 바뀌지 않고, 다른 기술로 간편하게 바꿀 수 있도록 확장성이 좋고,

기술에 특화되어 있지 않는 코드를 의미합니다.

Spring은 Spring Web MVC, Spring Transaction, Spring Cache 등의 다양한 PSA를 제공합니다.

각각에 대한 발표하기(랜덤으로 뽑아서 개념 발표)

0개의 댓글