다른 서버와 API 통신을 하려고 하니 아래와 같은 에러를 받게 되었습니다. javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 구글에 검색을 해보니, API 통신을 하는 서버와 클라이언트가 서로 사용하는 SSL/TLS 버전이 맞지 않아서 나타난 에러 였습니다. 이미지 출처 : https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https 제가 운영하는 서버는 JDK 8을 사용하여 TLSv1.2 버전의 TLS Protocols를 사용하고 있습니다. 운영팀에 요청을 해서 client(통신 서버)에서 TLSv1.0으로 요청을 보내는 것을 확인하였고, ..
요즘 뭐 하기도 싫고 번아웃이 온거 같다. 그러던 중 지하철에서 예전에 완강했던 백기선님의 '스프링부트의 개념과 활용'을 다시 볼 기회가 있었고, 그 중 HttpMessageConverters에 관해서 다시 듣게 되었다. 최근 진행했던 토이프로젝트에서 @ResponseBody를 이용하여 String 타입으로 Json으로 리턴하도록 만든 부분이 있었는데, 뭐가 문제였는지 계속 Json으로 Return이되지 않아서 그냥 Map을 사용해서 완성했었다. 이강의를 다시 보게 되니.. 그때 왜 Json으로 리턴되지 않았는지 알 수 있었다..@ResponseBody를 사용하여 String과 Int로 리턴할 때는 자동으로 StringHttpMessageConverter가 사용된다. 객체를 리턴할 때는 JsonMessa..
부끄럽지만 Validation anotation 을 사용하면서 아래와 같이 NotNull은 null만 체크하고 NotEmpty는 ""만 체크하는 줄 알고 아무 생각없이 사용했습니다. @NotEmpty @NotNull @JsonProperty("phoneNumber") private String phoneNumber; @NotEmpty @NotNull @JsonProperty("privateYn") private String privateYn; 처음에는 이렇게 해도 잘 검증이 되어 사용하다가 privateYn 변수의 타입을 boolean으로 바꿀일이 있었습니다. @NotEmpty @NotNull @JsonProperty("phoneNumber") private String phoneNumber; @NotE..
Enable Multiple Connectors with Tomcat 운영환경 중 Http와 Https 포트 두 개를 다 열어야 하는 상황이 있을 수 있습니다. 저 같은 경우는 Http로 운영하던 서버를, 최근 Https로 바꿔야 하는 일이 있었는데요. 원래 계획은 Http 프로토콜을 사용해도, 내부에서 Redirect하여 Https로 이동하도록 설정하려 했는데.. WebMvcConfigurer를 상속받으면 제가 설정한 bean보다 WebMvcConfigurer가 먼저 올라가서 이러한 설정이 안된다고 합니다. 그래서 결국은 Http와 Https를 다 허용하는 멀티 포트를 하기로 했습니다. 추가적으로 인프라팀의 도움을 받아 내부망에서는 Http로 붙고, 외부에서는 Https로 접속할 수 있도록 설정을 했습..
Api 통신 작업을 하다가, Timeout Exception을 catch하여 처리해야 하는 상황이 있습니다. try{ //api 통신 restTemplate.postForEntity(...) } catch (HttpStatusCodeException e) { Result result = ResultCode.builder().memberStatusCode(....).build(); result.setResultCode(ServiceError.COMMON_SYSTEM_ERROR.getCode()); result.setResultMessage(e.getResponseBodyAsString()); return result; }catch (RestClientException re){ if(re.getRootCau..
springboot에서 개발시 local, staging, production으로 나눠서 개발환경을 구성해야 하는 경우가 있습니다. 그럴 때 maven에서 줄 수 있는 설정입니다. src/main/resources/deployment/${deployment} src/main/resources org.springframework.boot spring-boot-maven-plugin true springbootTest production production true staging staging local local 먼저 profiles 부터 살펴보면 저는 local, staging, production 3가지로 환경을 나눠서 구성 했습니다. 각 profile 마다 deployment라는 변수에 각 환경 이름..
토이 프로젝트로 관리자 페이지를 만들게 되었습니다. 관리자 페이지에서 작업을 하게 되면 중요한 부분이 'History' 라고 생각합니다. 누가 언제 만들었고, 누가 언제 수정했는지... 이러한 작업을 소스에서 반복적으로 입력해 주는 것이 아니라, 알아서 입력될 수 있도록 JPA Audit을 사용해봤습니다. 작업을 완료한지는 꽤 되었지만... 게을러서 지금 포스팅을 하게 되었습니다. 더 늦게 올리면 잊어 버릴까봐. 개발환경은 SpringBoot (2.x.x)+ Maven + spring-boot-starter-data-jpa + spring-boot-starter-security 입니다. Spring Security 환경에서만 생성자와 수정자 입력이 가능하다는 점 꼭 기억하고 작업 부탁 드립니다. 먼저 C..
5.Chapter05 : 참조 타입 5.1 데이터 타입 분류 자바의 데이터 타입에는 크게 기본타입(원시 타입 : primitive type)과 참조 타입(reference type)으로 분류된다. 기본 타입이란 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말한다. 참조 타입이란 객체(Object)의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다. 기본 타입으로 선언된 변수와 참조 타입으로 선언된 변수의 차이점은 저장되는 값이 무엇이냐이다. 기본 타입은 실제 값을 변수안에 저장하지만, 참조 타입은 선언된 변수의 메모리의 번지를 값으로 갖는다. 번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라고 부른다. 변수는 스택영역에 생성되고 객체는 힙 영역에 생성된다. [기본 타입 ..
- Total
- Today
- Yesterday
- spring-boot-starter-data-redis
- MSSQL
- 싱글턴
- 뱅크샐러드 유전자
- java
- 그레이들
- update query mutiple row
- 이것이 자바다
- 업데이트 쿼리
- update set multi
- 뱅셀 유전자
- 뱅크샐러드
- gradle
- update query
- multiple row update
- visual studio code
- 다중 업데이트
- 슬랙
- 몽고DB 완벽가이드
- vue.js
- update query multi row
- SpringBoot
- 슬랙봇
- springboot https
- update query set multiple
- 이펙티브자바
- 슬랙 /
- effectivejava
- update set multiple
- Slack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |