TodayILearned 8

MultipartFile 객체의 함정

@ContextConfiguration : 웹 서버를 돌리지않고 webApp 구현체를 만들어주는 역할 @WebAppConfig 붙어야 웹앱 됨. @Transactional. Advisor가 테스트 케이스에 위빙됨, 자동커밋됨 @ControllerAdvice 모든 컨트롤러를 대상으로 weaving된다. 컨트롤러가 동작할 땐 언제나 얘가 계속 조회된다. multipartfile: 비어있는 멀티파트 걸러지지않음. 첨부파일 추가하지 않아도 채워져버림. => 커맨드오브젝트의 책임은 핸들러어댑터가 진다. 데이터바인드 설정만 바꿔주면 비어있는 파트 해결 가능함. BUT 게시판에서 3개의 첨부파일이 1개의 동일한 input 태그를 쓰고있어서 데이터바인드가 동작하지 못하고 있음. -> 다른 방법을 찾아야함. @Contr..

추상 클래스로 view 만들기, properties 파일 사용해 폴더 위치 지정하기

jsp를 사용하는 이유가 '응답데이터를 html로 내보내기위해'인데 이 다운로드컨트롤러는 jsp를 사용할 이유가 딱히 없음. 그러니 MVC패턴에 맞도록 @RequestMapping("/board/download.do") public String download( @RequestParam(name="what", required=true) int att_no, Model model) throws IOException, ServletException{ AttatchVO attatch = service.download(att_no); model.addAttribute("attatch", attatch); return "downloadView"; ..

스프링 프레임워크 AOP

OP: Oriented Programming 프로그래밍 방법론은 중복을 해결하기 위해 점점 발전해왔다. AOP(Aspect Oriented Programming) : 관심사의 분리! 개발자가 각자 관심사에만 따라서 개발. 핵심관심사(Core Concern)는 타겟으로, 부가 관심사(Cross-cutting Concern)는 advice로 만든뒤 타겟, 어드바이스를 pointcut을 기준으로 걸러낸다음 joinpoint에서 weave하는 것. 부가 관심사: 여러 모듈이 공통적으로 거쳐야하는 작업 (예: 로그, 인증, 보안, 트랜잭션 관리) 장점: OOP에서도 해결되지 않은 중복을 해결 가능 업무 로직이 실행될 때 (-> core concern, target) 언제, 어떤 파라미터로, 얼마만큼의 소요시간이 ..

스프링 Spring 프레임워크 jUnit과 연동하기

junit으로 테스트할 땐 서버를 실행되지 않는다. 하지만 dao를 주입받아 쓰려면 컨테이너객체가 생성되어야함 => 서버를 돌리지 않은 상태에서 컨테이너 객체를 생성하게 하는 어노테이션: @ContextConfiguration 이때 형성되는 컨테이너: 애플리케이션 context. 테스트할 dao가 웹 어플리케이션 컨텍스트의 하위 객체가 되어야함. @WebApplicationConfiguration + test할때 자동 롤백되어야함 . => AOP 적용해 @Transactional을 넣어주자. 컨트롤러는 request가 있어야함. Mock 객체를 사용하면 Mock req, Mock resp 만들 수 있음. =>Spring의 MVC test module을 사용하면 됨 import static org.spri..

자바 Tiles 프레임워크 사용법과 특징

Tiles: view 단에서 페이지를 모듈화하는 과정에서 사용되는 프레임워크 - 원래는 InternalResouceViewResolver 만 썼었는데, Tiles를 사용하면 viewResolver를 여러개 쓸 수 있다. - Tiles는 Composite View Pattern을 사용한다. 1. tiles template 만들기 (design 을 갖고 있는 jsp) 2. insertAttribute . 그 세부 jsp들을 타일처럼 꽂아 넣어 3. definition이 최종적으로 뷰가 됨. xml에서 definition 만든다 http://tiles.apache.org/dtds/tiles-config_3_0.dtd preferences-> xml catalog에 이거 추가하삼 수정 전: ViewResolve..

WEB Application 2020.10.12

스프링 프레임워크 설치 및 테스트 (Spring)

AOP(Aspect Oriented Programming)에 따른 트랜잭션 관리 가능 (AOP : annotation만 잘 선언해놓으면 됨. ) 의존성, 결합력은 낮추고 응집력은 높이기 가능 => 많은 일들을 해주는 Enterprise Framework docs.spring.io/spring-framework/docs/4.3.29.RELEASE/spring-framework-reference/htmlsingle/ 스프링은 IoC(Inversion of Control) container로서 역할 (= DI Container) www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9 egovframework:rtea3.9 [eGovFrame] www.egovf..

WEB Application 2020.10.06

TIL (Command 패턴, jQuery 폼 플러그인 )

웹에 존재하는 패턴은 아님 Receiver = commandHandler Command가 receiver한테 명령 내려야하는 상황이되면 중간에 invoker를 통해서 command-> ConcreteCommand 에서execute() 현재 내가 짠 게시판: Front Controller Pattern + Command Pattern bo_no(board no) 컬럼이 여러 테이블에 있으므로 bo_no대신 새로운 이름의 alias를 사용하는게 좋음 www.notion.so/techsignal/Encoding-Encrypting-d90c20475c6746a49ce9657b4bd184a9 Encoding & Encrypting Encoding: 부호화 www.notion.so - SHA-512를 쓰자 - 64..

WEB Application 2020.10.03

TIL 웹 프로그래밍 (인증 / 인가 처리, 자바로 웹 파일 업로드 )

순서: Authentication -> Authorization 인가 처리, 인증 처리를 해서 접근 제어를 해줘야한다. 의도적으로 주소를 입력해 접속하는 것도 제어해야함. => 모든 요청에 대해 보안 처리를 하려면 Front Controller 앞에서 해줘야함. D.F.P(Decorating Filter Pattern) 을 사용한다. - Decorating 패턴 : 비즈니스 로직은 아니지만 부가적으로 추가하고 싶을 때 사용 - Filter: HTTP 요청과 응답을 변경할 수 있는 재사용 가능한 객체 변경? 원본에서 Wrapper 로 감싸진다. - 용도: 사용자 인증이나 권한 체크, request의 전처리와 response의 후처리를 담당하는 역할함 Filter Chain: 필터가 여러개일 때 Filter..

WEB Application 2020.09.24