profile
하루하루 꾸준히 포기하지 말고

Spring Batch

✔️ 정해진 시간에 일괄적으로 작업을 처리하는 것✔️ 대체로 대용량 데이터를 처리할 때 사용한다.✔️ 서비스를 운영하는 관점에서 주기적으로 작업을 처리하기 위해서는 배치 프로그램을 사용해야 한다.✔️ 필요한 데이터를 모아서 처리해야 할 때ex) 월별 거래 명세서 생성✔

2023년 5월 29일
·
0개의 댓글
·

Could not find org.thymeleaf.extras:thymeleaf-extras-springsecurity5

Could not find org.thymeleaf.extras:thymeleaf-extras-springsecurity5dependency에 아래와 같이 버전을 같이 명시해주면 됨implementation 'org.thymeleaf.extras:thymeleaf-ex

2023년 5월 12일
·
0개의 댓글
·

Swagger

Swagger란, 개발한 REST API를 편리하게 문서화 해주고, 이를 통해서 관리 및 제 3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트이다.Spring Boot에서는 build.gradle에서 dependencies에 springfox-bo

2023년 5월 2일
·
0개의 댓글
·

API 예외 처리

이전 포스트에서 에러 발생 시 뷰 템플릿으로 오류 페이지를 보여주도록 처리를 해봤다면, 이번 포스트에선은 API 경우에 어떤식으로 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON 형태로 데이터를 반환해 줄지 알아본다.✔️ 예외 발생 시, API 형태로 내려주는 코

2023년 4월 25일
·
0개의 댓글
·

Servlet 예외 처리

✔️ 해당 포스트에서는 스프링이 아닌 순수 서블릿 컨테이너가 어떻게 예외를 처리하는지 정리해본다.Exception(말그대로 예외 발생, RuntimeException 등..)response.sendError(Http 상태 코드, 오류 메시지)웹 애플리케이션에서 Exce

2023년 4월 25일
·
0개의 댓글
·

로그인 처리 - 쿠키, 세션

✔️ 로그인 및 쿠키 생성로그인 성공 후, 쿠키를 생성하고 HttpServletResponse에 쿠키를 담는다.✔️ 기본 홈 화면 및 로그인 한 사용자에 대한 로그인 홈 화면 처리home 접속 시, 해당 사용자의 로그인 쿠키과 사용자 정보가 있으면 쿠키를 통해 로그인

2023년 4월 24일
·
0개의 댓글
·

Bean Validation

Bean Validation은 특정한 구현체가 아니라, Bean Validation 2.0(JSR-380)이라는 기술 표준이다.검증 어노테이션과 여러 인터페이스 모음이다.Bean Validation을 구현한 기술중에 일반적으로 사용하는 구현체가 Hibernate Val

2023년 4월 24일
·
0개의 댓글
·

Validation

이번 포스트에서는 각 유효성 검증에 사용되는 방법들을 정리해본다.HashMap을 사용하여 오류가 발생한 필드 명과 오류 메시지를 저장해서 model에 넘겨준다.✔️ 위 방법의 문제점뷰 템플릿에서 중복 처리가 많다.타입 오류 처리가 안된다. 숫자 필드의 경우 문자 타입을

2023년 4월 23일
·
0개의 댓글
·

RequestMappingHandlerAdapter 구조

이전 포스트에서 정리했던 HTTP MessageConverter가 어느 시점에 어디에서 실행되는 것인가?위 질문에 대한 답을 얻기 위해 RequestMappingHandlerAdapter 구조 및 동작 방식부터 알아본다.@Controller 기반의 컨트롤러는 매우 다양

2023년 4월 22일
·
0개의 댓글
·

HTTP MessageConverter

MessageConverter는, HTTP 메시지 바디(Payload)를 직렬화된 형식에서 객체 형식으로 변환하거나, 그 반대로 역직렬화된 객체 형식에서 Json 포맷 형태로 직렬화하여 변환해주는 기능이다.HTTP 요청 : @RequestBody, @HttpEntity

2023년 4월 22일
·
0개의 댓글
·

스프링 MVC - @RequestMapping

이전 포스트에서 진행했던 HandlerMapping, HandlerAdapter 에서 이제는 @RequestMapping 을 사용해서 코드를 작성해본다.컨트롤러에 @RequestMapping 어노테이션을 사용하면 HandlerMapping은 RequestMappingH

2023년 4월 22일
·
0개의 댓글
·

View Resolver

핸들러에서 반환된 ModelAndView를 알맞는 View로 전달하기 위해 DispatcherServlet에서 View Resolver를 실행한다.View Resolver는 ModelAndView에 들어있는 View 이름(논리적 뷰 이름)을 가지고 해당되는 View 컴

2023년 4월 22일
·
0개의 댓글
·

HandlerMapping, HandlerAdapter

HandlerMapping은 HTTP 요청 정보를 이용하여 이를 처리할 핸들러(컨트롤러)를 찾아주는 기능을 가진 DispatcherServlet의 전략이다.(숫자는 우선순위를 의미)0 = RequestMappingHandlerMapping → @RequestMappin

2023년 4월 22일
·
0개의 댓글
·

스프링 MVC (DispatcherServlet)

org.springframework.web.servlet.DispatcherServlet스프링 MVC는 프론트 컨트롤러 패턴으로 구현되어 있고, 스프링 MVC의 프론트 컨트롤러가 바로 DispatcherServlet 이다.DispatcherServlet이 스프링 MVC

2023년 4월 21일
·
0개의 댓글
·

FrontController

프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출해준다.공통 처리 기능으로 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.스프링 웹 MVC의 핵심도 FrontController로, Di

2023년 4월 19일
·
0개의 댓글
·

MVC 패턴

✔️ 서블릿과 JSP의 한계서블릿으로 개발할 때는 View 화면을 위한 HTML 코드를 자바 코드에 섞여있어서 지저분하고 복잡하다.JSP를 사용했을 때는 View 생성하는 HTML 부분이 서블릿 보다 깔끔하고 중간에 자바 코드가 필요한 부분만 적용할 수 있어 좀 더 편

2023년 4월 18일
·
0개의 댓글
·

Servlet

스프링 부트에서 서블릿 환경을 구성해서 Servlet에 대한 동작 방식을 이해하기서블릿은 스프링 부트가 필요없이 구성 및 실행이 가능하지만, 실행하기 위해서는 톰캣 같은 WAS를 설치하고 그위에 서블릿 코드를 클래스 파일로 빌드해서 올리고 톰캣 서버를 실행하는 복잡하고

2023년 4월 16일
·
0개의 댓글
·

빈 스코프(Bean Scope)

빈 스코프란, 스프링 빈이 존재할 수 있는 범위를 뜻한다.싱글톤(Singleton) : 기본 Scope, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프프로토타입(Prototype) : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관

2023년 4월 15일
·
0개의 댓글
·

빈 생명주기 콜백

스프링 빈은 일반적으로 생성자 주입이 아닌 경우에는, 객체가 먼저 생성되고 그 이후에 의존관계가 주입된다. 객체 생성 -> 의존관계 주입따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다.스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메

2023년 4월 15일
·
0개의 댓글
·

Lombok 적용 방법

build.gradle에 라이브러리 및 환경 추가File > Settings (윈도우 기준) > plugin > lombox 검색 및 설치 실행 (IntelliJ 재시작)Preferences > Annotation Processors 검색 > Enable anntati

2023년 4월 15일
·
0개의 댓글
·