[Spring] SOP & CORS

Featured image for [Spring] SOP & CORS

CORS(교차 출처 리소스 공유) | 토스페이먼츠 개발자센터 CORS를 번역하면 “교차 출처 리소스 공유”에요. ‘두 출처가 서로 다르다’는 뜻인데요. CORS를 설정한다는 건 ‘출처가 다른 서버 간의 리소스 공유’를 허용한다는 거죠. 1. Origin이란? 2. SOP란? SOP(Same-Origin Policy, 동일 출처 정책)는 웹 보안의 중요한 개념 중 하나로, 특정 출처(origin)에서 로드된 문서나 스크립트가 다른 출처의 리소스와 상호작용하지 못하도록 제한하는 … 더 읽기

[Spring] SpringBoot

Featured image for [Spring] SpringBoot

1. SpringBoot란? Spring Boot Spring Boot는 제품 수준의 Spring 애플리케이션을 쉽게 만들 수 있게 도와준다. Spring 플랫폼과 다른 라이브러리를 활용하면, 복잡한 설정 없이 바로 시작할 수 있다. 대부분의 Spring Boot 애플리케이션은 간단한 Spring 설정만 필요하다. 2. 시작하기 가. Spring initializr https://start.spring.io SpringBoot 프로젝트를 생성하는 하나의 방법. dependency를 쉽게 추가할 수 있다. 나. Spring Starter Project … 더 읽기

[Spring] Rest API

Featured image for [Spring] Rest API

1. Rest란? URI + HTTP Method (GET/POST/PUT/DELETE) HTTP URI를 통해 제어할 자원을 명시하고, 어떤 제어를 명령할지는 HTTP Method를 통해 설정하는 방식. Method 설명 POST Create GET Read PUT, PATCH Update DELETE Delete 서비스 유형 설명 기존의 서비스 요청 처리 후, 가공된 데이터를 이용해 특정 플랫폼에 적합한 형태의 View로 반환 Rest 서비스 데이터 처리만 하거나, 처리 … 더 읽기

[Spring] MyBatis-Spring module

Featured image for [Spring] MyBatis-Spring module

mybatis-spring 1. 설치 MyBatis-Spring module을 사용하기 위해서는 mybatis-spring-3.0.3.jar 파일과 그 외 dependencies를 classpath에 추가해야 한다. 단, Maven을 사용하는 경우 pom.xml에 아래 코드를 추가하면 된다. MyBatis-Spring module을 사용하기 위해서는 Spring application context에 두 가지를 설정해야 한다. 2. 설정 SqlSessionFactory와 최소 하나 이상의 mapper interface가 정의되어야 한다. 거기에 mapper interface에서 SQL문을 별도의 XXXmapper.xml로 분리한다면 총 3개의 파일이 … 더 읽기

[MyBatis] MyBatis란?

Featured image for [MyBatis] MyBatis란?

  0. pdf 읽고 정리하기. 1. ORM이란? 2. MyBatis란? Java Object와 SQL문 사이를 자동으로 Mapping하는 ORM framework. SQL을 별도의 파일로 분리해서 관리하다. SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일하지 않아도 된다. SQL을 전담하는 DBA와 협업이 원활하다. 새로운 DB 프로그래밍 패러다임에 대한 부담 없이, 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함을 줄일 수 있다. … 더 읽기

[Spring] Connection Pool

Featured image for [Spring] Connection Pool

1. Connecion Pool이란? Connection Pool은 데이터베이스와의 Connection을 미리 생성하고, 이를 Pool에서 관리하는 기술이다. 데이터베이스로의 추가 요청이 필요할 때 연결을 재사용할 수 있도록 관리되는 데이터베이스 연결의 캐시이다. Connection Pool이 시작될 때 특정한 수의 물리적 커넥션을 만들며 이는 애플리케이션 실행 중에 커넥션 생성, 해제하는 오버헤드(Overhead)를 줄여준다. 또한, 동시에 많은 요청이 들어와도 안정적으로 처리할 수 있게 해준다. 2. … 더 읽기

[Spring] File Upload & Download

Featured image for [Spring] File Upload & Download

  0. 기존 포스팅 추가한 이유: 1. File Upload 가. pom.xml 나. servlet-context.xml id는 반드시 multipartResolver로 등록한다. 다. web.xml servlet이 Multipart를 처리하도록 설정. 설정 설명  <max-file-size> 업로드 하는 파일의 업로드 가능한 최대 파일 사이즈. 바이트 단위. -1로 설정 시 크기 제한 없음(default)  <max-request-size> 한번의 요청에 포함된 전체 Multipart 요청 데이터의 최대 크기. 바이트 단위. -1로 … 더 읽기

[Spring] ControllerAdvice

Featured image for [Spring] ControllerAdvice

1. ControllerAdvice 예외 발생 시 매번 try-catch를 해도 되지만 귀찮다. @ControllerAdvice은 비즈니스 로직과 예외 처리를 완전히 분리시켜줌과 동시에 원하는 곳에 원하는 방식으로 예외를 처리할 수 있게 해 준다. spring 6.1 버전부터는 throwExceptionIfNoHandlerFound의 default 값은 true라서 별도로 설정하지 않아도 된다. 이제는 모든 예외를 한 곳에서 처리할 수 있다! – 2024.07.24 추가 RestController + ControllerAdvice = RestControllerAdvice … 더 읽기

[Spring] Java Config

Featured image for [Spring] Java Config

1. Spring 설정 파일을 작성하는 방법 Spring 설정 파일을 작성하는 방법은 크게 두 가지다. XML을 사용하는 방법과 Java Config를 사용하는 방법이다. 방법 설명 장점 단점 XML XML 파일 안에 bean 객체를 정의하고 의존성 설정 시각적으로 객체 관계 이해 용이 XML 문법 필요, 타이핑 오류 가능 Java Config 설정을 Java 클래스로 작성 타입 안전성, IDE 지원으로 … 더 읽기

[Spring] AOP

Featured image for [Spring] AOP

1. AOP 기존 OOP에서는 핵심 로직을 여러 모듈에서 적용하는 데 있어 중복되는 코드가 발생한다. 핵심 관심(core concern)과 공통 관심 사항(cross-cutting concern)으로 나눠보고 그 관점을 기준으로 각각 모듈화 하겠다. 이때 여러곳에서 쓰이는 공통 관심 사항을 모듈화한 것을 Aspect라고 한다. 핵심 기능에서 부가 기능을 분리함으로써 핵심기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 있도록 도와주는 개념. 가. … 더 읽기