전체 글

Outbound / NAT InstancePrivate EC2에 외부 접근 허용: OutBound를 위한 NAT Instance 설정더보기AWS에서 NAT Instance의 공식지원이 없어지고, NAT Gatway를 공식화 했다.하지만, NAT Gateway는 비용이 너무 비싸기 때문에 NAT Instance를 만들어 쓰면 된다.1. NAT Instance 역할을 할 EC2(Public Subnet) 인스턴스 만들기1. 인스턴스 이름(public-nat-test) 설정 2. AMI 설정AMI 검색을 통해 커뮤니티 버전으로 나온 NAT를 위한 AMI를 사용한다.AWS 공식 NAT Instance(Pre-configured Amazon Linux AMI)는 더이상 지원하지 않는다.→ `amzn-ami-vpc..
Bastion / SSH TunnelingPrivate EC2 생성 후 외부 접근 허용: Inbound 위한 Bastion 설정1. PEM 파일은 Private Key AWS에서 PEM 파일은 Private Key다. SSH 클라이언트를통해 원격 서버(EC2 인스턴스)에 접근할 때, Private Key가 필요하다.AWS 콘솔에서 생성된 PEM 파일은 Private Key로, 이를 통해 EC2 인스턴스에 연결할 수 있다. Public Key는 AWS가 EC2 생성 시 내부적으로 주입되며, 사용자는 이를 볼 수 없다.2. SSH 접속 시 Key Pair 사용SSH 클라이언트는 원격 서버에 접속할 때  Key Pair 중 Private Key를 사용한다. 클라이언트는 PEM 파일(Private Key)을 사..
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(..
1000_sang
CHEONSANG-DEV