Spring
-
스프링의 새로운 HTTP 클라이언트 - RestClientSpring 2023. 8. 1. 22:37
스프링 프레임워크 6.1 M2 에서 RestClient 가 추가되었다. RestClient 는 스프링의 새로운 동기식 HTTP 클라이언트로 WebClient API 와 비슷한 방식으로 사용되며 RestTemplate 의 인프라를 제공한다. RestTemplate API 는 오래되기도 했고 사용법도 깔끔하지 않아서 새로 작성하는 코드에서는 WebClient 를 위주로 사용했는 데 사실 WebClient 하나를 사용하자고 spring-boot-starter-webflux 의존성을 넣는 것이 영 찝찝했다. (논블로킹으로 하는 것도 아니면서) 이런 와중 WebClient 의 세련된 API 와 비슷한 방식으로 사용할 수 있는 RestClient 가 나온 것은 매우 반가운 소식이 아닐 수 없다. 현재는 Spring..
-
Spring, Kotlin - InterceptorSpring 2021. 11. 25. 23:52
특정 Request 에 특정 기능을 적용하려는 경우에 Interceptor 를 사용할 수 있습니다. Request 를 가로채서(intercept) 실제 처리 이전, 이후의 작업을 추가할 수 있습니다. Method 설명 preHandle 실제 처리 부분 이전 작업 postHandle 실제 처리 부분 이후 작업 afterCompletion 전체 요청이 완료된 후 작업 Request 의 Log 를 찍어주는 Interceptor 를 생성하고 테스트를 통해 확인해보겠습니다. Spring Boot 2.6.0, Kotlin 1.6 버전을 사용하였습니다. class LogInterceptor : HandlerInterceptor { companion object { val log = LoggerFactory.getLo..
-
spring - 문자 인증 시스템 만들기Spring 2019. 3. 17. 23:26
인터넷에서 검색할 수 있는 문자 인증 API 는 유료이거나 사업자 등록증이 필요하기 때문에 개인 프로젝트에서는 사용할 수 없습니다. 문자만 보내는 API 를 이용하여 문자 인증 기능을 만들어 보겠습니다.. 문자를 보내는 API는 청기와랩 API 를 사용하겠습니다. 청기와랩 홈페이지에서 가입 후 등록하여 API 키를 발급받으면 됩니다. 처음 등록시 500 포인트를 주어 테스트할 수 있도록 해줍니다. (sms 건당 20 포인트 차감) 프로젝트에 Apache 의 Http Component 라이브러리가 있어야 합니다. pom.xml 에 org.apache.httpcomponents httpclient 4.5.3 를 넣어줍니다. 클라이언트 받는 번호와 인증 번호를 입력하여 ajax를 이용해 서버로 전송하는 페이지..
-
Spring - db(오라클) 설정 properties 파일 이용하기Spring 2019. 2. 28. 09:54
driver.properties 생성 main/resources 폴더 밑에 바로 생성했다. driver=oracle.jdbc.driver.OracleDriver url=DB주소 username=아이디 password=비밀번호 root-context.xml 에 bean 설정 classpath:/driver.properties classpath 에는 properties 파일의 경로가 들어간다. 경로는 main/resources 부터 시작한다. properties 파일에 등록된 키 값을 ${key} 형식으로 이용하여 정보를 불러올 수 있다.
-
Spring - security 암호화 하기Spring 2019. 2. 26. 23:50
스프링에서는 spring-security의 BCryptPasswordEncoder 를 이용하여 암호화를 할 수 있다. 설정하기 pom.xml org.springframework.security spring-security-core ${org.springframework-version} org.springframework.security spring-security-web ${org.springframework-version} org.springframework.security spring-security-config ${org.springframework-version} pom.xml 에 spring-security에 대한 라이브러리를 등록한다. security-context.xml 생성 appServl..
-
Spring - 트랜잭션 처리하기Spring 2019. 2. 25. 23:29
스프링에서 트랜잭션 처리는 트랜잭션 매니저를 이용하여 한다. AOP 를 이용하기 때문에 pom.xml 에 AspectJ가 등록되어 있어야 한다. org.aspectj aspectjrt ${org.aspectj-version} org.aspectj aspectjweaver ${org.aspectj-version} 어노테이션을 이용한 트랜잭션 처리 root-context.xml root-context.xml에 가서 네임스페이스에서 tx를 선택한다. 그 후 트랜잭션 매니저 bean을 만들고 tx:annotaion-driven을 작성한다. 그 후 트랜잭션 처리를 해야하는 서비스의 메소드 위에 @Transactional 어노테이션을 작성한다. 적용이 되면 왼쪽에 화살표 표시가 생긴다. 선언적 처리를 이용한 트랜잭..
-
Spring - 파일 다운로드 하기Spring 2019. 2. 25. 22:21
Spring - 파일 업로드 하기 에서 업로드한 파일을 다운받아보자 파일 다운로드는 스프링으로 하는 것 과 그냥 서블릿으로 하는 것의 차이가 없다. FileController에 fileDownload 메소드를 만들어 준다. @RequestMapping("/file/filedownload") public void fileDownload(HttpServletRequest request, HttpServletResponse response) { String saveDir = request.getSession().getServletContext().getRealPath("/resources/upload/file"); String fileName = "20190223-223005277_939.jpg"; File ..
-
Spring - 파일 업로드 하기Spring 2019. 2. 23. 23:08
스프링에서 파일 업로드 하기 pom.xml 먼저 pom.xml 에 dependency 를 추가합니다. commons-io 와 commons-fileupload 를 추가합니다. commons-io commons-io 2.6 commons-fileupload commons-fileupload 1.3.3 servlet-context.xml servlet-context.xml 에 파일 업로드 객체를 설정합니다. id 값을 쓰실 때 대 소문자 구분을 꼭 해주세요 p가 소문자입니다. maxUploadSize의 크기는 마음대로 넣어주어도 되지만 꼭 계산된 값으로 넣어야 합니다. 10 * 1024 * 1024 -> 10485760 form 파일 업로드를 테스트 하기 위해 간단한 jsp 파일을 만듭니다. form 태그의..