java

최근 진행 중인 프로젝트에서 서명, 검증 기능을 개발하는 부분을 담당하고 있습니다. 이번 포스트에서는 제가 어떻게 KMP 알고리즘을 이용하여 50%이상 성능개선을 이룰 수 있었는지 정리해보고자 합니다. 문제 상황기존상황은 아래와 같습니다. 검증하기 위해서는 byte[]로 되어 있는 구조체 전체에서 사내에서 정한 Delimiter(구분자)를 찾아야 했습니다. 여기에서 제가 맞이한 문제는 아래와 같았습니다.구조체의 크기가 매우 크다.(최대 2GB)기존의 Delimiter를 찾는 방식은 O(M*N)의 시간복잡도를 가진다. 기존 탐색알고리즘기존의 Delimiter를 찾는 방식은 아래와 같았습니다.public static Integer getPatternIndex(byte[] parent,..
분명, JDBC를 사용할 때에는, TinyInt를 Integer로 매핑을 했던 기억이 있는데, 에러가 발생하여 찾아보니 TinyInt(1)의 경우에만 Boolean으로 매핑이 되는 걸 알 수 있었다.(당연하겠지만...) R2dbc에서는 다른 매핑으로 작동될 까 걱정했지만, 우선 tinyInt를 boolean으로 매핑하는 점은 jdbc와 동일 한 것 같다. https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-type-conversions.html MySQL :: MySQL Connector/J 8.0 Developer Guide :: 6.5 Java, JDBC, and MySQL Types 6.5 Java, JDBC, and MySQL T..
· TypeScript
제네릭(Generic) 제네릭은 Java, TypeScript 등의 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징입니다. 특히, 한가지 타입보다 여러 가지 타입에서 동작하는 컴포넌트를 생성하는데 사용됩니다. 제네릭의 사전적 정의는 위와 같고, 실질적으로 어떻게 사용 할 수 있는지 바로 아래에서 알아보도록 합시다. 아래 포스트에서는 java, typeScript 두개의 언어로 예시를 들고, 각각 무엇을 의미하는지 정리해보고자 합니다. 제네릭 함수 제네릭(Generic) 함수는 제네릭 형식의 매개변수를 사용하여 선언된 함수입니다. 제네릭 함수를 호출하면, 실제로 넘겨진 argument의 형식이 사용되게 됩니다. 참고로, 제네릭타입으로 T, E, K 등 여러가지 대문자를 사용하는데, 이는 특..
moyanglee
'java' 태그의 글 목록