본문 바로가기
728x90
반응형

분류 전체보기320

Timing Attack 방지를 위한 Constant-Time 비교 암호학에서 사용하는 constant-time 연산(타이밍 공격 방지용)에 대하여 알려드리고자 작성하였습니다. 특정 key 인식을 통한 인증 시스템을 구현하는 경우, 보통 언어의 equals 기능을 사용하여 적합한 key인지 판별하게 됩니다. 그러나, 해당 방식으로 사용하게 된다면 문제가 될 수 있다.어떻게 구현되어 있는데?언어별 equals에는 문자열 비교는 1byte씩 비교하다가 다른 글자가 나오면 false를 반환합니다.예시 java 내부 코드public boolean equals(Object anObject) { if (this == anObject) { return true; } return (anObject instanceof String aString) .. 2026. 5. 25.
How Netflix Uses Java 2026 Edition 리뷰 2025년에 Java 컨퍼런스에서 Netflix는 Java를 어떻게 사용하였고, 이런게 Netflix에서 어떤 영향을 끼쳤는지에 대하여 이야기해준적이 있습니다. 간단하게 이야기하면 다음과 같은 내용이 인상깊었습니다.Java의 버전을 8에서 17로 올리면서 CPU 사용량이 약 20% 감소했다.Java8의 GC와 Java17의 GC가 차이가 있음으로 인해서 성능이 좋아졌다는 이야기를 했었습니다.G1 GC에서 ZGC로 바꾸면서 STW의 시간이 대폭 줄었고, 이로 인하여 서비스 통신 시간이 감소되어 오류율이 많이 감소되었다.ZGC는 G1 GC에 비하여 많은 메모리를 소모하는 대신 STW의 시간이 대폭 줄어들어 시간적으로는 효과가 있어서 발생한 현상입니다.Spring boot WebFlux를 사용하지 않는다.Ja.. 2026. 5. 15.
AI 개발 시대에 대한 내 생각 최근 AI개발 시대가 도래하면서, AI만능론자들이 많아지는거 같다.그게 왜?이전에 다음과 같은 이야기를 들었었다.A : 이 코드 왜 이렇게 작성했어요?B : 이거 AI가 작성해줘서, 잠시만요 물어볼게요A : ???본인이 commit한 내용에 대해서, 이해하지 못하고 그저 코드가 정상적으로 작동한다는 이유만으로 AI가 작성해준 코드를 프로젝트에 적용하면서 발생한 문제다.최근에는 한명의 개발자가 백엔드, 프론트, 인프라, 엔진, AI 를 모두 개발한다는 사실을 들었다. 해당 이야기는 물론 가능할지도 모른다. 그치만, 해당 직무에 대한 지식이 전혀 없는 개발자가 AI로 개발을 진행하다면, '해줘'와 '어 되네 commit'만 진행할지도 모른다. 그렇게 되면, 코드는 계속해서 복잡해지고, 인간이 코드를 보기에 .. 2026. 5. 9.
죽은 라이브러리 교체부터 보안 이슈 해결까지 개발을 진행하다보면, 라이브러리 없이 개발을 진행하기에는 어려운 작업들이 존재합니다. 라이브러리들 중에 오픈소스로 github에 공개되어 있는 라이브러리들이 있습니다. 이번에 개인 프로젝트로 개발을 진행하면서 이러한 라이브러리들을 사용하게 되었습니다. 그러다 문득, 현재 사용중인 라이브러리들이 여전히 관리가 되고 있는지 궁금하여, 해당 라이브러리들의 github을 방문하다가 현재 관리가 진행되고 있지 않은 라이브러리를 발견하였습니다.무슨 라이브러리?현재 개인 프로젝트에서는 sqlite를 활용하여 db를 사용하고 있었습니다. db관련 라이브러리들 중 r2d2라고 데이터베이스에 연결을 관리하는 라이브러리였습니다. 해당 라이브러리의 마지막 커밋은 2년전이고, 더이상 관리가 되고 있는것으로 보이지 않아 다른 라.. 2026. 5. 5.
728x90
반응형