분류 전체보기
-
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..
-
03. 게시물 등록의 파일 업로드Spring Web Project/8. 첨부파일 2021. 2. 4. 16:17
1. 테이블 생성 create table tbl_attach ( fullName varchar(150) not null, bno int not null, regdate timestamp default now(), primary key(fullName) ); alter table tbl_attach add constraint fk_board_attach foreign key (bno) references tbl_board(bno); 2. Domain 3. DAO > public void addAttach(String fullName) throws Exception; (BoardDAO.java) > insert into tbl_attach(fullname, bno) values (#{fullName}, LA..
-
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 : 원하는 리소스가 정상적으로 생성되었다는..
-
01. 설정Spring Web Project/8. 첨부파일 2021. 2. 4. 11:10
1. 라이브러리 추가 > imgScalr 라이브러리 : 이미지를 깨끗하게 축소할 수 있는 라이브러리 (큰 이미지 파일을 고정된 크기로 변환) 2. 설정 Note) 파일 업로드에 사용되는 'multipart/form-data'는 데이터를 여러 조각으로 나누어서 전송, 각 부분(part)마다 경계가 되는 값을 이용해서 많은 양의 데이터를 POST 방식으로 전송할 때 사용 (브라우저에서 서버 전송 시 '---'로 시작하는 부분이 데이터의 경계선) > multipartResolver : 파일 업로드로 들어오는 데이터를 처리하는 객체 > MultipartFile은 POST 방식으로 들어온 파일 데이터를 의미 3. 서버의 파일 저장 경로 설정
-
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) 메소드..