개발일지/스프링42 SpringBoot - JPA (의존성 설정), MySQL 설정, YML 파일 설정-1 프로젝트파일 생성 및 dependency추가 , 서버 포트번호 설정 , db연결 설정 Spring Web web mvc를 사용하여 웹 애플리케이션을 만드는데 필요한 스프링 부트의 기본적인 요소를 가지고 있다. 내장형 컨테이너로 톰캣을 기본 탑재하고 있다. 추가적인 의존성 설정 템플릿 엔진 (JSP) 만약 개발중 추가적인 라이브러리를 쓰고싶으면 pom.xml파일안에서 추가해주면된다. 밑에있는 코드는 추가부분 라이브러리 코드이다 다른 라이브러리 코드가 필요하면 https://mvnrepository.com/ // 스크립트 릿등을 사용하기 위해서 org.springframework.security spring-security-taglibs // JSP를 사용하기 위해서 org.apache.tomcat.embe.. 개발일지/스프링 2022. 12. 7. SpringBoot - 스프링 개념 정의 (JPA) , 스프링 동작 원리 스프링 동작 원리 DispactcherServlet이 스프링 컨테이너에서 요청을 받습니다. DispactcherServlet은 요청된 URL, URI , HandlerMapping 객체에 넘기고, 호출해야 하는 Controller 메소드 정보를 얻는다. DispatcherServlet이 HandlerAdapter 객체를 가져온다. HandlerAdapter 객체의 메소드를 실행 한다. Controller 객체는 비즈니스 로직을 처리하고 그 결과를 바탕으로 (뷰, jsp, timeleaf..) 전달할 객체를 Model 객체의 저장한다. DispathcerServlet view name 을 리턴하게 된다. DispathcerServlet 은 view name 을 View Resolver 전달하여 view 객.. 개발일지/스프링 2022. 12. 7. SpringBoot 어노테이션 만들어 AOP 활용하기 User Dto package com.example.demo.dto; import lombok.Data; import lombok.ToString; @Data @ToString public class User { private Long id; private String email; private String pw; } ApiController package com.example.demo.controller; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.StopWatch; import org.springframework.web.bi.. 개발일지/스프링 2022. 12. 7. SpringBoot - AOP [ AOP :Aspect Oriented Programming ] : 관점 지향형 프로그램 코드 분리! = 핵심 로직과 선택 로직의 분리!! 스프링 애플리케이션 대부분 특별한 경우를 제외하고 MVC 구조에서 Web Layer, Business Layer, Data Layer 세가지로 정의가 된다. Web Layer REST API 제공, Client 중심으로 적용 Business Layer 요청과 응답 등 내부 정책에 따라서 logic 개발 Data Layer repository 불리는 데이터 베이스 및 외부와 연동을 처리 한다. 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단.. 개발일지/스프링 2022. 12. 7. @ExceptionHandler(어드바이스 - Advice) 개발일지/스프링 2022. 12. 6. Spring Boot validation 활용 1 post요청으로 Body에 name, age 값을 요청하는데 잘못 요청시 예외처리를 해보자! 예외처리시 @RestControllerAdvice선언한 클래스에서 모든 예외처리를 해준다. 만약 요청시 body에 name값이 최소 2글자인데 한글자를 넣게되면 @MethodArgumentNotValidException 예외가 발생한다. MethodArgumentNotValidException의 예외를 처리해줄 로직이 필요하다. 개발일지/스프링 2022. 12. 6. IoC - Inversion Of Control IoC의 개념 IoC(제어권의 역전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다. 컴퓨넌트 의존관계 결정 (Component dependency resolution), 설정(configuration) 및 생명주기(lifecycle)를 해결하기 위한 디자인 패턴(Design Pattern) 1. 스프링에서는 일반적으로 java 객체를 new로 생성하여 개발자가 관리하는 것보다 Spring Container가 객체 생성 및 관리를 한다. 2. 개발자에서 실행의 제어권이 프레임워크로 권한이 넘어갔다라는 의미로 제어의 역전이라고 한다. 3. Spring Container가 생성한 객체를 Bean(빈) 이라고 부르고 아주 많은 객체들을 생성하고 관리하기 때문에, 이.. 개발일지/스프링 2022. 12. 4. DI (Dependency Injection) [ DI : Dependency Injection ] : (의존성 주입) 방식으로 여러 WAS 들을 하나 가지고 와서 사용한다!!! 무조건 가지고 와서 사용하는 것이다 !!! 사용이유 1. 의존성으로부터 격리시켜 코드 테스트에 용이하다. 2. DI를 통하여, 불가능한 상황을 Mock(모조품 객체)와 같은 기술을 통하여 안정적인 테스트가 가능하다. 3. 코드를 확장하거나 변경할 때 영향을 최소화한다. (추상화) 4. 순환참조 (NullPointException 같은 오류)를 막을 수 있다. BASE64 URL Encoding Base64 문자 하나는 6비트를 나타내는데, 64개의 문자를 0부터 63까지의 숫자로 변환하여 전체 데이터를 하나의 string 으로 바꾸는 인코딩 방식을 말한다. URL 쿼리 .. 개발일지/스프링 2022. 12. 4. SpringBoot - Annotations(어노테이션 모음) 맵핑(Mapping) 키워드 @RequestMapping("/...") URL 주소를 맵핑 @GetMapping("/...") Http GetMethod URL 주소 맵핑 @PostMapping("/...") Http PostMethod URL 주소 맵핑 @PutMapping(path ="")/... Http PutMethod URL 주소 맵핑 @DeleteMapping("/...") Http DeleteMethod URL 주소 맵핑 URL 추가 맵핑 @PathVariable URL PathVariable 맵핑 @RequestParam URL Query Parameter 맵핑 컨트롤러 (Controller) 키워드 @RestController REST API를 제공하는 controller로 설정 : 컨트.. 개발일지/스프링 2022. 12. 4. get 요청시 validation처리 하는 방법 validation사용시 셋팅할것 https://zico8282.tistory.com/entry/Spring-boot-validation-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95 Spring boot - validation 사용하는 방법 Validation 이란 프로그래밍에 있어서 매우 필요한 부분에 하나 이다. 특히 자바에서는 null 값에 대해서 접근 하려고 할때 예외 발생.. 여러가지 검증하는 부분을 Validation 체크라고 한다. 검증해야 zico8282.tistory.com package com.example.validation.controller; import javax.validation.constraints.Min; import.. 개발일지/스프링 2022. 12. 2. post 요청시 validation처리 하는 방법 validation 사용시 셋팅할것 https://zico8282.tistory.com/entry/Spring-boot-validation-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95 Spring boot - validation 사용하는 방법 Validation 이란 프로그래밍에 있어서 매우 필요한 부분에 하나 이다. 특히 자바에서는 null 값에 대해서 접근 하려고 할때 예외 발생.. 여러가지 검증하는 부분을 Validation 체크라고 한다. 검증해야 zico8282.tistory.com psot요청시에는 해당하는 객체의 DTO에서 처리를 해준다. 1. @NotBlank(message = "이름을 입력해주세요") 적용시 (post) 빈칸의 데이터.. 개발일지/스프링 2022. 12. 2. Spring boot - validation 사용하는 방법 Validation 이란 프로그래밍에 있어서 매우 필요한 부분에 하나 이다. 특히 자바에서는 null 값에 대해서 접근 하려고 할때 예외 발생.. 여러가지 검증하는 부분을 Validation 체크라고 한다. 검증해야 할 부분이 많아 코드의 길이가 길어진다. 구현에 따라서 달라 질 수 있지만 핵심 기능과의 분리가 필요하다. 흩어져 있는 경우 어디에서 검증을 하는지 알기 어려우며 재사용에 한계가 있다. 코드 추가해주기 필수!!! 안하면 적용이 안된다. 개발일지/스프링 2022. 12. 2. 이전 1 2 3 4 다음