개발/Java/Spring

· DEV/Java
- DispatcherServlet은 class의 annotation 유무를 보고 구분을 한다 실제 코드는 Github 링크를 참고하면 된다! 아래는 예제 프로젝트의 파일들이다. 딱 보니, 여러 개의 controller와 Spring의 @RequestMapping이 보인다 프로세스 public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); String uri = sc.nextLine(); Set classes = componentScan("ex03"); findUri(classes, uri); } 처음 프로젝트를 실행시키면, URI 입력 받고, 입력 받은 데이터를 잘라서 findURI에 넣는다 ..
· DEV/Java
DispatcherServlet 왜 필요한가 **요약** - DispatcherServlet은 모든 웹 요청에 대해 적절한 Controller로 라우팅을 해준다 예제 코드를 분석하면서 DispatcherServlet이 왜 필요한가 알아봅시다 아래 코드는 RequestMapping 어노테이션을 사용하여 특정 URI를 메서드에 연결하고 있습니다. 이는 스프링 프레임워크의 RequestMapping과 유사한 동작을 수행합니다. 코드 분석 public class App { public static void findUri(UserController uc, String uri) throws Exception { boolean isFind = false; Method[] methods = uc.getClass().g..
· DEV/Java
@RequestMapping 왜 쓰냐? - 특정 URL에 메서드를 맵핑 함으로써 유지보수와 가독성 상승 - @RequestMapping이 없으면, 경로를 직접 분기를 경로가 생길 때마다 해줘야 한다 Spring을 사용하면 자주 쓰는 @RequestMapping 왜 쓰는지 알아봅시다 예제 코드 아래 예시에서는 사용자가 /login을 입력하면 login() 메서드가, /join을 입력하면 join() 메서드가 호출됩니다. import java.util.Scanner; public class App { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String path = sc.nextLine(); // path = ..
생성자 Vs 빌더 패턴 1. 생성자(Constructor) 사용하기 CartRespFindAllDTO responseDTO = new CartRespFindAllDTO(productDTOList, 104500); 생성자를 사용하면 객체를 만들기 위해 필요한 파라미터를 모두 제공해야 합니다. 생성자를 통한 객체 생성은 간단하고 직관적입니다. 위 예시에서는 productDTOList와 104500이라는 두 개의 파라미터를 이용해 CartRespFindAllDTO 인스턴스를 생성합니다. 단점은 생성자에 전달된 파라미터의 순서나 의미를 즉시 이해하기 어려울 수 있습니다. 또한, 파라미터의 수가 많아지면 관리하기 어려워집니다. 2. 빌더 패턴(Builder 패턴) 사용하기 CartRespFindAllDTO res..
Builder 패턴 Builder 패턴은 객체 생성에 관련된 디자인 패턴으로, 객체를 생성하는 방법과 표현하는 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 합니다. DTO에 Builder를 사용하는 주요 이유는 다음과 같습니다: 1. 가독성 향상 객체 생성시에 원하는 매개변수를 선택적으로 입력하고 가독성 좋은 코드를 작성할 수 있습니다. 생성자에 많은 수의 매개변수가 있는 경우, 어떤 값이 어떤 변수에 할당되는지 이해하기 어렵습니다. 반면, Builder 패턴을 사용하면 각 변수에 어떤 값이 설정되는지 명확하게 파악할 수 있습니다. // Without Builder Product product = new Product(1, "Book", 1500, "Good book", "..
🐥 카카오테크캠퍼스 - 2단계 2주차 과제 - 예외처리 1. 전체 상품 목록 조회 Method : Get Local URL : http://localhost:8080/products Param : page= @GetMapping("/products") public ResponseEntity findAll(@RequestParam(defaultValue = "0") int page) { List responseDTO = new ArrayList(); // 상품 하나씩 집어넣기 responseDTO.add(new ProductRespFindAllDTO( 1, "기본에 슬라이딩 지퍼백 크리스마스/플라워에디션 에디션 외 주방용품 특가전", "", "/images/1.jpg", 1000 )); responseDT..
· DEV/Java
Spring Security Spring Security는 Spring 기반의 애플리케이션의 보안(인증 및 권한, 인가 등)을 담당하는 프레임워크입니다. 웹 보안 및 메소드 보안, CSRF(Cross Site Request Forgery) 방지, 세션 관리 등 다양한 보안 기능을 제공합니다. 의존성 설치 방법은 build.gradle에 아래 한 줄을 추가하면 된다 implementation 'org.springframework.boot:spring-boot-starter-security' // 스프링 시큐리티 제공 Spring Security의 주요 특징 Comprehensive and extensible support: 인증, 인가, 세션 관리, 비밀번호 인코딩 등 다양한 보안 기능을 지원하며, 이를 ..
berom
'개발/Java/Spring' 태그의 글 목록