스프링
-
02. 로그인 처리Spring Web Project/9. 인터셉터 (Interceptor) 2021. 2. 15. 11:05
Note) HttpSession 객체 > 세션 쿠키(session cookie)를 통해 동작함, 서버는 필요한 경우 접속한 브라우저에게 고유한 세션 쿠키를 전달 > 세션 쿠키가 열쇠(key)라면 HttpSession은 열쇠가 필요한 잠금장치가 되어있는 상자와 유사, 이 상자들이 모여있는 공간을 '세션 저장소(Session Repository)'라고 하는데, 너무 많은 세션이 존재하면 서버의 성능에 영향을 미치기 때문에 서버에는 일정 시간 이상 사용되지 않는 상자들을 정리하는 기능 有 (web.xml을 이용하여 HttpSession의 timeout 지정) > 세션을 이용하는 방식의 핵심은 HttpSession을 이용해서 원하는 객체를 보관할 수 있다는 점 > 세션이 보관된 객체는 JSP에서 EL을 이용해 ..
-
01. Spring MVC의 인터셉터(Interceptor)Spring Web Project/9. 인터셉터 (Interceptor) 2021. 2. 15. 10:39
스프링 MVC에서 인터셉터는 웹 애플리케이션 내에서 특정한 URI 호출을 '가로채는' 역할 1. Filter와 Interceptor의 차이 (공통점) Servlet 기술의 Filter와 Spring MVC의 HandlerInterceptor는 특정 URI에 접근할 때 제어하는 용도로 사용 (차이점) 실행 시점에 속하는 영역(Context)의 차이, Filter는 동일한 웹 애플리케이션의 영역 내에서 필요한 자원들을 활용하나 Interceptor의 경우 스프링 내 모든 객체(빈)에 접근이 가능 > 예컨대, HandlerInterceptor의 경우 스프링의 빈으로 등록된 컨트롤러나 서비스 객체들을 주입받아 사용할 수 있기에 기존의 구조를 그대로 활용하면서 추가적인 작업이 가능 2. Spring AOP와 Ha..
-
02. 파일 업로드, 출력/다운로드, 삭제Spring Web Project/8. 첨부파일 2021. 2. 4. 12:29
1. UploadFileUtils 클래스 > uploadFile : 파일 업로드 (이미지 파일의 경우 makeThumbnail 호출, 이미지 파일이 아닌 경우 makeIcon 호출) > calcPath : 파일 저장경로 '년/월/일' 정보 생성 > makeDir : 폴더 생성 > makeThumbnail : 썸네일 이미지 생성 및 업로드 된 파일명 반환 > makeIcon : 업로드 된 파일명 반환 2. MediaUtils 클래스 > 확장자를 가지고 이미지 타입인지를 판단하는 클래스 3. 첨부파일 업로드 및 출력/다운로드 > @RequestMapping의 produces 속성 : 한국어를 정상적으로 전송하기 위한 간단한 설정 > HttpStatus.CREATED : 원하는 리소스가 정상적으로 생성되었다는..
-
02. TransactionSpring Web Project/7. AOP와 트랜잭션 (Transaction) 2021. 1. 31. 15:52
1. 트랜잭션의 기본 원칙(ACID 속성) 1) 원자성(Atomicity) : 하나의 트랜잭션은 모두 하나의 단위로 처리 2) 일관성(Consistency) : 트랜잭션이 성공했다면 DB의 모든 데이터는 일관성 유지 3) 격리(Isolation) : 트랜잭션으로 처리되는 중간에 외부의 간섭은 없어야함 4) 영속성(Durability) : 트랜잭션이 성공적으로 처리되면, 그 결과는 영속적으로 보관 2. 트랜잭션 매니저 설정 > 하나의 DataSource를 사용하는 경우, 스프링에서 제공하는 DataSourceTransactionManager를 이용, DataSource 주입 > 은 @Transactional 애노테이션을 이용한 트랜잭션 관리가 가능 Note) @Transactional 우선순위 1) 메소드..
-
01. AOPSpring Web Project/7. AOP와 트랜잭션 (Transaction) 2021. 1. 28. 12:34
1. AOP(Aspect Oriented Programming) 개념 > '비즈니스 로직은 아니지만, 반드시 해야 하는 작업' > 횡단 관심사(cross-concern) : 공통으로 사용되지만, 그 자체가 목적은 아니다. > 대표적인 예 : 보안 처리, 로그 기록, 문제 발생 시를 대비한 이중 백업 등 2. AOP 관련 용어 용어 설명 Aspect 공통 관심사에 대한 추상적인 명칭. 예를 들어 로깅이나 보안, 트랜잭션과 같은 기능 자체에 대한 용어 Advice 실제로 기능을 구현한 객체 Join points 공통 관심사를 적용할 수 있는 대상(작성된 Advice가 활약할 수 있는 위치 의미). Spring AOP에서는 각 객체의 메소드가 이에 해당 Pointcuts 여러 메소드 중 실제 Advice가 적..
-
05. 수정 Controller (REST 방식)Spring Web Project/6. Ajax 댓글 (Reply) 2021. 1. 11. 08:55
Note) 일반적으로 전체 데이터 수정 시 PUT, 일부 데이터 수정 시 PATCH 이용 1. Controller 2. Advanced REST Client를 이용한 TEST 3. DB 확인 4. HiddenHttpMethodFilter 태그 내에서 과 같은 형태로 사용해서 GET/POST 방식만을 지원하는 브라우저에서 REST 방식을 사용할 수 있도록 설정할 때 사용 > POST + _method value='put' : PUT 방식 > POST + _method value='delete' : DELETE 방식