본문 바로가기

분류 전체보기378

spring boot exception 처리를 위한 enum 클래스 활용 오류 발생시 json 형태의 커스텀한 객체를 던지고 싶다.예외처리시 오류 코드와 오류 메시지는 enum 클래스를 활용한다. 케이스별 예외에 대한 정의를 enum 으로 정의 한다. public enum ServiceError { BIND_ERROR(){ @Override public ResultError getResultError() { String message = getMessage(); return ResultError.builder() .httpStatus(HttpStatus.BAD_REQUEST) .resultCode("40000") .resultMessage(StringUtils.isEmpty(message) ? "Binding Error." : message) .build(); } }, EMA.. 2018. 9. 15.
Spring boot jar 파일 Linux 서버 실행 등록 하기 ### Spring boot Linux 서버 실행 등록 하기 * step 01 [maven 수정] ```xml org.springframework.boot spring-boot-maven-plugin true ```` * step 02 [시스템 서비스 등록] sudo vi /etc/systemd/system/서비스명.service ```sql [Unit] Description=설명 추가 After=networking.service [Service] User= ExecStart=/XXX.jar SuccessExitStatus=143 WorkingDirectory= [Install] WantedBy=multi-user.target ``` * step 03 [실행 가능 파일로 변경] chmod +x XXXX... 2018. 9. 12.
java 8 remove duplicate object in List 자바 8으로 객체 리스트의 중복 데이터 제거하기 @Test public void testaa() { List list = Arrays.asList( new test("test1","email1","option1"), new test("test1","email1","option2"), new test("test1","email1","option3"), new test("test1","email1","option3") ); System.out.println(list.size()); List list2 = new ArrayList(); //note: getOption 으로 비교 list2.addAll(list.stream().collect(Collectors.toConcurrentMap(test::getOpt.. 2018. 9. 12.
Send Global sms with AWS SMS * 아마존 SMS 보내기* 해당 기능은 현재 국내 Region 은 사용 할 수 없음.* 제공되는 Region 을 선택 하도록 한다. (ex: AP_NORTHEAST_1)* 보내는 사람의 전화번호는 설정 할수 없음(확인필요)* AWS-SMS Dashboard: https://ap-northeast-1.console.aws.amazon.com/sns/v2/home?region=ap-northeast-1#/text-messaging* 해당 기능을 사용하기 위해서는 IAM 설정과 ACCESSKEY,SECRETKEY 발급 필요* 참고 URL: https://console.aws.amazon.com/iam/home?region=ap-northeast-1#/roles/sms * maven dependency: com.. 2018. 8. 23.
Spring Security with CustomFilter /** * 기존 프로젝트에서는 클라이언트와 서버간 인증 흐름은 대체로 아래와 같다. * spring security 에서 제공하는 PasswordEncoder 사용 * - client 가 password 를 Sha256 으로 인코딩 하여 서버로 전달 * - server 는 인코딩 된 패스워드를 passwordEncoder 를 사용하여 DB 에 저장된 패스워드와 match 검사를 한다 * passwordEncoder 를 사용하면 내부적으로 match 검사를 한다. * -> Basic 인증을 사용한다고 가정. * 변경후: * client 와 server 에 보안 인증 모듈을 추가로 탑재 하게 되었다. * 공개키 방식의 보안 인증 과정은 아래와 같다. * - client 는 서버가 공개한 public key .. 2018. 8. 5.
Java 8 - Functional interface 사용방법 public class CommonFunc { // 내부 구현이 정해지지 않은 인터페이스 함수를 선언 @FunctionalInterface public interface intFunc { public int calc(int a, int b); } @FunctionalInterface public interface strFunc { public String strAppender(String s1, String s2); } }@Test public void test1(){ // 하나의 변수에 하나의 함수를 매핑 하는 람다식 // 인터페이스를 실제로 어떻게 사용할지를 아래 람다식으로 구현 하도록 한다. CommonFunc.intFunc add = (int a, int b) -> a+b; int result =.. 2018. 7. 25.