분류 전체보기

·Spring Boot
security 동작 중에 발생하는 예외는어떻게 처리할 수 있을까?      기존에 사용하는 예외 처리 방법을 사용할 수 있나? --평소에는 @ControllerAdvice, @RestControllerAdvice, @ExceptionHandler 를 이용해서 예외처리를 했다.다만 해당 어노테이션들을 사용하는 방법은 컨트롤러에서 발생하는 예외를 처리하는 방법으로아직 컨트롤러에 접근하기도 전 단계인 security에서 발생하는 예외는 처리할 수 없다. 2024.01.18 - [Spring Boot 3] - 상태 코드 반환하기2024.04.24 - [Spring Boot 3] - 전역으로 예외 처리 통일 시키는 방법--    security에서 발생하는 예외를 처리하는 방법은? --security에서 발생하..
·Terminology
동기 (Synchronous),비동기 (Asynchronous) 란 무엇인가?      동기 (Synchronous) --동기식은어떠한 행동을 하고 해당 행동에 대한 응답(결과)를 확인한 후 그 다음 행동을 진행하는 것이다.그리고 여러개의 요청을 순차적으로 진행하게 된다. --    비동기 (Asychronous) --비동기식은 동기식과 다르게어떠한 행동을 하고 해당 해동에 대한 응답(결과)를 확인하지 않고 바로 다음 행동을 진행하는 것이다.그리고 여러개의 요청을 순차적으로 진행하지 않는다. --    동기식과 비동기식의 장단점 --동기식은어떠한 행동에 대해 응답이 올 때까지 기다리다가 응답을 확인하고 그 다음 동작을 수행하기 때문에응답이 올 때까지는 아무것도 하지 않고 가만히 있는 단점이 있지만결과를 ..
·Spring Boot
특정 시간마다 자동으로 수행하는 로직은어떻게 구현해야 할까?      환경 --IntelliJ community 2023.1.5Spring Boot 3.2.1JDK 17--    스케줄러란? --예시로쇼핑몰에서 회원 등급을 올해 총 구매 금액을 기준으로 부여한다면매년 회원의 총 구매 금액을 0으로 초기화를 해주어야 한다. 이렇게 특정 시간마다 자동으로 어떠한 로직이 수행되도록 도와주는 것이 스케줄러이다. Spring에서는 스케줄링을 구현하기 위해 TaskScheduler   :   스케줄링 기능을 관리하는 인터페이스 / 스케줄링할 작업을 정의 및 실행 가능@Scheduled   :   메서드에 정의할 수 있으며 정의된 메서드는 주기적으로 실행되도록 스케줄링이 된다.기능을 제공한다.--    Spring에..
·Self Q&A
API 요청 시 접근하는 URI에 자신의 id 값을 입력하여접근을 하는데 이 때 id가 본인이 맞는지 확인하는 방법이 무엇일까?      의문 --회원 A의 id(기본키) 값이 5라고 가정하자.회원 A는 마이 페이지에 접근하려고 마이페이지에 접근하는 API URI인/member/{id}/myPage 에 접근을 했다고 할 때일반 회원이 조작없이 접근할 때는 자동으로 URI가 완성되어 자신의 id를 입력하여 접근이 되지만만약 본인의 id가 5지만 URI는 6으로 변경하여 수동으로 요청을 보내게 되면 어떻게 될까? 우선 JWT의 토큰으로 회원이 인증이 되므로 접근이 가능해진다.그리고 API에 접근할 때는 id의 값을 본인의 아이디가 아닌 다른 아이디로 접근을 하여본인이 아닌 다른 사람의 정보를 볼 수 있게 된..
·Self Q&A
요청 받아야 하는 파라미터(@RequestParam)이 많으면일일이 다 작성을 해줘야 하는가?      상황 --쇼핑몰 프로젝트에서 상품 목록을 조회하는 API를 작성하는데HTTP 메서드가 GET이기 때문에 파라미터를 통해서 데이터를 받아와야 한다. 여기서 받아와야 하는 데이터String itemSort     :     정렬Long categoryId     :     카테고리itemName     :     상품명nowPage     :     현재 페이지 이를 코드로 작성하면@GetMapping("/itemList")public ItemDto.SimpleItemPageResponse showItems(@RequestParam("itemSort") String itemSort, @RequestPara..
·Spring Boot
회원가입을 할 때 특정 형식의 값일 때에만회원가입이 가능하게 하려면 어떻게 해야할까?      환경 --IntelliJ community  2023.1.5Spring Boot 3.2.1JDK 17 build.gradle [ dependencies ]implementation 'org.springframework.boot:spring-boot-starter-validation'기존 'org.springframework.boot:spring-boot-starter-web' 의존성 안에 validation이 포함되어 있었지만Spring Boot 2.3 부터는 포함되어 있지 않기 때문에 따로 validation 의존성을 추가해야한다.만약 @Valid가 아니라 @Validated 어노테이션을 사용한다면 해당 의존..
·Self Q&A
프로젝트를 하다보면 DTO가 너무 많아진다.많은 DTO를 깔끔하게 정리하는 방법이 무엇일까?      DTO가 많아지면? --우선 DTO의 이름을 짓는 부분에서 어려움이 생긴다.이름을 지을 때 비슷한 이름들로 짓게 되기도 할 것이고 DTO가 많아질 수록 DTO를 구분하기 어려워지고 난잡해진다.그리고 코드의 가독성과 유지보수성에 대해서도 문제가 발생할 수 있다.--    패키지(폴더)로 구조화하기 --관련된 DTO끼리 패키지에 따라 그룹화로 하는 방법이다. order에 관련된 DTO는"com.example.application.dto.order" 패키지 안에 넣고 item에 관련된 DTO는"com.example.application.dto.item" 패키지 안에 넣어서 각자 관련된 DTO끼리 묶어서 관리하..
·Spring Boot
공통된 예외 처리에 대한 코드가 자주 있다면이를 통일 시켜서 코드를 줄일 수 있는 방법이 무엇일까?      Spring에서 제공하는 기능 --Spring에서는 모든 @Controller 클래스에 대해 처리할 수 있도록 제공하는 기능이 있다. @ControllerAdvice@RestControllerAdvice  @ControllerAdvice는Spring MVC 패턴일 때 주로 사용되며 주로 HTML와 같은 View를 응답한다. @RestControllerAdvice는@ControllerAdvice + @ResponseBody로RESTful API에서 주로 사용되며 주로 JSON 또는 XML과 같은 데이터를 응답한다.  그리고 Spring..
아-니지
'분류 전체보기' 카테고리의 글 목록 (21 Page)