Back End/Spring 27

Spring의 기본개념들 - IoC(Inversion of Control), DI(Dependency Injection), Bean, Spring Container, AOP(Aspect of Programming), PSA(Portable Service Abstraction)

IoC는 Inversion of Control 즉 제어의 역전이라는 뜻이다. 이전까지는 클래스 객체를 사용하기위해서 다른 클래스 내에서 객체를 직접 생성했다. public class A { b = new B(); // class A에서 new로 클래스 B의 객체를 생성} IoC는 객체를 직접 생성하거나 제어하는것이 아닌 외부에서 관리하는 객체를 가져와 사용하는 것이다. 이는 스프링 컨테이너에서 객체를 제공하고 관리하게된다. public class A { private B b; // 코드에서 객체를 생성하지 않고, 외부에서 가져온 객체를 할당한다.}  DI는 Dependency Injection, 의존성 주입이라고하고. 위에서 언급한것처럼 제어의 역전을 구현하기 위해 사용하는 방법이다. 한 클래스가 다른 ..

Back End/Spring 2024.06.24

war방식의 단점

프로젝트를 배포하기위해서는 톰캣같은 WAS(웹 어플리케이션 서버)를 설치하고 여기서 설정하고 배포를 해야한다. 이렇게 서버와 빌드파일이 분리되어있는데 별도로 설치를 해야하고 설정하는게 복잡하다. 톰캣같은경우 버전이 변경되면 다시 설치를해야해서 복잡하다. 그러다보니 Spring Boot에서는 톰캣을 내장 라이브러리로 제공해서 내장 톰캣을 지원하게되었다.

Back End/Spring 2024.03.16

Spring MVC

- 스프링 프레임워크를 구성하는 모듈, 정식 명칭은 Spring Web MVC다. - 서블릿 API를 기반으로 작성된 웹 프레임워크다. - 프론트 컨트롤러 패턴과 MVC 아키텍처 패턴을 사용 - 유연하고 확장성이 뛰어난 구조 - 견고한 웹 애플리케이션을 만드는데 도움이 되는 풍부한 기능을 제공 - 자바 언어의 Annotation과 Reflection API를 적극 사용 - Annotation-based programming 모델을 제공 - 경량 functional programming model을 지원 - CoC(Convertion over Configuration, 설정보다 관례)를 지원 - 짧은 코드로 함축적인 프로그래밍이 가능 # Annotation-based programming - @Contro..

Back End/Spring 2023.08.22

POJO (Plain Old Java Object)

1. 객체지향적 원리에 충실하고, 특정 규약과 환경에 종속되지 않게 재활용될 수 있는 방식으로 설계된 객체. 2. 객체의 애플리케이션 핵심 로직과 기능을 담아 설계, 개발하는 방법을 POJO 프로그래밍이라고 한다. 3. 자동화된 테스트에 유리하며, 유지보수성이 높다. 4. 2000년, 마틴 파울러가 컨퍼런스 준비 과정에서 만든 용어다. import javax.jms.MessageListener; import javax.jms.Message; import javax.jms.JMSException; public class OrderProcessor implements MessageListener { @Override public void onMessage(Message message) { if (messag..

Back End/Spring 2023.07.31

Spring 개요

스프링은 자바 엔터프라이즈 환경에 필요한 모든 것을 제공하고 자바 엔터프라이즈 애플리케이션을 손쉽게 만들 수 있다. # 엔터프라이즈 애플리케이션 1. 대규모의 복잡한 데이터를 관리하고, 이러한 데이터를 이용해 비즈니스 프로세스 지원 및 자동화한다. 2. 비즈니스의 근간으로 보안과 안정성, 확장성이 필요하며, 뛰어한 성능과 서비스의 안정성이 요구된다. 3. 다수의 사용자가 접근하며, 기업내 분산된 다른 엔터프라이즈 애플리케이션과 통합된다. 4. 데이터 입/출력을 위한 다양한 사용자 인터페이스가 제공된다. 고객 서비스, 공급망, 인사, 회계, 보험, 외환거래, 환자기록, 배송추적 등이 엔터프라이 어플리케이션이 속하고 운영체제, 게임, 워드 프로세서, 공장 자동화, 승강기 제어, 전화 스위치 등이 속하지 않는..

Back End/Spring 2023.07.31