목록[Web] (89)
요르딩딩
이번시간에는 요청파라미터의 @Valid를 활용한 유효성 체크와 @ExceptionHandler를 활용한 예외처리에 대해 공부해보겠습니다. 우선, @Valid를 사용하기 위해 pom.xml에 아래 라이브러리를 추가해줍니다. org.hibernate.validator hibernate-validator 6.0.10.Final javax.validation validation-api 2.0.1.Final 그리고, 유효성 체크를 진행할 DTO에 어노테이이션을 적용하여, 체크해줍니다. 다만, collection은 체크를 해주지 않으므로, 추가로 @Valid 어노테이션을 붙여주어야합니다. package com.**.controller.request; import com.fasterxml.jackson.databin..
이번시간에는 intercept를 활용한 Session체크 공통부분을 구현해 보았습니다. 인증 확인은 크게 Filter와 Interceptor를 활용하여, controller에 접근하기 전에 전처리할 수 있도록 공통화를 많이 한다고 합니다. 저희 회사는 세션관련 객체를 controller 또는 service단에서 처리를 하고 있었습니다. 그 이유는 회사 방침이 그렇게 적용되고 있었기 때문입니다. 그런데 이렇게 하니 모든 API를 만들때마다 꽤나 긴 공통코드를 여러번 반복해야하고, Controller 또는 Service단까지 들어와야 인증체크를 할 수 있기에 그다지 좋은 방식은 아니라고 생각합니다. 그리하여, filter와 interceptor에서 공통으로 전처리를 하면 좋을거 같다는 생각을 했습니다. 처음..
[필터 로직] package com.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class sessionFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { Sys..
이번시간에는 spring에서 branch를 추가해 배포하는 과정을 알아보도록 하겠습니다. 저는 Eclipse, Sourcetree/Git(형상관리), Jenkins(배포)를 활용하였다는 점을 참고해 주세요. [구조] Eclipse(source) -> (SourceTree -> Git) -> Jenkins -> Server [순서] branch 생성 eclipse내에서 branch를 생성할 수도 있지만, sourcetree를 활용하여 branch를 생성하였습니다. 방법 : 상단 > "브랜치" 클릭 > (새 브런치)명 입렵 > "브런치 생성" 클릭 브랜치가 생성되었고, 변경값을 입력 후 푸시하게되면, 원격 레파지토리에 브랜치가 생성되는것을 알 수 있다. Jenkis Job 생성 새로운 brach 전용 job..
이번시간에는 spring에서 Junit을 활용하여 테스트하는 방법에 대해 알아보자. - 파일 위치 : src/test/java/testcase/TestCode.java [소스] package testcase; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.t..
[인덱스] 인덱스 특징 인덱스는 where절에서 효과가 있다. 인덱스가 걸려있는 컬럼을 where에 조건으로 넣을 경우에 효과를 볼 수 있다. 인덱스 설정 기준 카디널리티가 높을수록 좋다 : 고유한 값 위주로 (중복이 적을 수록) 선택도가 낮으면 좋다 : 하나의 값으로 적은 row가 조회된다. (일반적으로 5~10%가 적당) 조회 활용도가 높을 수록 좋다 : 조회에 자주 사용되는 컬럼 수정빈도가 낮을수록 좋다 : 인덱스 테이블도 갱신되기 때문에 낮을수록 좋다. (인덱스도 DB 메모리를 사용하여 테이블 형태로 저장되므로 개수와 공간은 비례합니다.) DML에 미치는 영향도 update, delete는 where절에 인덱스로 조건을 붙여주면, 크게 성능저하가 일어나지 않다, 조회시 빠른것이지 update, d..
1. Eclipse > Marketplace에서 다운로드 - Spring Tools 4 - Buildship Gradle 2. import porject > gradle
기존에는 HttpServletRequest의 객체를 RequestUtil을 사용하여, getParameter()값을 모두 map으로 전환하여, 사용하였다. 이렇게 사용하게되면, request Parameter로 어떤 값을 받던지, 모두 컨트롤러로 들어오기때문에, 개발자 입장에서는 DTO를 생성할 필요없이 편리하게 개발할 수 있었다. ( RequestUtil.paramToHashMap(request); ) 다만, 원리상 DTO를 사용하게 되면, 보안적인 측면에서도 좋고, 요청 파라미터에 매핑 오류시, 컨트롤러에 들어오기전에 걸러낼 수 있기때문에 더 효율적이라고 한다. 그렇기에 이번시간에는 DTO를 적용한 테스트를 진행해보았습니다. 1. Dto 생성에 있어서 @Getter, @Setter는 자동생성해 주는 ..