본문 바로가기

Spring 프레임워크54

Spring 프레임워크 MultipartFile 인터페이스 1. MultipartFile ? MultipartFile은 Spring 프레임워크 에서 제공하는 인터페이스 이다. HTTP 요청으로 전송된 파일 데이터를 처리하기 위한 방법을 추상화 했다. 주로, 파일 업로드 기능을 구현할 때 사용 된다. Spring의 MultipartResolver 을 통해, 멀티파트 요청을 해석하고, 파일 데이터를 MultipartFile 객체로 변환하여 컨트롤러에 전달 한다. Spring 에서 MultipartFile는 파일 업로드를 처리하는 매우 유용한 기능을 한다. 그래서, 업로드를 쉽게 구현 할 수 있고, 업로드된 파일의 정보를 쉽게 추출하고 처리 할 수 있다. 2. MultipartFile 인터페이스의 메서드. 업로드된 파일의 파라미터 이름을 반환 한다. 클라이언트 (사용.. 2023. 8. 17.
Spring JDBC 0. 그동안, Model 에서 DB와의 연결을 위해, JDBC 인터페이스를 구현 했었다. 기존 JDBC 코드 작업시, 로직이 반복 되거나, 유사함을 느꼈고, 이에 따라서, "반복되는 코드를 줄일 수 없을까 ?" 라는 생각을 했었다. 이렇게 반복되거나, 유사한 알고리즘을 캡슐화 해서, 재사용 하는 패턴을 Template 패턴 이라 한다. 코딩 순서가 정해져 있는 == 정형화 되어 있는 기술에서, 특히 유용하게 활용 된다. 예) JDBC, 트랜잭션, Mybatis, JPA, .. 1. Spring JDBC 이란 ? 스프링 JDBC는 스프링 프레임워크에서 제공하는, 데이터베이스 연결과 관련된 기능을 간편하게 사용할 수 있게 해주는 모듈 이다. 데이터베이스와의 연결과 관련된 번거로운 작업들을 추상화하여, 개발자.. 2023. 8. 16.
Spring 프레임워크 JoinPoint 인터페이스 JoinPoint 인터페이스는, 스프링 프레임워크 에서 AOP를 구현할 때 사용되는 인터페이스 이다. JoinPoint는 AOP 어드바이스 메서드가 실행되는 시점에 관련된 정보를 제공 한다. JoinPoint의 주요 메서드는 아래와 같다. 1) Signature getSignature() : JoinPoint를 통해 호출된 메서드의 시그니쳐 정보를 가져 온다. 시그니쳐에는 메서드명, 매개변수 타입 등의 정보를 포함 한다. 2) Object[] getArgs() : JoinPoint를 통해 호출된 메서드의 인자들을 배열 형태로 가져올 수 있다. 3) Object getTarget() : JoinPoint를 통해 호출된 메서드의 대상 객체를 가져올 수 있다. 4) Object getThis() : JoinP.. 2023. 8. 12.
AOP (관점 지향 프로그래밍) 관심분리 (@ 어노테이션 설정 모듈화) https://hwanii96.tistory.com/334 AOP : 관점 지향 프로그래밍 (@ 어노테이션 방식으로 로그 찍기) hwanii96.tistory.com 위의 글에서, @ 어노테이션 방식으로, Xxx 포인트컷과 로그 설정 어드바이스를 어스펙트 하는 설정을 했었다. 만약, 포인트컷과 어드바이스를 어스펙트 했는데, 위빙이 되지 않는다 ? >> 오타일 가능성이 매우 높다. >> 필요한 객체들의 객체화가 안됬을 수도 있다. 1. package com.spring.biz.common; import org.aspectj.lang.annotation.Pointcut; public class PointcutCommon {//PointCut 통합 클래스. (@ 어노테이션을 사용) @Pointcut("exec.. 2023. 8. 11.
AOP (관점 지향 프로그래밍) 관심분리 (@ 어노테이션 설정) Spring을 사용하여, AOP (관점 지향 프로그래밍) 을 할 때, 비즈니스 메서드와 횡단 관심을 설정하고, 사용 하는 방법을 공부했었다. 이제까지의 기능 설정 방법으로는 applicationContext.xml 파일에서 필요한 태그들을 사용해서 했었지만, 이번 글에서는 @ 어노테이션 방식으로 설정 해보려고 한다. 1. applicationContext.xml 파일에서, AOP를 어노테이션을 사용하겠다고, 코드를 작성 하기. 코드를 작성 하면 된다. 2. 자바에서 사용할 @ 어노테이션은 다음과 같다. 1) @Service 2) @Aspect 3) @Pointcut() 4) @Before() 5) @After() 6) @AfterReturning() 7) @AfterThrowing() 8) @Around.. 2023. 8. 11.
AOP (관점 지향 프로그래밍) 관심분리 (.xml 파일 설정) https://hwanii96.tistory.com/332 AOP (Aspect Oriented Programming) (관점 지향 프로그래밍) [ 참고 ] 객체 지향 프로그래밍 이란 ? Object Oriented Programming. 즉, OOP 라고 부른다. 객체 지향 프로그래밍은 응집도가 낮고, 응집도가 낮다는것은, 관련 없는 다양한 기능이 하나의 클래스에 섞여 hwanii96.tistory.com 위의 글에서 이미 정리 했었다. 몇부분 내용을 추가 하고 복습 하기 위해서 다시 작성 한다. AOP의 주요 구성중에 횡단 관심을 구현한 코드인 Advice 코드 (클래스) 를 확인해보자. [ 참고 ] 1) Advice (어드바이스) 횡단 관심사의 실제 동작을 구현한 코드 이다. 횡단 관심 == 공통 .. 2023. 8. 11.
AOP (Aspect Oriented Programming) (관점 지향 프로그래밍) [ 참고 ] 객체 지향 프로그래밍 이란 ? Object Oriented Programming. 즉, OOP 라고 부른다. 객체 지향 프로그래밍은 응집도가 낮고, 응집도가 낮다는것은, 관련 없는 다양한 기능이 하나의 클래스에 섞여 있음을 의미 하며, 이는 유지보수가 어렵고, 코드의 가독성과 이해도를 낮출 수 있게 된다. 이러한 객체 지향 프로그래밍의 단점을 보완하기 위해서, AOP == 관점 지향 프로그래밍을 사용 할 수 있다. /* 자체 솔루션 (프레임워크) 에서 이러한 AOP 개념을 사용하기에, 파악 하기 위해서는 아래의 내용을 이해 해야 한다. */ 1. "Spring 프레임워크는 IOC와 AOP를 지원하는 경량의 프레임워크" AOP 이란 ? AOP는 Aspect Oriented Programming.. 2023. 8. 10.
Spring 프레임워크를 통한 경량화된 서블릿 파일 1. 기존에 XxxController.java 라는 이름을 가진 서블릿 파일을 생성하면, 이것저것 무거운 javax 로 시작하는것들이 import 됬었다. 2. 이는 Not POJO 를 의미 하며, 이렇게 생성한 서블릿 파일 내부에는 @WebServlet() 이라는 어노테이션이 작성 되어 있었다. 개발자가 소괄호 안에 요청값을 작성하면, 그 작성한 요청값을 읽어서, 해당 서블릿 파일이 호출되며, XxxController.java 서블릿 내부의 멤버 (멤버변수 + 메서드) 사용을 위한 객체화는 @WebServlet() 이라는 어노테이션이 담당 하고 있었다. 3. @WebServlet() 어노테이션을 사용 하지 않는다면, 해당 서블릿 파일은 web.xml 에서 설정을 할 수 있었다. 하지만, 이렇게 코드를 .. 2023. 8. 9.
"비즈니스 레이어 (서비스 레이어) 를 사용 하기" 예제 1. 서버에서 DBMS (DataBase Management System) 변경이 자주 발생 한다. 즉, DAO 변경이 자주 발생 하게 된다는 의미 이다. DAO 이란 ? Data Access Object 을 의미하며, 데이터베이스나 다른 영구한 저장소에 접근하여 데이터를 조작하는 역할을 담당 한다. 데이터베이스와의 상호작용 즉, CRUD 작업을 처리 한다. 암튼 이렇게 변경이 자주 발생 하는 DAO 를 직접 사용 하면, 결합도가 높아져서 코드의 유지 보수에 불리해짐을 의미 한다. >> 무언가 객체를 직업 사용 한다 == 결합도 증가 == 유지 보수 불리 2. Service 를 통해 DAO를 간접 사용 하여 결합도 낮추기 (== 유지 보수 용이) XxxController.java 내부의 메서드 에서 사용.. 2023. 8. 8.