1. 오랜 만에 들어와서 작성한다. 이 블로그는 사적인 공간이고 그냥 글을 공개해 놓은 것 뿐이다. 1-1 한번씩 다시 읽을 때마다 느끼지만 의식의 흐름에 따라 작성한 것이라 오타도 많고 무슨 말인지 알수도 없는 부분이 많아 다른 사람들이 보기에는 적절하지 않다. 1-2 머리가 점점 나빠지고 쉽게 잊어버리는 것 같아서 적어놓는 용도일 뿐이다. 남들에게도 도움이 되었으면 좀 더 기쁘겠지만, 그건 이 블로그의 핵심 가치는 아니다. 2. 이 포스트에서 할 내용 2-1 인증을 위한 서비스 모듈을 리팩토링한다. 2-2 회원가입을 로직을 작성한다. 2-3 관련된 예외처리를 한다. 3. 인증부분을 좀 더 모듈화하기 위해 AuthService를 작성하여 그곳으로 모든 로직을 옮긴다. 3-1 Controller의 소스는..
1. CommandLineRunner는 스프링 부트가 제공하는 단순한 인터페이스이다 package org.springframework.boot; public abstract interface CommandLineRunner { public abstract void run(java.lang.String... args) throws java.lang.Exception; } 2. 이 클래스를 구현하여 run메소드를 작성하면 프로그램 기동시에 ApplicationContext 생성이 종료된 후에 run메소드가 자동으로 실행된다. 3. 초기화 명령을 담는 곳으로 사용되며 주로 개발 시에 간단한 테스트 용도로 이용된다. 4. 사용법이 간단하기 때문에 기동 클래스에서 상속하여 사용하는 경우가 많지만 separate ..
1. 프로그램의 실행환경에 따라 설정이 달라져야 할 때가 있다. 1-1 개발환경에서는 로그레벨이나 데이터베이스 설정 등이 달라질 수 있기 때문이다. 2. application properties를 작성하여 profile을 설정하는 방법 2-1 application.properties기본 설정파일 이외에 application-환경이름.properties 형식으로 설정파일을 작성할 수 있다. 2-2 예를 들면, 개발환경이면 application-dev.properties, 실제환경이면 application-prod.properties를 만들 수 있다. 2-3 실행 환경지정은 아래 application.properties의 spring.profiles.active=환경이름 으로 할 수 있다. 2-3-1 이렇게..
1. 스프링 개발의 기본 중에 하나가 테스트이다. 간단하게 몇 가지 메모해 준다. 2. junit 테스트 2-0 maven archetype quickstart 1.4로 생성하니 junit 4.11로 dependency가 생성된다. junit junit 4.11 test 2-1 대상 클래스 package pe.pilseong; /** * Hello world! * */ public class MyMath { int sum(int[] numbers) { int sum = 0; for (int i : numbers) { sum += i; } return sum; } } 2-2 테스트 클래스 2-2-1 일반적인 테스트는 기대값과 결과 값의 단순 비교이다. 2-2-2 아래 같이 assert를 기본으로 사용한다...
1. 아직도 xml 형식으로 데이터를 제공하는 곳이 많긴 하지만 별로 사용되지 않는 것 같다. 2. json외에 xml로 서비스를 요청하면 2-1 Accept 헤더에 application/xml로 서비스를 요청하면 406 not acceptable로 반환된다. 3. 해결 방법은 jacson dataformat xml dependency를 추가하면 된다. 3-1 스프링 부트의 경우에는 호환되는 jackson의 버전을 자동지정하므로 version정보는 삭제해야 안전하다. com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.11.1 4. xml 반환 값
1. 스프링에서 View를 사용하는 방식은 이미 철지난 이야기이지만 그냥 붙여둔다. 2 우선 Error handler를 위한 Controller을 하나 만든다. 2-1 모든 에러는 error.jsp로 넘기고 있다. 2-2 필요하면 여기서 데이터베이스에 에러를 저장하거나 하는 작업을 한다. package pe.pilseong.steps.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.Exceptio..
0. Date를 변환하고 싶은 경우는 아래 링크를 참고한다. Spring Basic : Form을 Date, LocalDate로 변환하기 0. Form에서 전송한 데이터를 Date로 변환이 필요한 경우가 많다. 워낙 다양하기 때문에 생각 날 때마다 추가할 예정 form에서 Parmater로 받아 Controller에서 Date로 변환하는 방법 (LocalDate에도 사용가능� kogle.tistory.com 1. InitBinder는 스프링 MVC가 나오면서 부터 지원한 오래된 기술이다. 2. 현재는 나중에 나온 Converter를 많이 사용하기는 하지만 여전히 유용한 기술이다. 3. @InitBinder의 목적은 View에서 입력한 Form에 객체정보를 Controller의 객체로 변환할 때 3-1 적..
1. WebJars는 jQuery나 Bootstrap같은 static 라이브러리를 다운로드하고 설치하는 번거로움을 제거해 준다. 2. 문제는 인터넷을 찾아보면 사용하는 코드는 있는데 설정하는 방법은 잘 나오지 않는다. 3. 일반적으로 mvn repository에서 찾아 pom.xml에 붙이면 동작하는데, 가끔은 404에러가 뜨고 찾지 못할 때가 있다. 3-1 이전에는 되었는지는 모르겠지만 내가 webjar를 사용하기 시작한 스프링 부트 2에서는 돌아가지가 았았다. 3-2 내가 알기로도 아래 경로는 기본적으로 그냥 돌아가는 것이 맞다. webjars는 META-INF/resources로 되어 있다. classpath:/static classpath:/public classpath:/resources/ cl..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib