본문 바로가기

분류 전체보기

(354)
1일차 - 공공 API 'POSTMAN' 으로 'JSON 형식' 확인하기 ▶ 공공데이터 API를 사용해서 POSTMAN으로 JSON형식이 어떻게 날아오는지 확인하기 위한 작업 ▶ 전에 인증키 발급을 해둔 상태   1. https://www.data.go.kr/ 접속 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr  2. 교통사고 검색  3. 검색 결화 화면창  4. 상세 페이지에 들어가서 [오픈API] - [활용신청]  5. [마이페이지] - [데이터 활용] - [Open API] - [활용신청 현황]에서 확인  6. 총 건수에서 원하는 API를 클릭하면 하단에 인증키 설정(내가 발급받은 인증..
완성 코드 STEP 03 - 인터셉터 만들어 보기 ( 인증과 권한 처리 ) 인터셉터(Interceptor)는 스프링 MVC에서 제공하는 기능으로, 클라이언트의 요청을 처리하는 과정에서 특정 작업을 수행할 수 있도록 도와준다. 인터셉터는 컨트롤러의 메서드(URI)에 접근하는 과정에서 요청을 가로채어 전처리(pre-processing) 및 후처리(post-processing)를 할 수 있다.  필터(Filter)와의 차이점필터는 서블릿 레벨에서 동작하며, 모든 요청에 대해 작동한다.인터셉터는 스프링 MVC 레벨에서 동작하며, 특정 핸들러(컨트롤러)로의 요청에만 작동한다.인터셉터를 통해 로그인 여부 확인, 권한 검사, 로깅, 요청 시간 측정 등 다양한 작업을 효율적으로 처리할 수 있다.   로그인 인터셉터 만들기로그인 인터셉터는 사용자의 로그인 상태를 확인하고, 로그인하지 않은 사용..
완성 코드 STEP 03 - 에러 컨트롤러 및 커스텀 익셉션 만들기 ( 인증과 권한 처리 ) package com.tenco.blog_v2.common.errors;public class Exception400 extends RuntimeException { // throw new Exception400("야 너 잘못 던졌어"); package com.tenco.blog_v2.common.errors;public class Exception401 extends RuntimeException { public Exception401(String msg) { super(msg); }} 생략 …@ControllerAdvice: 전역적인 예외 처리를 담당하는 클래스임을 나타낸다.@ExceptionHandler: 특정 예외가 발생했을 때 실행할 메서드를 지정한다.Mode..
완성 코드 STEP 03 - 에러 페이지 만들기 ( 인증과 권한 처리 ) 스프링 부트는 기본적으로 BasicErrorController를 통해 애플리케이션에서 발생하는 에러를 처리한다. 이 컨트롤러는 /error 경로로 모든 에러를 매핑하며, 에러 발생 시 적절한 에러 페이지를 렌더링한다. 그러나 기본 제공되는 에러 페이지는 단순한 텍스트 형태로 제공되기 때문에, 추가적인 가공 작업이 필요하다. 에러 페이지 매핑 설정스프링 부트는 기본적으로 /error 경로를 통해 에러를 처리한다. application.properties 파일을 통해 커스터마이징 된 에러 페이지를 적용할 수 있다.{{> layout/header}}BadRequest 400{{msg}}{{> layout/footer}}400 Bad Request 에러 페이지 … 생략.. 401, 403 …    appliac..
완성 코드 STEP 02 - 회원정보 수정 ( JPA API , JPQL 쿼리 사용, 인증(세션 로직 추가 ) UserController @PostMapping("/user/update") public String update(@ModelAttribute(name = "updateDTO") UserDTO.UpdateDTO reqDTO) { User sessionUser = (User) session.getAttribute("sessionUser"); if (sessionUser == null) { return "redirect:/login-form"; } // 유효성 검사는 생략 // 사용자 정보 수정 User updatedUser = userRepository.updateById(sessionUser.get..
완성 코드 STEP 02 - 회원 가입 ( JPA API , JPQL 쿼리 사용, 인증(세션 로직 추가 ) UserRepositorypackage com.tenco.blog_v1.user;import jakarta.persistence.EntityManager;import jakarta.persistence.TypedQuery;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;@RequiredArgsConstructor@Repository // IoCpublic class UserRepository { private final EntityManager em; /** * 사용자..
완성 코드 STEP 02 - 게시글 수정 ( JPA API , JPQL 쿼리 사용, 인증(세션 로직 추가 ) boardController - 게시글 수정하기 화면 요청 // 게시글 수정 화면 요청 // board/id/update @GetMapping("/board/{id}/update-form") public String updateForm(@PathVariable(name = "id") Integer id, HttpServletRequest request) { // 1. 게시글 조회 Board board = boardNativeRepository.findById(id); // 2. 요청 속성에 조회한 게시글 속성 및 값 추가 request.setAttribute("board", board); // 뷰 리졸브 - 템플릿 반환 ..
완성 코드 STEP 02 - 게시글 삭제 ( JPA API , JPQL 쿼리 사용, 인증(세션 로직 추가 ) BoardRepository 에서 게시글 삭제 쿼리를 만들어 보자. JPA API , JPQL 객체 지향 쿼리 작성 (삭제 권한)package com.tenco.blog_v1.board;import jakarta.persistence.EntityManager;import jakarta.persistence.Query;import jakarta.persistence.TypedQuery;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Required..

728x90