BE(82)
-
[MyBatis] 동적 SQL
MaBatis 공식 홈페이지 - Dynamic SQL mybatis – MyBatis 3 | Dynamic SQLDynamic SQL One of the most powerful features of MyBatis has always been its Dynamic SQL capabilities. If you have any experience with JDBC or any similar framework, you understand how painful it is to conditionally concatenate strings of SQL together, makmybatis.org 1. 동적 SQL JDBC에서 동적으로 쿼리문을 만드는 것은 꽤나 고통스럽다. 공백 문자와 콤마 하나도 신경 써야 한다..
2024.07.06 -
[MyBatis] MyBatis란?
0. pdf 읽고 정리하기. 1. ORM이란? Object-Relational Mapping데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 2. MyBatis란? Java Object와 SQL문 사이를 자동으로 Mapping하는 ORM framework. SQL을 별도의 파일로 분리해서 관리하다. SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일하지 않아도 된다. SQL을 전담하는 DBA와 협업이 원활하다. 새로운 DB 프로그래밍 패러다임에 대한 부담 없이, 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함을 줄일 수 있다. 도메인 객체나 VO 객체를 중심으로 개발이 가능하다. 다양한 프로그래밍 언어를 지원한다. 3. 예시 My..
2024.07.06 -
[Spring] Connection Pool
1. Connecion Pool이란? Connection Pool은 데이터베이스와의 Connection을 미리 생성하고, 이를 Pool에서 관리하는 기술이다. 데이터베이스로의 추가 요청이 필요할 때 연결을 재사용할 수 있도록 관리되는 데이터베이스 연결의 캐시이다. Connection Pool이 시작될 때 특정한 수의 물리적 커넥션을 만들며 이는 애플리케이션 실행 중에 커넥션 생성, 해제하는 오버헤드(Overhead)를 줄여준다. 또한, 동시에 많은 요청이 들어와도 안정적으로 처리할 수 있게 해준다. 2. Java에서 Connection Pool 사용하기 DataSource: 애플리케이션이 데이터베이스와 상호작용할 수 있도록 하는 연결을 관리하는 객체다.: 애플리케이션은 데이터베이스에 직접 접속하는 대신..
2024.07.06 -
[Spring] File Upload & Download
0. 기존 포스팅 [Spring] 도서 등록, 검색0. 출처 아직 배우고 있는 중이라 부정확한 정보가 포함되어 있을 수 있습니다! 주의하세요! 올인원 스프링 프레임워크 참고. 올인원 스프링 프레임워크 : 네이버 도서 네이버 도서 상세정보를ramen4598.tistory.com 추가한 이유:java 라이선스 문제로 6.x 버전부터는 CommnonsMultipartResolver를 사용할 수 없다.업로드할 파일의 정보를 저장하는 별도의 FileInfoDto를 정의해 업로드하는 방법이니깐 알아두자. 1. File Upload 가. pom.xml ... commons-fileupload commons-fileupload ${commons-file..
2024.07.06 -
[Spring] ControllerAdvice
1. ControllerAdvice 예외 발생 시 매번 try-catch를 해도 되지만 귀찮다. @ControllerAdvice은 비즈니스 로직과 예외 처리를 완전히 분리시켜줌과 동시에 원하는 곳에 원하는 방식으로 예외를 처리할 수 있게 해 준다. appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml throwExceptionIfNoHandlerFound true 1spring 6.1 버전부터는 throwExcepti..
2024.07.06 -
[Spring] Java Config
1. Spring 설정 파일을 작성하는 방법 Spring 설정 파일을 작성하는 방법은 크게 두 가지다. XML을 사용하는 방법과 Java Config를 사용하는 방법이다. 방법설명장점단점XMLXML 파일 안에 bean 객체를 정의하고 의존성 설정시각적으로 객체 관계 이해 용이XML 문법 필요, 타이핑 오류 가능Java Config설정을 Java 클래스로 작성타입 안전성, IDE 지원으로 리팩토링 용이설정 코드와 애플리케이션 코드 섞일 가능성, 복잡성 증가 Springboot를 생각하면 Java Config에 익숙해질 필요가 있겠다. 2. Web.xml & WebApplicationInitializerpackage com.company.fia;import org.slf4j.Logger;import org..
2024.07.06 -
[Spring] AOP
1. AOP Aspect Oriented Programming (관점 지향 프로그래밍) 기존 OOP에서는 핵심 로직을 여러 모듈에서 적용하는 데 있어 중복되는 코드가 발생한다. 핵심 관심(core concern): 핵심 비즈니스 로직공통 관심 사항(cross-cutting concern): 핵심 로직을 수행하기 위해서 필요한 부가적인 로직: 로깅, DB 연결, 파일 입출력, 보안 등 핵심 관심(core concern)과 공통 관심 사항(cross-cutting concern)으로 나눠보고 그 관점을 기준으로 각각 모듈화 하겠다. 이때 여러곳에서 쓰이는 공통 관심 사항을 모듈화한 것을 Aspect라고 한다. 핵심 기능에서 부가 기능을 분리함으로써 핵심기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 ..
2024.07.06 -
[Spring] Interceptor
1. Interceptor란? Controller가 요청을 처리하기 전/후 처리.공통 코드 사용으로 코드 재사용성 증가.로깅, 모니터링, 접근 제어 등 실제 비즈니스 로직과 무관한 기능들을 분리할 수 있다. Filter와 AOP와 유사하지만 다르다. 이들과 다르게 Login Session 검증, Header 검증, JWT Token 검증 등 웹과 관련된 기능을 담당한다. FilterInterceptorAOP구현Jakarta.servlet.Filterorg.springframework.web.servlet.HandlerInterceptor 관리 컨테이너Servlet ContainerSpring ContainerSpring Container (Root)적용 위치web.xmlservlet-context.xm..
2024.07.06