인기 글

Java

[Java] Gradle, Groovy Gradle, Kotlin Gradle

🙂 서론 이번 Project 에서 코드는 java를 사용하고, 빌드툴은 Kotlin Gradle DSL 을 사용하기로 하였습니다. Gradle에 대해서도 한 번 정리하면 좋을 것 같아서 글을 적어봅니다. 😁 본론 Gradle 이란? https://github.com/gradle/gradle Gradle 은 빌드 자동화 및 다국어 개발 지원에 중점을 둔 빌드 도구입니다. 모든 플랫폼에서 소프트웨어를 Building, Testing, publishing, deploying 하는 경우 Gradle 은 코드 컴파일 및 패키징에서 웹 사이트 게시에 이르기까지 전체 개발 수명 주기를 지원할 수 있는 유연한 모델을 제공합니다. Gradle은 Java, Scala, Android, Kotlin, C/C++ 및 Gro..

Java

[Java] Random보단 SecureRandom 를 사용하자.

🙄서론 Random을 사용하다가 소나큐브에서 Critical 버그가 발생했다. 그 후 알아본 내용을 정리해본다. 😉본론 - 에러 메세지 (번역은 구글번역을 통해 되었기 때문에 오역이 있을 수 있습니다..) "Random" objects should be reused "랜덤" 객체는 재사용되어야 한다. Random 값이 필요할 때마다 새 개체를 만드는 것은 비효율적이며 JDK에 따라 임의의 숫자가 생성되지 않을 수 있습니다. 효율성과 임의성을 높이려면 단일 Random을 만든 다음 저장하고 다시 사용하세요. Random()생성자는 별개의 값마다에 씨앗을 설정하려고 시도합니다. 그러나 시드가 무작위로 또는 균일하게 분포 될 것이라는 보장은 없습니다. 일부 JDK는 현재 시간을 시드로 사용하므로 생성 된 숫자..

Java

[JAVA+MSSQL]드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. - 오류 해결방법

😢서론 DB : MSSQL JDK : zulu 11 version OpenJDK 11버전으로 올린 후 기존 MsSql을 진행하던 프로젝트에서 아래와 같은 에러가 발생했다. Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 오류: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]". 😎본론 🤔원인 TLS(Transport Layer Security) 전송계층보안 이라는 암호화 보안 프로토콜은 데이터 전..

DataBase

[DB] 상황에 맞는 Unique ID 생성 방법

😏 서론 개발을 하면서, 유니크한 값을 사용할 일이 많습니다. 예를 들어 PK가 있을 수도 있고, 쿠폰번호가 있을 수도 있고, 결제번호가 될수도 있습니다. 유니크한 값을 만드는 방식들은 어떤 게 있고, 어떤 상황에 어떤 방식을 사용하는 게 좋을지 정리를 해보겠습니다. 😎 본론 먼저 3가지의 유니크 ID를 생성 종류에 대해서 알아보고 각각 어떨 때 적용하면 좋을지에 대해 개인적인 생각을 적어보겠습니다! 1. RDBMS 의 Auto Increment 디비에서 자동으로 만들어주는 자동증가 값으로 PK 용도로 사용된다. 장점 구현이 매우 간단하다. 숫자 증가기 때문에 재정렬이 필요 없다. 순서가 보장된다. 물리삭제가 되지 않는 특성의 테이블의 경우 마지막 row id 값만으로도 대략 테이블 데이터의 수를 파악할..

최신 글

나는리뷰어다2024

개발자를 위한 최소한의 실무 지식 (리뷰)

2023년에 이어 2024년도 한빛미디어의 서평단이 되었다. 감사한 마음을 담아 작년보다 더 나은 리뷰를 쓸 수 있도록 노력해야겠다. 한줄평: 실무에서 사용될 다양한 키워드들을 빠르게 습득할 수 있는 책 책에서 독자 방향을 취준생 ~ 1~2년 차 신입 개발자로 잡았는데, 개인적으로 취준생 ~ 입사 신입 때 읽기 좋은 책이었다. 부제로도 나와있듯 40가지 핵심 기술에 대해서 설명하다보니, 한 기술에 대해 깊이 설명하기 보다는 핵심을 잘 짚어주는 느낌이었다. 이 책에서 좋았던 점은 아래와 같다. 1. 다양한 분야를 설명한다고 해서 결코 깊이가 얕지 않다. 2. 다양한 키워드를 짚어준다. 3. 용어에 대한 설명이 매력적이었다. 1. 다양한 분야를 설명한다고 해서 결코 깊이가 얕지 않다. 핵심적인 키워드들을 잘..

나는리뷰어다2023

Release의 모든 것 (리뷰)

한줄평: 제목을 참 잘 지은 책. 35년 경력을 가진 선배 개발자가 직접 겪은 다양한 이슈와 과거 큰 이슈들을 이야기해주면서 실제 프로덕트 환경의 무서움을 알려주는 책이다. 코드를 잘못 작성해서, 요구사항과 다른 구현, 예외처리를 놓쳐서 등 프로그램을 잘못 작성해서 발생하는 문제들은 분명 많다. 많은(거의 모든) 개발자들은 위 사실을 알고 최대한 위와 같은 일들이 일어나지 않도록 테스트 코드를 작성하고, 많은 테스트를 통해 방지를 위해 힘을 쓴다. 하지만, 실환경에서는 문제가 저게 다가 아니다. 테스트 환경에서는 발견할 수 없었던 문제가 실환경에서는 더 많은 서버가 올라가고, 더 많고 무작위인 많은 트래픽(사용자)로 인해 성능 테스트에서 발견하지 못한 문제를 만날 수도 있으며, 많은 사람이 믿고 사용하는..

나는리뷰어다2023

초보자도 프로처럼 만드는 플러터 앱개발 (리뷰)

백엔드 개발자로 일을 하면서 앱개발을 한 번도 해본 적은 없지만, 앱 개발을 배워보고 싶다는 생각이 있었다. ios, 안드로이드를 별도로 개발하지 않는 기술 중 리액트 네이티브와 플러터 중 뭘 배울까 고민했던 적이 있었는데 구글에서 활발하게 지원하고 있는 플러터를 배워보고 싶었고, 마침 이번에 기회가 생겨서 이 책을 읽어봤다. 다양한 연습 사실 문법만 배운다고 바로 내가 원하는 앱을 만들기는 쉽지 않다. 여러 번 만들어봄으로서 계속해서 연습해봐야 하는데, 이 책에서는 단계단계 여러 프로젝트를 진행한다. 초보자의 경우 실제 내가 친 코드의 결과물을 보는 게 흥미를 느낄 수 있어 앞으로 공부하는 데에 도움이 되는데, 2장에서는 문법 설명 이전에 코드를 먼저 따라서 치는 실습이 있어서 흥미를 올릴 수 있어서 ..

Spring

[Toby Spring Reactive Programming] 비동기 RestTemplate과 비동기 MVC/Serlvet (5)

서론 https://www.youtube.com/watch?v=ExUfZkh7Puk 토비님의 유튜브 강의 내용을 정리한 글 입니다. 본론 @RestController public static class MyController { AsyncRestTemplate rt = new AsyncRestTemplate(); @GetMapping("/rest") public String rest(int idx) { return rt.getForEntity("http://localhost:8081/service?req={req}", String.class, "hello" + idx); } } AsyncRestTemplate을 사용하면, 톰캣 스레드 1개로 처리가 가능하다. 하지만, 백그라운드 스레드가 생성되어 처리하기..

Hyo Kim
일단은 내 이야기