분류 전체보기 112

RESTful 웹 서비스 구축 - @ControllerAdvice / @ExceptionHandler

간단한 REST API 를 만들어봤었다.추가적인 REST API 들을 만들어보기 전에, 예외 처리와 관련된 공부를 하고 가자.프로그램 개발과 예외 처리프로그램 개발 과정에서 **예외(Exception)**는 예상치 못한 상황에서 자주 발생합니다. 이러한 예외를 처리하는 방법은 다양합니다:try-catch를 이용한 예외 처리개별 코드 블록에서 발생할 수 있는 예외를 직접 처리합니다.try { // 예외 발생 가능성 있는 코드} catch (Exception ex) { // 예외 처리 코드}예외를 호출한 곳으로 전달 (throws)특정 메서드에서 발생한 예외를 호출한 메서드로 던질 수 있습니다.이를 위해 throws 키워드를 사용합니다. 예외를 직접 처리하지 않고 위임하는 방식입니다.public ..

RESTful 웹 서비스 구축 - @PutMapping / @DeleteMapping

PutMapping 은 수정하기 인데, 왜 CREATED 가 있는것인지,여기서 @Valid 는 @RequestBody 만 @Valid 하는 것인지, 아니면 @PathVariable 까지 포함해서 @Valid 하는 것인지.book.set~~() 을 해서 수정되는 데이터를 교체해줬는데, 왜 book=bookService.save(book); 을 해주는것인지,그리고 save 를 해주게 되면, id 값은 새롭게 부여되는것인지,아니면 id 값은 그대로 있고 @PrePersist 인 createdAt 의 값만 LocalDateTime.now() 를 받아서새롭게 부여되는것인지가 궁금해. 질문에 대한 답변:1. @PutMapping과 HttpStatus.CREATED의 조합:**@PutMapping**은 일반적으로 리..

RESTful 웹 서비스 구축 - @PostMapping / @RequestBody / swagger

entity, repository, service 까지 만들었다.첫번째로 만들어볼 REST API 는, 책 데이터를 저장하는 REST API를 만들어볼 것. 저장은, 기본적으로 POST, @PostMapping 이다. 요청은 /api/books 로 하겠다.요청을 처리하려면 Controller 를 만들어야 한다.@RestController 와 @RequestMapping("/api") 를 붙여준다.@Tag 는 Swagger 에 표시되는 걸 정할 수 있다고 했다. 1. 클래스 선언부@RestController이 클래스가 REST API의 엔드포인트를 제공하는 컨트롤러라는 것을 의미합니다.@Controller와 @ResponseBody가 합쳐진 형태입니다. 반환하는 값은 HTTP 응답의 바디에 직접 들어갑니다..

생각 정리 겸 앞으로의 계획 (토익 시험, 유레카 2기 결과 대기, 학습 계획)

일단, LG 유플러스 유레카 서류 통과 후 오늘 역량 검사를 봤다. 12월 31일에 대면 면접자가 될 수 있는지 결과가 나온다.지금 막 역량 검사를 다 보고 나니까 긴장이 조금 풀리는 것 같다. 엄청 맑고 깨끗한 정신으로 검사를 봤다고 생각하고 자신있지만 뭐든지 결과는 열어봐야 안다고 한다. 나는 지금 후회없을 만큼 알차게 하루 하루를 보내고 있다고 생각한다. 그러니 후회는 없다. 결과를 받아들일 준비는 이미 되어 있다. 그러니 긴장이 조금 풀린 지금, 다시 한 번 더 되짚어 보고, 앞으로의 계획을 기록하면서 머릿속 정리를 해보려고 한다. 12월 26일 - 12월 29일 : 토익12월 29일 - 12월 31일 - SpringBoot RESTful 학습일단은, 12월 31일, 결과를 기다려보자. 1. 12..

생각 기록하자 2024.12.26

RESTful 웹 서비스 구축 - @PrePersist / DTO 구분 (Entity, Payload, View)

REST 프로젝트를 MVCS 구조, 3-tier 구조로 만들어보고자 한다. createdAt 같은 경우에는, 우리가 직접 값을 입력하는게 아니라 DB에 데이터가 insert 가 될 때, 날짜는 자동으로 입력이 되도록 하기 위해서 @PrePersist 라는 어노테이션을 붙이면 Book 이라는 객체가 만들어져서 데이터가 DB table 에 들어갈 때 미리 @PrePersist 라는 어노테이션 부분이 실행이 된다. onCreate() 메소드가 실행이 될 것이라, 날짜를 우리가 입력하는게 시스템에서 직접 입력이 될 수 있도록 해주면 된다. protected 라고 했지만, public 이라고 해도 문제는 없다.1. @PrePersist의 의미PrePersist 는 "저장 전에" 라는 뜻을 가진 영어 단어입니다.P..

RESTful 웹 서비스 구축 - @RestController / MySQL / Swagger-ui

지금까지는 H2 DB를 사용했었는데, 이제는 MySQL DB를 사용한다.설치하고 오자. community -> MySQL 8 버전, workbench 가 포함된 걸로 설치하자. @RestController- Spring MVC는 @RestController 을 사용해서 RESTful 서비스 구축을 지원한다.Spring MVC의 RESTful 서비스에는 일반적으로 다양한 HTTP 메서드 (GET, POST, PUT, DELETE 등)에 해당하고특정 URI (Uniform Resource Identifiers, URI 와 URL 은 같은 개념으로 이해) 에 매핑되는 엔드포인트 생성이 포함된다. @RestController - vs - @Controller- 큰 차이는 없다, 클라이언트의 요청이 오면 처리를 ..

RESTful 웹 서비스 구축 - RESTful API와 마이크로 서비스: Spring Boot로 구현한 SOA 기반 아키텍쳐

RESTful 서비스와 백엔드의 역할백엔드 개발에서는 클라이언트의 요청에 따라 데이터베이스(DB)에 저장된 리소스를 클라이언트에게 전달하는 서비스가 핵심입니다.클라이언트는 다양한 시스템이 될 수 있습니다:모바일 시스템: 안드로이드, iOS 등다른 기술 스택: 파이썬, .NET 등이처럼 서로 다른 시스템에서도 우리가 Spring Boot로 만든 백엔드 서비스를 사용할 수 있습니다. 이 경우 백엔드의 역할은 **View(화면 단)**를 개발하는 것이 아니라, 순수하게 클라이언트 요청을 처리하고 데이터(리소스)를 반환하는 것입니다.백엔드와 View의 분리현재는 Java 백엔드와 함께 Thymeleaf나 JSP 같은 Java 기반의 View를 만들어 화면을 구성하고 있습니다. 그러나 프로젝트가 확장되거나 다른 ..

Spring Boot - # Project 03 - Spring 의 데이터바인딩 / html - form / @RequestParam

리뷰 작성하는 것,그리고 반영되는 것,hibernate가 sql 해주는 것,모두 확인을 마쳤다.하지만 아직도 이해가 잘 안 되는 부분, 조금 애매하게 이해한 부분들을 추가로 더 공부해보겠다.    Review 라는 객체는 id, content, rating, createdAt, book 이라는 멤버를 가지고 있어. book 은 ManyToOne 으로 Book 객체랑 연결이 된것이지만. 그리고 id 는 자동으로 증가하는 상황이야. GeneratedValue. 그런데, 여기서, 리뷰 및 평점 쓰기 부분에서, content랑 rating은 입력하는 것이 form 에 있는데, createdAt 은 내가 구현을 하지 않은 것 같은데 어떻게 된거지? 그리고 book은 자동으로 연결이 되는건가? 리뷰 및 평점 쓰기 ..