Back-End/Spring 6

[Spring] 스프링 특징 IOC, AOP, DI 이란?

Spring Framework의 주요 특징 IOC, AOP, DI 1. IOC (Inversion of Control) : 제어의 역전Spring 컨테이너가 개발자 대신 의존성을 주입하고 객체의 생명주기를 관리하도록 하여 객체의 흐름을 관리 자바 기반 어플리케이션 개발시, 객체의 생성부터 소멸까지 및 의존 관계와 같은 흐름을 조작하고 결정하는 것은 개발자에게 있다. 하지만, IOC 패턴 사용시 객체의 생성 및 관리 등 제어 흐름의 결정 권한을 Spring 컨테이너에게 위임하여 객체의 라이프사이클을 관리하는 것을 말한다. Container가 bean을 관리해주기에 제어의 역전이라고 한다.IOC의 장점객체 간의 결합도를 낮춤유연한 코드 작성테스트의 용이성을 향상2. AOP (Aspect Oriented Pr..

Back-End/Spring 2023.12.14

[Spring] pom.xml / web.xml / servlet-context.xml / root-context.xml

📚 xml 파일xml 파일은 모두 Bean(객체)를 정의한다.📕 pom.xmljava, spring 버전 관리default값을 원하는 버전으로 변경해주면 된다. 1.8 4.2.4.RELEASE 1.8.8 1.7.14필요한 Library 설치maven project에 필요한 Library 들을 MVNrepository 에서 검색해 태그 안에 설치해주면 된다.org.aspectjaspectjrt${org.aspectj-version}org.aspectjaspectjweaver${org.aspectj-version} javax.servlet.jspjavax.servlet.jsp-api${jsp-version}providedjavax.servletjstl${jstl-version}📗 web.xmlw..

Back-End/Spring 2023.04.30

[Spring] Spring MVC

🌿 MVC (Model - View - Controller) 란?Application의 확장을 위해 Model, View, Controller 3가지 영역으로 분리한 것이다. Component의 변경이 다른 영역 Component에 영향을 미치지 않아 유지보수가 용이하고 Component간의 결합성이 낮아 프로그램 수정이 용이해 확장성이 뛰어나다. ModelService + Dao상태 쿼리에 대한 응답으로 변경을 View에 통지View사용자의 입력을 Controller에 전달Model을 화면에 표현ControllerApplication의 행위를 정의사용자 요청에 맞는 view를 선택 🌿 MVC 의 장/단점장점화면과 비즈니스 로직을 분리해 작업이 가능 -> 유지보수 용이영역별 개발로 인해 확장성 뛰어남..

Back-End/Spring 2023.04.30

[Spring] AOP (Aspect Oriented Programming)

AOP 등장 배경기존 OOP에서 핵심 관심 사항(core concern)과 공통 관심 사항(cross-cutting concern)을 여러 모듈에 중복 사용되는 한계를 해결하기 위해 AOP가 등장했다. 공통 관심 사항을 기준으로 프로그래밍함으로써 공통 모듈을 손쉽게 적용할 수 있게 한다.AOP 특징AOP는 핵심적인 기능에서 부가적인 기능을 분리Aspect 라는 모듈 형태로 만들어 설계하고 개발해 객체지향적인 가치를 지킬 수 있게하는 개념AOP 용어Target : 핵심기능을 담고 있는 모듈. 부가기능의 부여 대상Advice : 어느 시점에 공통 관심 기능 Aspect을 적용할지 정의. Target에 제공할 부가기능 담음JoinPoint : Aspect가 적용될 수 있는 지점. target 객체가 구현한 인..

Back-End/Spring 2023.04.28

[Spring] DI (Dependency Injection)

스프링 빈은 기본적으로 '싱글톤'으로 만들어진다. 그 외 방법으로 인스턴스 반환을 하게 하고싶은 경우 scope에 설정해주어야 한다. singleton : 스프링 컨테이너당 하나의 인스턴스 빈만 생성 (default) prototype : 컨테이너에 빈을 요청할 때마다 새로운 인스턴스 생성 request : HTTP Request별로 새로운 인스턴스 생성 session : HTTP Session별로 새로운 인스턴스 생성 🌽 스프링 빈 설정 (Annotation) 빈으로 사용될 클래스에 @Autowired annotation을 부여해 주면 자동으로 빈 등록 이때 반드시 context.xml파일에 component-scan을 설정해주어야 함 // servlet-context.xml (Web 관..

Back-End/Spring 2023.04.26

[Spring] Spring Framework란?

💎 Spring의 등장배경 웹 사이트가 점점 커지면서 엔터프라이즈급의 서비스가 필요하게 되었다. 점차 POJO + 경량 프레임워크를 사용하기 시작했고, EJB가 제공하는 서비스를 지원해 줄 수 있는 프레임워크 Spring이 등장했다. EJB (Enterprise JavaBean 1.0) : Low Level의 트랜잭션이나 상태관리, 멀티 쓰레딩, 리소스 풀링과 같은 복잡한 Low Level의 API를 이해하지 못해도 아무 문제 없이 애플리케이션 개발 가능 POJO + Framework : EJB서버와 같은 거창한 컨테이너 필요 없음 / 오픈소스 프레임워크라 무료 / 다양하고 많은 라이브러리 지원 / 모든 플랫폼에서 사용이 가능한 스프링 프레임워크 ❓ Spring이란? 자바로 Enterprise Appli..

Back-End/Spring 2023.04.25