분류 전체보기

AWS VPC 및 서브넷 설정 & EC2 생성 AWS VPC 및 서브넷 설정하기 & Public EC2 생성 후 외부 접근 허용1. VPC 직접 만든 후 설정 확인1. VPC 이름 (sanghyun-vpc-1) 설정2. IPv4 CIDR에서 가용 IP대역 (10.0.0.0/16) 설정3. 생성한 VPC 확인 2. Subnet 생성하기Subnet은 Public, Private 2개씩 만든다.2개씩 만드는 이유 : 가용성을 위한 Multi AZ 설정 → 한쪽의 AZ에서 화재라던가 네트워크 이슈 등이 발생했을 시, 다른 한쪽의 AZ로 커버하기 위함 1. 생성할 서브넷의 VPC 선택(sanghyun-vpc-1)2. 서브넷 이름(public-subnet-test1) 설정3. 가용 영역(ap-northeast-2a..
@Controller에서 Exception 처리@Controller에서 Exception 처리Spring에서 제공하는 다양한 예외 처리 방법Spring에서는 여러 가지 예외 처리 방법을 제공하며, 그 중 대표적인 방법이 ExcepitonHandler, ControllerAdvice, ResponseStatusException 등을 활용하는 것이다. ExceptionResolver: Spring(WAS) 내 예외 처리BasicErrorController: Spring의 기본 에러 처리를 담당하는 컨트롤러로, 페이지 기반 에러를 처리한다.예외 처리를 위한 try-catch를 사용하지 않고, 공통 관심사(cross-cutting concerns)를 메인 로직에서 분리Spring의 HandlerException..
디렉토리 구조와 @Controller를 잘 개발하는 방법디렉토리 구조Spring 애플리케이셩늘 개발할 때, 클래스명은 도메인 기반 명칭과 3계층 아키텍처 명칭을 조합하여 작성된다. 예를 들어, PaymentService는 도메인인 Payment와 역할인 Service를 조합한 클래스명이다. 이와 같이 각 클래스는 일반적으로 도메인과 계층 구조에따라 명명된다.도메인 기반 명칭 + 3계층 아키텍처 기반 명칭PaymentService = Payment(도메인) + Service(3계층 아키텍처 중 서비스 계층)UserRepository = User + RepositorryJobpostController = Jobpost + Controller클래스를 배치할 디렉토리 구조에 대해서는 두 가지 방식이 있다. 1...
MVC 아키텍쳐 패턴 / 3-Layered 아키텍쳐 패턴Spring Boot의 의의: (1) 의존성 관리 + (2) 자동 설정Spring Boot는 복잡한 설정을 최소화하고 개발자가 핵심 비즈니스 로직에 집중할 수 있도록 설계된 프레임워크이다. 이는 React의 CRA(Create-React-App)와 비슷한 역할을 하며, 주로 다음 두 가지 기능에 중접을 둔다. 1. 의존성 관리:spring-boot-starter-web: 웹 애플리케이션 개발을 위한 모든 기능을 제공, 내장된 Tomcat 서버와 함께 자동 설정을 제공spring-boot-starter-security: 인증, 인가, 권한 라이브러리spring-boot-starter-data-jpa: JPA 및 Hibernate 관련 의존성sprin..
@PathVariable, @RequestParam, @ModelAttribute, @RequestBody, @Vaild, @JsonIncludeSpring에서 세부 요청으로 인입되는 값들Spring에서는 클라이언트가 HTTP 요청을 통해 전달한 데이터를 다양한 방식으로 컨트롤러에 전달할 수 있다.각 요청마다 데이터의 처리 방식이 달라지고, 그에 따라 Model이나 View도 다양해질 수 있다. Spring에서 요청값을 처리하는 주요 어노테이션에 대해 알아보도록 하자. @PathVaribale: /api/users/{id}@PathVariable은 URL 경로에서 동적으로 값을 추출할 때 사용된다. 예를 들어, 사용자의 ID나 특정 리소드에 대한 고유 값을 URL 경로에서 직접 추출할 수 있다.packa..
new 키워드 없이 객체를 생성 / 의존성 주입객체 생성 원리스프링에서 처음 개발을 시작하면 `new` 키워드를 사용해서 객체를 만들지 않았는데 @Contoller 등 객체들이 만들어질까?이 질문에 대한 해답은 Spring의 IoC(제어권 역전, Inversion of Control)와 Spring Container(Applilcation Context)에 있다. Spring에서 new 키워드가 보이지 않는 이유는 Spring이 개발자 대신 객체를 생성하고 이를 Bean으로 관리하기 때문이다. 그 과정에서 Spring은 싱글톤(Singleton) 패턴을 기본으로 사용하여, 메모리 사용을 효율적ㅇ로 관리하고 서버의 성능을 최적화한다. Spring Bean 이란?Spring Bean이란 Spring IoC(..
직렬화 / 역직렬화HttpMessageConverter 역할지난 포스팅에서 Controller의 처리 / 반환에 대해 MessageConverter를 언급했었지만 정확히는 "HttpMessageConverter"라고 한다. HttpMessageConverter는 Spring MVC에서 요청과 응답의 HTTP 메세지 바디를 변환하는데 사용된다. Spring 요청 본문을 Java 객체로 역직렬화하고, 응답 본문을 Java 객체에서 JSON, XML 등으로 직렬화하는 과정을 자동으러 처리한다. Spring은 다양한 기본 구현체를 제공하지만, 필요에 따라 개발자가 커스텀 MessageConverter를 만들 수도 있다.HttpMessageConverter 동작원리HttpMessageConverter는 클라이언트..
ViewResolver, @ResponseBody, MessageConverter웹 페이지(HTML) 반환과 웹 데이터(JSON) 반환Spring MVC에서 Controller는 사용자의 요청을 처리한 뒤 ,그 결과를 반환한다. 이때 반환 타입에 따라 DispatcherServlet은 HTML 페이지를 렌더링하거나, 데이터를 JSON 형식으로 반환하는 등 다른 방식으로 응답을 처리할 수 있다. Spring에 위임되어 Controller 에서 처리한 모든 응답은 Front Controller에게 반환 타입을 고려해 반환Front Controller인 DistpatcherServlet은 앞선 Controller가 반환한 타입에 따라 View 생성DispatcherServlet은 HandlerAdapter의 ..
1000_sang
'분류 전체보기' 카테고리의 글 목록 (3 Page)