728x90 프레임워크(Framework)/Spring Boot12 [Spring Boot] Exception (예외 처리) 예외 (Exception) 와 에러 (Error) # 예외 - 입력 값의 처리가 불가능하거나 참조된 값이 잘못된 경우 등 애플리케이션이 정상적으로 동작하지 못하는 상황을 의미 - 개발자가 직접 처리할 수 있는 것이므로 미리 코드 설계를 통해 처리할 수 있음 # 에러 - 에러는 주로 자바의 가상머신에서 발생 - 예외와 달리 애플리케이션 코드에서 처리할 수 있는 것이 거의 없음 - 대표적인 예로 메모리 부족, 스택 오버플로 등이 있음 BasicErrorController - 스프링 부트의 기본 예외처리 Controller - 별다른 설정을 하지 않았다면 예외가 발생했을 때 BasicErrorController로 예외처리 요청이 전달 - 예외 발생 시 요청 전달 흐름 더보기 WAS -> 필터 -> 서블릿 ->.. 2024. 4. 16. [Spring Boot] YAML 파일 YAML(YAML Ain't Markup Language) - 스프링부트 애플리케이션의 설정을 구성하는데 사용되는 파일 형식 - 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식, XML, JSON보다 간단하고 가독성 높음 - 'application.yml' 이라는 이름으로 프로젝트의 리소스 폴더에 위치 - 데이터베이스 연결 정보, 서버 포트, 보안 설정, 로깅 구성 등과 같은 구성 요소 포함 # 문법 규칙 1. 들여쓰기 - 데이터의 계층 구조를 표현 - 하위 항목은 상위 항목보다 한 단계 더 들여써야 함 (공백으로 표시, 2개의 스페이스) - 콜론(:) 이전에는 스페이스 X - 콜론(:) 이후에는 스페이스가 있거나 없음 (일반적으로는 하나의 스페이스) server: port: 8080 servlet: .. 2024. 4. 15. [Spring Boot] Validation (유효성 검사) Validation (유효성 검사) - 애플리케이션의 비즈니스 로직이 올바르게 동작하기 위해 데이터를 사전 검증하는 작업 - 여러 계층에서 들어오는 데이터에 대해 의도한 형식대로 값이 들어오는지 체크하는 과정 - 프로그래밍에서 매우 중요한 부분, 가장 신경 써야 하는 것 중 하나 NullPointException 예외 - 스프링 부트에서는 계층 간 데이터 전송에 대체로 DTO 객체를 활용 → DTO 객체를 대상으로 유효성 검사 수행 # 의존성 추가 // build.gradle implementation 'org.springframework.boot:spring-boot-starter-validation' // pom.xml org.springframework.boot spring-boot-starter-.. 2024. 4. 15. [Spring Boot] ResponseEntity ResponseEntity - 'HttpEntity' 를 상속받아 HTTP 응답을 나타내는 클래스 - HTTP 응답의 상태 코드와 함께 헤더(headers)와 본문(body)을 포함 ('HttpEntity' 의 모든 기능을 활용할 수 있으면서도 추가적으로 HTTP 응답을 설정하고 반환할 수 있음) → 클라이언트에게 보다 구체적인 응답 제공, 효과적인 통신 구현 - RESTful 웹 서비스나 웹 애플리케이션 개발할 때 유용 ResponseEntity - '' 는 제네릭 타입을 지정하는 부분 - 제네릭 타입은 컬렉션과 같은 클래스나 인터페이스를 정의할 때 사용(컴파일 시점에 타입 안정성 보장, 재사용성 높여줌) - '' 안에는 반환되는 데이터의 형식을 지정 # ResponseEntity - '' 는 와.. 2024. 4. 15. [Spring Boot] 파라미터 전달 방식 # 파라미터 전달 방식은 클라이언트가 서버로 데이터를 전달하는 방법을 의미 쿼리 스트링 방식 (Query String, Query Parameter) - URL 끝에 '?' 를 붙이고, 파라미터를 'key-value' 형태로 전달하는 방식 - 여러개이 매개변수를 전달할 때는 '&' 로 구분 - 주로 GET 메소드를 사용하여 데이터를 전달할 때 사용 - 간단하고 직관적인 방식이지만, 데이터가 URL에 노출되므로 보안에 취약할 수 있음 - 스프링 부트에서는 '@RequestParam' 을 통해 컨트롤러 메서드의 매개변수로 받아올 수 있음 ex) 'http://example.com/search?keyword=springboot&page=1' 에서 'keyword'와 'page'는 쿼리 문자열의 파라미터 @Re.. 2024. 4. 15. [Spring Boot] 개요 스프링 부트 (Spring Boot) - 자바 기반의 오픈 소스 프레임워크인 스프링을 기반 - 마이크로서비스 및 웹 애플리케이션을 쉽게 개발하고 실행할 수 있도록 도와주는 도구 - 스프링 프레임워크의 기능을 쉽게 사용할 수 있도록 제공, 복잡한 설정 작업을 최소화 →개발자가 핵심 비즈니스 로직에 집중할 수 있도록 해줌 특징, 장점 # 스타터 의존성 - 스타터 : 필요한 라이브러리들의 그룹화된 집합 - 다양한 기능을 미리 패키지화하여 스타터 의존성을 제공 - 개발자는 필요한 기능을 갖춘 프로젝트를 빠르게 설정 가능 - 예) spring-boot-starter-web 을 추가하면 웹 애플리케이션 개발에 필요한 모든 의존성을 가져올 수 있음 # 자동 설정 - 애플리케이션의 설정을 자동화, 개발자가 별도의 설정.. 2024. 4. 5. [Spring Boot] 스프링 부트 로드맵 2024. 2. 13. [Spring Boot] 관점 지향 프로그래밍 (AOP) AOP (Aspect Oriented Programming) - 소스 코드상에서 계속 반복해서 사용되는 부분들을 흩어진 관심사(Crosscutting Concerns)라고 한다. - 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 봄 → 그 관점을 기준으로 각각 모듈화 - 결국 흩어진 관심사들을 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지 # 주요 용어 용어 설명 Aspect 흩어진 관심사를 모듈화 한 것 Target Aspect가 적용될 대상을 의미 (메소드, 클래스 등) Advice Aspect의 기능을 정의한 것 (메서드의 실행 전, 후, 예외 처리 발생 시 실행되는 코드) Join Point Aspect가 적용될 수 있는 시점 (메소드 실행 전,.. 2024. 2. 2. [Spring Boot] 제어의 역전 (IoC), 의존성 주입 (DI) 제어의 역전 (Inversion Of Control) - 개발자가 제어해야할 요소들을 Spring Framework 에서 대신 제어해준다는 의미 Spring IoC Container - Spring Framework의 핵심 요소 - 객체를 생성하고 의존성을 구성하고 결합하며 생명 주기를 관리 - DI를 사용해 애플리케이션에서 구성하는 컴포넌트들을 관리 - xml파일, java코드, 어노테이션, java POJO 클래스를 통해 객체에 대한 정보를 가져옴 → 이러한 객체들을 Bean 이라 부름 # POJO (Plain Old Java Object) - 오래되고 간단한 자바 객체 라는 의미 # Bean - Spring IoC Container 에서 관리하고 있는 인스턴스화 된 객체 - 어노테이션을 사용해 Be.. 2024. 2. 2. 이전 1 2 다음 728x90