spring

spring/spring mvc1

⭐️ 스프링 MVC 5 - 기본 기능

1. 로깅 알아보기 실무에선 System.out.println() 사용하지 않고 로깅 라이브러리 사용해서 log 출력 println을 사용하지 않는 이유 log가 더 자세한 정보를 넘긴다. log는 level 설정이 가능해서 log를 선별해서 받을 수 있다. 반면 println은 선별해서 값을 받을 수 없어서 운영시스템이 더러워진다. 로깅 라이브러리 스프링 부트 라이브러리 사용시, 스프링 부트 로깅 라이브러리가 포함 인터페이스 : SLF4J 제공 구현체 : Logback, Log4J, Log4J2 등등 존재 -> spring boot는 Logback 주로 사용 log 장점 application.properties를 이용해서 관리할 수 있어서 로그 레벨에 따라 개별 서버에서 상황에 맞는 log 범위 설정..

spring/spring mvc1

스프링 MVC 4 - 스프링 MVC 구조 이해

0. 스프링 MVC 전체 구조 0.1. 큰 구조 Tocat Request, Response Servlet Container Spring Conatiner ServletContext AnnotaionApplicationContext 0.2. Spring MVC 구조 직접 만든 프레임워크 스프링 MVC 비교 FrontController -> DispatcherServlet handlerMappingMap -> HandlerMapping MyHandlerAdapter -> HandlerAdapter ModelView -> ModelAndView viewResolver -> ViewResolver MyView -> View 1. dispatcherServlet 1.1. dispatcher 개요 tip : int..

spring/spring mvc1

⭐️ 스프링 MVC 3 - MVC 프레임워크 만들기

0. summary FrontController 도입(v1) : @WebServlet 어노테이션 중복 해결 View 분리 (v2) : viewPath, render 역할 분리 - Myview가 수행 Model 추가 (v3): controller에 httpServlet 안보내려는 노력 controller modelview에 보낼 정보(model) render할 논리 path명(view)만 전달 FrontController req 정보 map으로 변환해서 paramMap이란 매개변수 controller로 전달 controller로 줌 논리명 → 물리명 변경 myview model.map 정보 request에 담기 render 수행 실용적인 컨트롤러 (v4) ModelView 사용안함 - 나머진 v3와 동일 ..

spring/spring mvc1

스프링 MVC 2 - 서블릿, jsp, MVC 패턴

1. domain, repository 도메인, 리포지토리 생성 repository로 바로 service역할까지 수행 package hello.servlet,domain.member; // 회원 도메인 모델 = entity model @Getter @Setter public class Member { private Long id; //repository에서 id 자동으로 줌 // 생성자 주입으로 받음 private String username; pirvate int age; public Member(){}; public Member(String username, int age){ this.username = username; this.age = age; } } public Member findAll(){..

spring/spring mvc1

스프링 MVC 1 - 서블릿

프로젝트 생성 tip Dependencies: Spring web, Lombok War 외장 톰컷 서버 별도 설치 및 jsp 사용시 선택 Gradle : Gradle -> IntelliJ IDEA Lombok plugin -> lombok 설치 -> 재시작 Annotation Processors -> Enable annotation processing 체크 후 재시작 1. 서블릿 기본 사용법 레거시 : tomcat(=sevlet was) 직접 설치 -> 서블릿 코드를 class file로 빌드 스프링부트: 톰캣 서버 내장(embedded) -> 서블릿 코드만 실행 서블릿은 스프링관 관련이 없다. 스프링은 서블릿을 더 편하게 사용할 수 있도록 스프링 web mvc를 가지고 있을 뿐이다. 1.1. @Serv..

spring/spring & boot 설정

⭐️ 3. Web & WAS 경로

1. web server, web app server 웹 http 기반으로 작동 = http protocol의 규칙을 따라서 요청과 응답이 오고 간다. http 메시지 거의 모든 형태의 데어터 전송 가능 ex) HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML (API) 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 2. 용어 2.1. 웹 서버(WEB) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 webServer가 가지고 있는 html,css.js.img,avi 를 client가 요청시, http로 응답해주는 것 ex) NGINX, APACHE 2.2. 웹 애플리케이션 서버(WAS) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프..

spring/spring 핵심

스프링 핵심 원리 이해 8 - bean scope

1. bean scope scope: 범위, bean이 존재할 수 있는 범위 1.1. scope 종류 싱글톤 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 스프링 컨테이너가 프로토타입 빈의 생성 → 의존관계 주입 → 초기화 메서드 까지 관여 (spring bean 생명 주기) 이후는 관리하지 않는 매우 짧은 범위의 스코프 종료 callback 없음 웹 관련 스코프 request: 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 싱글톤, 프로토타입, request 정도 알면 충분 웬만하면 싱글톤으로 처리를 하는 것을 권..

spring/spring 핵심

스프링 핵심 원리 이해 7 - bean 생명주기 callback

1. 빈 생명주기 콜백 시작 Spring bean 생성, 종료 직전 @Bean 객체 내부 method를 호출해주는 기능 생성후 초기화시 호출 죽기 직전 안전 종료 메서드 호출 필요한 이유 db connection pool, network socket처럼 app시작 시점에 필요한 연결을 미리 해둘 경우 app 종료 시점에 연결을 모두 종료하는 작업을 진행하기 위해서 객체 내부 종료 작업 필요 1.1. 예제 문제 코드 - 미리 connect()를 하고 싶어서 생성자 내부에 connect() 넣어봤다 - 시도를 한 것. 잘못된 시도 package hello.core.lifecycle; public class NetworkClient { private String url; // 생성자 내부에 connect() ..

wooweee
'spring' 카테고리의 글 목록