programming study/B-Spring 18

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (1)

목록 웹서버 (Web Server) 웹 어플리케이션 서버 (WAS, Web Application Server) 웹서버, WAS 구성 방법 서블릿 서블릿 컨테이너 서블릿 컨테이너의 동시 요청을 위한 Multi Thread 처리 쓰레드 풀 백엔드 개발자로서 해야 할 것 ( 생각해보면 좋은 내용 ) : SSR 기술, 서버 요청 종류 자바 웹 기술 : Spring boot, Spring MVC, Thymeleaf가 요즘 많이 사용되기 때문에 주로 학습 서블릿 사용하기 http요청에따른 스프링 동작 흐름 HttpRequestServlet 역할 HTTP 요청 메세지를 통해 클라이언트에서 서버로 전달하는 방법 3가지 HttpServletResponse - 기본 사용법 MVC 패턴이란? 실습(서블릿 등록 방법, jsp..

Spring Boot 환경에서 Quartz Scheduler 사용하기

공부하게 된 이유 배치서버 작업 경험 중 배치서버가 이미 다 구현 된 상태이기 때문에 배치서버에 사용되는 Quartz 라이브러리를 잘 알지 못 해도 문제가 없었던 적이 있다. 배치작업 기능을 추가하는데 있어서 비지니스 로직을 추가하면 되는 상황이었다. 그렇지만 면접 준비를 하면서 작업 했던 환경에 대해서 설명을 요구할 수 있다고 생각해서 Quartz 라이브러리에 대해서 공부 해보기로 했다. 보통 대용량 데이터에 대한 작업을 순차적으로 처리하는데 사용되는 spring batch와 정해진 시간에 지정된 횟수만큼 반복적으로 특정 작업을 실행시키는 스케줄러 라이브러리인 quartz를 같이 사용한다고 한다. 그러나 spring boot 환경에서 spring batch 없이 quartz만 사용하여 batch ser..

spring 기본 요약 (사용 이유, 객체지향, IOC/DI/container, 빈 등록, 의존관계 주입, 스코프 등)

배경 레거시 소스를 파악하거나 프로젝트를 새로 만들 떄 spring에 대한 개념이 부족하면 어려움이 있다고 판단해서 spring에 대해서 공부하기로 하였습니다. 아래는 inflearn에서 김영한 spring 강의를 듣고 추가로 검색하면서 정리한 내용입니다. 목록 [이론] 스프링은 여러 뜻으로 사용됩니다. 스프링을 사용하는 이유는? 객체지향이란? 객체지향에서 다형성이란? 객체 지향 설계의 5가지 원칙 ( SOLID ) IoC, DI 그리고 컨테이너 싱글톤 패턴 컴포넌트 스캔과 의존관계 자동 주입 자동 빈 등록, 수동 빈 등록의 올바른 실무 운영 기준 의존관계 옵션처리 주입 대상이 되는 빈이 2개 이상이라면? 주입 대상이 되는 빈들을 모두 받고 싶을 때 (List, map) 빈 생명주기에 따른 콜백 기능 빈..

SOLID 원칙 적용

SOLID 원칙 적용 안된 예시 클라이언트 객체가 추상화된 인터페이스뿐만 아니라 구현 클래스도 의존하고 있는 상황. -> DIP 위반, SRP 위반 기능 추가시 클라이언트에서 구현클래스 사용부분을 새로운 구현 클래스로 갈아 끼워야 해서 클라이언트 객체도 수정해야함. -> OCP 위반 OrderServiceImpl.java에서 FixDiscountPolicy 부분을 주석처리하고 RateDisCountPolicy 구현체를 사용하도록 수정해야함 // DiscountPolicy disCountPolicy = new FixDiscountPolicy(); DiscountPolicy disCountPolicy = new RateDiscountPolicy(); SOLID 원칙 적용 예시 클라이언트 객체에 있던 구현클래..

spring-AOP

AOP 기본 형태 [Spring] AOP란? 용어 정리, 사용 방법 (tistory.com) @Aspect public class 어노테이션 이름 { @Around("execution(어노테이션 적용 대상 표현식)") //@Around("@annotation(TestAnnotation)") pivate Object 메서드 이름 (ProceedingJoinPoint joinPoint) throws Throwable { Object joinPoint = joinPoint.proceed(); return joinPoint } } 1) Target : 핵심 기능을 담고 있는 모듈로 부가기능의 대상을 의미 2) Aspect : 공통적으로 정의될 기능을 의미 @Aspect 어노테이션 - 공통 기능 메서드가 있는 클..

spring-@Resource, @Autowired, @Inject, 주입 방법(필드,생성자,setter)

참고) https://velog.io/@sungmo738/Resource-Autowired-Inject-%EC%B0%A8%EC%9D%B4 @Resource, @Autowired, @Inject 차이 의존 객체 자동 주입(Automatic Dependency Injection)은 스프링 설정파일에서 혹은 태그로 의존 객체 대상을 명시하지 않아도 스프링 컨테이너가 자동적으로 의존 대상 객체를 찾아 해당 객체에 필요한 velog.io https://devmg.tistory.com/143 Spring @Autowired, @Resource, @Inject의 어노테이션 차이 @Autowired, @Resource,@Inject은 모두 의존관계를 자동으로 연결해주는 기능을 가진 어노테이션이지만 조금씩 차이가 있다...

spring - 빈 등록 (@Component, @Bean, @Configuration)

참고) https://castleone.tistory.com/2 [Spring] @Configuration 개념과 장점 더보기 1. @Configuration 이란? : @Configuration이라고 하면 설정파일을 만들기 위한 애노테이션 or Bean을 등록하기 위한 애노테이션이다. 더보기 2. @Configuration을 사용하면 뭐가 좋은데? : @Configurat.. castleone.tistory.com https://mangkyu.tistory.com/75 [Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 - (1/2) 기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 ..