0. BasicErrorController:: Spring 기본 에러 처리 (페이지 기반):: 적절한 ExceptionResolver가 없으면 해당 컨트롤러를 통해 기본적인 에러 페이지를 제공:: 에러 발생 시, 기본적으로 /error로 에러 요청을 다시 전달 - WebMvcAutoConfiguration를 통한 기본 설정BasicErrorController까지의 흐름도:: 출처: https://mangkyu.tistory.com/204 [MangKyu's Diary:티스토리] WAS(톰캣) -> 필터 -> 서블릿(디스패처 서블릿) -> 인터셉터 -> 컨트롤러컨트롤러(예외발생) -> 인터셉터 -> 서블릿(디스패처 서블릿) -> 필터 -> WAS(톰캣)WAS(톰캣) -> 필터 -> 서블릿(디스패처 서블릿..
1. ResponseEntity@ExceptionHandler(Exception.class)public ResponseEntity handleException(Exception ex) { // 예외 발생 시 500 Internal Server Error와 오류 메시지 반환 return new ResponseEntity("Internal Server Error: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);}2. Optional을 통한 예외처리- 일반적으로 null에 대해 안전한 처리를 위해 Optional을 이용public Optional findUserNameById(Long id) { User user = userRepository..

1. 클라이언트로부터 요청을 받는 4가지 방법@RequestBody :: JSON 값을 받음:: Body에 JSON or XML 등을 DTO 객체로 받음@PathVariable:: URI 상의 가변 변수Ex) /api/users/{id}@RequestParam:: 단일 파라미터Ex) /api/users?key=value@ModelArribute:: 다수의 파라미터(DTO 객체로 받기) Ex) /api/users?key1=value1&key2=value2더보기4. 관련 이슈- 관련 실습 코드를 이용해 PUT 요청을 보내던 중, 값이 모두 null이 되는 상황이 나왔다.@PutMapping("/update/{id}")public MemberResponseDto update (@PathVariable Inte..

0. 3계층 아키텍처 패턴:: 애플리케이션을 세 개의 주요 계층으로 분리하여, 각 계층이 특정 역할을 수행 - 관심사의 분리:: 단일 책임 원칙(Single Responsibility Principle) 적용에 효과적구성1. Presentation Layer 2. Business Logic Layer3. Data Access Layer0.1 Presentation Layer (프레젠테이션 계층):: 사용자 인터페이스와 상호작용하는 계층:: 사용자 요청을 처리하고, 결과를 사용자에게 반환- Spring에서 흐름 :: 클라이언트 요청 → DispatcherServlet → Controller → View → 응답구성- Controller, View, Model / DTO (Data Transfer Ob..
0. Bean 간의 관계 설정:: 두 Bean 간의 관계를 설정하여 다른 객체 책임을 위임 가능:: has-A 관계. Bean 간의 관계 설정:: 두 Bean 간의 관계를 설정하여 다른 객체 책임을 위임 가능 :: has-A 관계(포함 관계)0.1 Wiring:: 객체 간의 의존성을 명시적으로 설정:: 빈을 생성하는 메서드를 직접 노출하여 빈을 연결:: 생성자 주입 or 세터 주입 방식 Ex) 더보기// 의존하는 객체public class MyRepository { public void save() { System.out.println("Data saved!"); }} // 의존하는 객체를 사용하는 클래스public class MyService { private MyRepos..
0. Bean 등록0.1 자동 등록 방식:: Spring Container 내 싱글톤 객체로 이미 등록되어 있음(ApplicationContext가 이미 만듦):: @ComponentScan 을 이용하여 애너테이션이 붙은 클래스를 자동으로 스캔 및 등록 1. @ComponentScan + @Component 를 통한 등록 (Package 지정 가능) :: @ComponentScan을 통해 스캔할 패키지 지정 :: 해당 패키지 안에 @Component를 함유하는 클래스를 자동으로 Bean 등록 2. @Controller, @Service, @Repository 등을 통한 등록 :: @Component 에 특정 역할을 가진 Bean을 구분하기 위해 사용해당 애노테이션을 "스테리오 타입(ste..
0. 제어역전(IoC, Inversion of Control) :: 객체의 생성과 의존성 관리를 개발자가 아닌 spring container와 같은 외부 시스템이 하는 디자인 패턴IoC 구현 5가지 방법Template Pattern :: 추상 클래스 부분 구현Delegate :: 위임 (실행 결과를 받는것까지 모두 위임, 자기 자신을 보낸다)Event :: 이벤트 발행 (Publisher & Subscriber)Service Locator/Lookup :: Service Locator 에서 직접 가져와쓰기 개발자가 직접 Bean 주입하는것DI(Dependancy Injection) 의존성 주입 :: (IoC) Container 가 대신 Bean 수집, 관리, 주입해주는것1. ApplicationConte..

0. Spring MVC - Servlet:: Connection = 1 요청 : 1 스레드 :: 이때, Servlet 객체는 Singleton:: 즉, Servlet Container는 각 종류의 Servlet당 한개의 객체만 사용=> Front Controller인 DispatcherServlet은 싱글톤 객체임을 의Spring 은 Tomcat에서 한 종류의 Servlet(DispatcherServlet) 만을 사용Spring 에서 Controller 객체(Bean)는 Tomcat에서 Servlet객체와 동일하게 싱글톤으로 처리됨0.1 어떻게 수많은 요청들을 단 하나의 객체로 커버할 수 있나? :: 몇개이든지 N 개의 스레드는 단 하나의 싱글톤 객체만 구독(공유):: 각각의 스레드는 각자의 Metho..

0. Controller의 반환 값:: Spring에 위임되어 Controller에서 처리한 모든 응답은 Front Controller에게 반환 타입을 고려해 반환:: Front Controller(DispatcherServlet) 은 앞선 Controller 가 반환한 타입에 따라 View 생성1. 반환 값 분류 기준 :: HandlerAdapter의 응답으로 String 또는 ModelAndView 또는 Object 중 하나를 받음 :: @ResponseBody의 여부에 따라 X :: ViewResolver 혹은 O :: MessageConverter 실행 1.1 웹 페이지를 반환(HTML)controller의 반환 타입StringModelAndView 정적 페이지(ViewTemplate)..

0. 들어가기:: 과정에서 사용되는 Servlet 객체는 싱글톤 생성2025.02.07 - [정리용/SpringBoot] - [Spring] 2-2-2. Spring MVC - Servlet 객체 Front Controller인 DispatcherServlet은 싱글톤 객체임을 의Spring" data-og-host="hee-ya07.tistory.com" data-og-source-url="https://hee-ya07.tistory.com/86" data-og-url="https://hee-ya07.tistory.com/86" data-og-image="https://scrap.kakaocdn.net/dn/bx3oSm/hyYb9qANOc/BnZ3gMSxzAP7yUOkVwVzHk/img.png?widt..
- Total
- Today
- Yesterday
- asac7기
- Nginx
- asac7
- useEffect
- useLayoutEffect
- useContext
- useState
- useMemo
- react
- useRef
- useCallback
- acas#acas7기
- useReducer
- acac
- ASAC
- asac7#asac
- asac#asac7기
- git
- ssh
- memo
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |