Spring Validation
·
BE/Spring | SpringBoot
클라이언트 → 서버전달되는 데이터에 대해 유효성 검증 수행유효성 검증 실패 → 에러(`MethodArgumentNotValidException`)를 발생하도록 처리하는 라이브러리전체적인 흐름클라이언트) 데이터 담아서 `@RequestBody`, `@RequestParam`, `@PathVariable Annotation` 이용 → API 호출서버) `@Valid` or `@Validation Annotation` → 데이터 유효성 검증검증 통과서버) 성공 응답(Response) 데이터 전송 → 클라이언트검증 실패`MethodArgumentNotValidException` 에러 발생`@ControllerAdvice @ExceptionHandler` 로 구성한 `GlobalException`에서 해당 에러 ..
Spring Webflux, WebClient
·
BE/Spring | SpringBoot
Blocking 방식요청한 작업이 끝날 때까지 다른 작업 X 기다림= 하나의 Thread 요청 처리 → 처리함수 실행하면 제어권 함께 넘김⇒ 해당 함수가 끝날 때까지 다른 함수 호출 XNon-Blocking 방식요청한 작업이 수행되는 동안 다른 작업 O= 호출자가 함수 호출 → 제어권을 호출자가 가지고 있음⇒ 다른 작업 수행 ORestTemplateMulti-Thread + Blocking 방식Thread가 다 차는 경우 요청이 Queue에서 대기⇒ 클라이언트 접속 수↑ (동시성 ↑) → CPU, 메모리 충분해도 Thread 부족 → 성능 ↓Thread ↑ → CPU, 메모리 성능 ↓Spring 5.0 이후 → WebClient 사용하는 것이 권장TomactJava 기반의 웹 애플리케이션 서버, Spri..
스프링부트 개념정리(이론)
·
BE/Spring | SpringBoot
스프링이란프레임워크이다.프레임(틀)워크(동작하다) = 틀 안에서 동작하다 ⇒ 틀 제공해줄테니 벗어나지 말아라오픈소스이다.소스 코드 공개내부 볼 수 있다 = 내부 뜯어 고칠 수 있다IoC 컨테이너를 가진다.IoC(Inversion of Control): 제어의 역전주도권이 스프링에게 있다개발자 new → heap 메모리 공간에 올리고 여러 메서드에서 사용하고 싶음 ⇒ 레퍼런스 변수 주소를 각각의 메소드가 관리 → 공유하는 것이 힘듦클래스로 만든 오브젝트 → 스프링이 스캔해서 읽어서 자기가 객체를 직접 띄움 = 스프링이 읽어서 heap 메모리에 올려줌Class → 설계도 / Object → 실체화가 가능한 것 / Instance → 실체화된 것ex. 캐릭터/가구 - 추상적인 의미 → 실체화 X But, 농담..
[Spring Boot 3.x 를 이용한 RESTful Web Services 개발] 섹션 6. RESTful API 설계 가이드
·
BE/Spring | SpringBoot
Richardson Maturity ModelMaturity Model(성수도 모델)Level 0Expose soap web services in rest stylehttp://server/getPostshttp://server/deletePostshttp://server/doThisLevel 1Expose resources with proper urihttp://server/accountshttp://server/accounts/10note: improper use of http methodsLevel 2Level1 + HTTP MethodsLevel 3Level2 + HATEOASDATA + NEXT POSSIBLE ACTIONSRESTful API 설계 시 고려해야 할 사항Consumer first..
[Spring Boot 3.x 를 이용한 RESTful Web Services 개발] 섹션 5. Java Persistence API 사용
·
BE/Spring | SpringBoot
Java Persistence API의 개요ORM(Object Relational Mapping)객체를 관계형 데이터베이스에 있는 데이터와 자동으로 맵핑(연결)해주는 작업SQL 문장 자동으로 생성객체 사용 ~> 데이터베이스의 데이터 다룰 수 있게 해주는 메커니즘JPA(Java Persistence API)자바 ORM 기술에 대한 API 표준 명세자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스(규칙, 약속)EntityManager ~> CRUD 처리HibernateJPA의 구현체, 인터페이스를 직접 구현한 라이브러리생산성, 유지보수, 비종속성Spring Data JPASpring ModuleJPA를 추상화한 Repository 인터페이스 제공=> JDBC -> Hibernate..
[Spring Boot 3.x 를 이용한 RESTful Web Services 개발] 섹션 4. Spring Boot API 사용
·
BE/Spring | SpringBoot
Level3 단계의 REST API 구현을 위한 HATEOAS 적용HATEOAS(Hypermedia As the Engine Of Application State)현재 리소스와 연관된(호출 가능한) 자원 상태 정보를 제공 RESTful API 설계 단계Level0: The Swamp of POXLevel1: ResourcesLevel2: HTTP VerbsLevel3: Hypermedia Controls// pom.xml org.springframework.boot spring-boot-starter-hateoas@GetMapping("/users/{id}")public EntityModel retrieveUser(@PathVariable int id) { User user = service..
김앩옹
'BE/Spring | SpringBoot' 카테고리의 글 목록