Spring Assert Statements package org.springframework.util; 인수를 검증하고 예외를 발생시키는 유용한 클래스 Assert Class Spring Assert 특징 Assert 메서드는 정적 예상되는 인수를 가정하고, 조건이 충족되지 않으면 런타임 예외를 발생 첫 번째 매개 변수는 검증을 위한 인수 또는 확인할 논리적 조건 두 번째 매개 변수는 유효성 검사에 실패할 경우 표시되는 예외 메시지 Example public class Car { private String state = "stop"; /** * speed > 0 조건을 충족하지 않을 경우 런타임 예외 발생 */ public void drive(int speed) { Assert.isTrue(speed ..
KISA SEED 암호화 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 1999년 2월 한국인터넷진흥원과 국내 암호전문가들이 순수 국내기술로 개발한 128비트 블록 암호 알고리즘 128bit의 암/복호화키를 이용하여 임의의 길이를 갖는 입력 메시지를 128bit의 블록단위로 처리하는 128bit 블록암호 알고리즘 따라서, 임의의 길이를 가지는 평문 메시지를 128bit씩 블록단위로 나누어 암호화하여 암호문을 생성 암/복호화하는 방법에 대한 운영모드로 ECB(Electronic Code Book), CBC(Cipher Block Chaining), CTR(CounTeR), CCM(Counter with CBC-MAC), GCM(Galois/Counter Mode)..
RSA Public/Private key in JAVA 업무 중 외부 API와 연동을 위해 RSA 암호화 알고리즘을 적용이 필요하게 되었는데, Public Key, Private key 에 대한 개념을 이해하고 적용해 보고자 간단하게 정리하게 되었다. RSA(Rivest-Shamir-Adleman) 비대칭 암호화 알고리즘 공개 키를 사용하여 데이터를 암호화하고, 개인 키를 사용하여 암호를 해독 대칭 알고리즘인 DES, AES와 다르게 2개의 키(Public Key, Private Key) 존재 Public Key : 누구와도 공유할 수 있는 공개 키(데이터를 암호화에 사용) Private Key : 자신을 위한 개인 키(복호화에 사용) 메세지 암호화 시 해당 메세지가 공개 키(Public Key)로 암호..
Redis Transactions 프로젝트에 Redis 를 적용하면서 Redis Transaction 을 잘 모르고 사용했다가, Spring Transaction 과 함께 데이터가 롤백되어 버리는 상황을 맞이하고 Redis Transaction 에 대해 알아보게 되었다. . Redis 는 싱글 스레드 기반으로 데이터 처리 반면, 이벤트 루프(Event Loop)라는 Redis 동작 원리로 여러 클라이언트 요청을 동시에 응답하는 동시성 보유 유저 레벨에서는 싱글 스레드로 동작하지만, 커널 I/O 레벨에서는 스레드 풀 이용 따라서, 동시성 문제에 대한 처리가 필요 Redis 동시성 처리를 위한 트랜잭션 방법은 SessionCallback 인터페이스를 구현하는 방법과 @Transactional 을 사용하는 방..
2022년 회고 2021년 회고에 이어 2022년 회고도 작성해보려고 한다. 회고를 작성하는 게 생각보다 귀찮고.. 어색하고.. 잘 쓰고 있는지도 사실 모르겠다..🙄 그래도 다른 분들의 회고를 참고해 보며 작성하다 보면 점점.. 적응이 되겠지...?!🥲 작년 숙제 작년 숙제는 꾸준히 Java/Spring 기술을 깊게 파면서, 유지보수하기 좋은 프로그램을 개발하기 위한 고민을 해보기 였다. 올해 이 숙제들을 잘 이뤄냈는지 돌아보자.. 결혼 준비와 이직 준비 10월달에 결혼을 하게 되어 1월부터 조금씩 결혼 준비를 하기 시작했다. 🎉🤵🏻👰🏻♀️🥳 그와 동시에.. 결혼을 하고 나면 이직 타이밍을 놓칠 것 같아서 어쩌다 보니.. 이직 준비도 같이 하게 되었다. 결혼 준비와 이직 준비를 동시에 어떻게 하냐고 많..
Spring Boot + Redis Spring Boot 에 Redis 를 적용하면서 알게된 내용들을 정리해보자. Redis 특징 Collection(List, Set, Sorted Set, Hash) 지원 Race condition 방지 Redis 는 Single Thread 로 Atomic 보장 persistence 지원 서버가 종료되더라도 데이터 리로드 가능 Spring Data Redis Ready build.gradle Redis 는 Key-Value 형식을 갖는 자료구조 Spring Data Redis 는 RedisTemplate , Redis Repository 를 사용하는 두 가지 접근 방식 제공implementation 'org.springframework.boot:spring-b..
Java / Spring Framework / Spring Boot Release Java Java 10 Local Variable Type Inference // Choose variable names that provide useful information. // Before List x = dbconn.executeQuery(query); // After var custList = dbconn.executeQuery(query); // Consider var when the initializer provides sufficient information to the reader. // Before ByteArrayOutputStream outputStream = new ByteArrayOutputSt..
Papago 번역 API를 애플리케이션에 적용해 보고자 한다. 👏🏼 . 참고로 Papago 번역 API는 일 허용량이 10,000 글자이다. 궁금하진 않겠지만.. 어떤 애플리케이션인지는.. 비밀🤫 . 네이버는 API를 쉽게 적용할 수 있도록 잘 설명이 되어 있는 레퍼런스를 제공해 주어서 사실 이 글은 무의미할 수도 있다.. 그래도 기록은 해야지..ㅋ_ㅋ.. Papago 번역 개요 . 우선 네이버 개발자 센터에서 애플리케이션을 등록이 필요한데, 애플리케이션을 등록은 매우 간단하다. 애플리케이션 등록 애플리케이션 등록 네이버 개발자 센터 상단 Application -> 애플리케이션 등록 -> 애플리케이션 등록 (API 이용신청) 페이지 애플리케이션 이름, 사용 API, 비로그인 오픈 API 서비스 환경 입력..