| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Stream
- stream api
- 대용량 업로드
- ORM
- spring
- 자동배포
- DevOps
- rabbitmq
- jqGrid
- sqlserver
- docker
- 그리드
- MessageQueue
- 보안
- 엑셀 업로드
- mom
- 제이쿼리그리드
- ci/cd
- QueryDSL
- 복호화
- JPA
- java
- 자바8
- Javascript
- 자동빌드
- mssql
- Jenkins
- apache.poi
- JQuery
- 스트림
- Today
- Total
목록 Java (17)
개발 메모장
API를 통해 데이터를 전달받고 있는 곳에서 보안 문제로 암호화 알고리즘을 불가피하게 변경해야 한다고 하여 변경하는 과정을 작성합니다.암복호화를 위해 해당 서버 측에게 Key와 IV를 제공받아 적용하였습니다.기존 DES는 삭제하고 AES256으로 적용하는 방법은 아래와 같습니다.#. Key, IV 설정전달 받은 key와 iv를 application.yml에 저장하고 @value를 통해 appconfig에 변수로 저장하였습니다.key와 iv는 어떤 방식으로 인코딩 되었는지, 알고리즘이 무엇인지 안내를 받아야 합니다.- 인코딩 : URL-safe Base64 / UTF-8- 알고리즘 : AES/CBC/PKCS5Padding - Key length : 256 bit - IV length : 128 bit..
#. 보안과 관련하여 해외에서 접속하는 IP에 대한 점검을 해야할 필요성을 느꼈습니다.#. 해외 IP를 확인하는 방법은 외부 라이브러리, 정부 제공 API 등 처리방법이 있습니다.#. 서비스 중인 프로젝트는 특정된 대상만이 사용하도록 되어있기에 더더욱 해외에서 접속할 일은 없기 때문에 아래와 같이 정부 제공 API를 적용하였습니다.#. 이는 일일 트래픽 10,000건까지만 제공하므로 더 필요한 경우 웹사이트에 따라 증가시키길 바랍니다.#. API 사용하기 참고문서를 다운받아 필요한 내용에 대한 API URL을 확인합니다.아래와 같이 목록에서 원하는 내용을 선택한 뒤 활용신청 버튼을 눌러 API KEY를 발급받습니다. 요청하는 값을 넣어 처리해보면 아래와 같이 데이터를 리턴 받습니다.사이트 접속은 클릭 또..
카카오와 관련하여 어플리케이션을 사용하던 중 CI 값을 처리하는 부분을 변경해야해서 처리하던 중 발생한 오류입니다.기존의 코드는 Java Script에서 카카오에 유저 정보를 가져오게끔 처리 되어있었으나 10월 31일부로 더 이상 JS SDK로는 CI를 제공하지 않는다고 하여 REST API로 로직을 변경해야 했습니다.이 과정을 처리한 방법에 대해 작성해도록 하겠습니다.#. HTTP 통신을 위한 로직 구현 API 정의서와 같이 로직을 구현하고 난 뒤 통신하려 하니 인증서 오류가 발생했습니다.[org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler] Unexpected error occurred in scheduled task.javax...
단일 추상 메서드가 있는 인터페이스이며, 람다식 및 메서드 참조에 대한 내용을 제공합니다.Java 8부터 기능이 추가 됐고 이에 따라 더 손쉽게 개발할 수 있게 됐습니다.람다식을 이용할 때 더 간결하고 읽기 쉬운 코드를 구현할 수 있으며, 재사용 가능한 코드 구성요소를 작성할 때 좋습니다.#. 사용자 정의 함수형 인터페이스위 내용과 같이 함수형 인터페이스를 정의하기 위해선 단일 추상 메서드가 사용되어야 합니다.이 때 명시적 표기, 가독성 및 컴파일러 적용을 위해 @FunctionalInterface 어노테이션을 추가해줍니다.아래와 같이 test 메서드에서 MyFuction 함수형 인터페이스를 참조하여 사용할 수 있습니다.@FunctionalInterfaceinterface MyFunction() { in..