Spring Boot 요청 매개변수 검증 구현하기

스프링 부트 애플리케이션에서 interceptor와 filter를 활용하여 요청 매개변수의 유효성을 검증하는 방법을 알아본다. 1. HttpServletRequestWrapper 재정의하여 본문 읽기 요청 본문(request body)을 읽기 위해 HttpServletRequestWrapper를 상속하는 클래스를 만든다. 파일 업로드 케이스도 함께 처리한다. import org.springframework.web.multipart.support.Standar ...

7월 26일 18:19에 게시됨

Fork/Join 프레임워크 실전 활용 예제

Fork/Join 프레임워크를 활용한 계산 예제 Fork/Join 프레임워크는 Java에서 병렬 처리를 구현하는 데 강력한 도구이다. 이 프레임워크는 작업을 작은 하위 작업으로 분할(fork)하고, 각 하위 작업의 결과를 결합(join)하는 방식으로 작동한다. 특히 재귀적인 알고리즘에서 그 진가를 발휘한다. 예제 1: 피보나치 수열 n번째 항 계산 피보나치 수열은 대표적인 선형递推 ...

7월 26일 15:47에 게시됨

Callable 및 FutureTask 인터페이스를 활용한 Java 스레드 구현

JDK 5.0부터 Java는 Runnable 인터페이스의 한계를 보완하고 스레드 작업의 결과 반환 및 예외 처리를 강화하기 위해 Callable 인터페이스와 FutureTask 클래스를 도입했습니다. 이들을 활용하면 스레드가 비동기적으로 작업을 수행하고, 작업 완료 후 결과를 호출 스레드로 전달할 수 있는 보다 유연한 멀티스레드 프로그래밍이 가능해집니다. Callable 및 FutureTask를 ...

7월 26일 12:48에 게시됨

자바 람다 표현식: 핵심 개념 및 활용 가이드

람다 표현식이란? 람다 표현식은 자바 8에 도입된 기능으로, 함수형 프로그래밍 스타일을 자바에 적용할 수 있게 해줍니다. 이는 단 하나의 추상 메서드를 가진 인터페이스(함수형 인터페이스)의 구현을 간결하게 표현할 수 있도록 돕습니다. 익명 내부 클래스를 작성하는 것에 비해 훨씬 적은 코드로 동일한 기능을 구현할 수 있어 코드의 ...

7월 26일 04:24에 게시됨

Java에서 Apache POI 및 POI-TL을 활용한 Word 문서 템플릿 기반 생성

Java 애플리케이션에서 Word 문서를 템플릿 기반으로 자동 생성하고 내보내는 작업은 Apache POI와 POI-TL(POI Template Language) 라이브러리를 통해 효율적으로 구현할 수 있습니다. Apache POI는 Microsoft Office 문서를 다루기 위한 강력한 Java API이며, POI-TL은 이 POI 위에 구축되어 Word 문서 생성을 위한 직관적인 템플릿 엔진을 제공합니다. 이 두 라이브러리 ...

7월 26일 02:07에 게시됨

Java 연결 리스트 기본 개념 및 구현

연결 리스트는 가변 길이의 객체 배열과 유사한 동적 데이터 구조입니다. 이는 데이터 저장 용량 제한이 없고 빠른 탐색 속도를 제공하여 데이터 구조의 여러 문제를 해결합니다. 기존 배열은 고정된 크기로 인해 데이터 삽입, 삭제, 수정 시 번거롭다는 단점이 있습니다. 이러한 단점을 극복하기 위해 연결 리스트는 동적 배열 역할을 수행할 수 있습니다. 연결 리스트의 ...

7월 25일 20:58에 게시됨

Java 리플렉션, 열거형, 어노테이션 완벽 가이드

리플렉션의 핵심 개념 프로그램 실행 중에 클래스의 구조를 탐색하고 조작할 수 있는 기능을 리플렉션(Reflection)이라 한다. 실행 시점에 클래스의 메서드, 필드, 생성자 등을 동적으로 분석하거나 호출할 수 있으며, 이를 통해 범용적인 유틸리티를 구축할 수 있다. 리플렉션의 대표적인 활용 분야는 다음과 같다: 런타임에 클래스의 메타데이터를 분석 어떤 객체에 ...

7월 25일 20:40에 게시됨

LogicNG 오픈소스 Java 라이브러리: 불리언 및 의사 불리언 공식 처리 및 해결

1. 프로젝트 개요 LogicNG는 불리언(Boolean) 및 의사 불리언(pseudo-Boolean) 공식을 생성, 조작 및 해결하기 위한 Java 라이브러리입니다. 이 라이브러리는 MiniSAT, Glucose, PBLib, OpenWBO와 같은 인기 도구의 100% Java 구현을 포함하고 있습니다. LogicNG의 주요 초점은 메모리 효율적인 데이터 구조와 공식을 조작하고 해결하는 알고리즘에 있습니다. 이 라이브러 ...

7월 25일 17:49에 게시됨

iBatis와 MyBatis의 주요 차이점

iBatis 기초 개념 iBatis는 데이터베이스와 Java 애플리케이션 간의 데이터 매핑을 처리하는 지속성 계층 프레임워크입니다. Apache에서 6년간 운영된 후 Google Code에 이식되며 이름을 MyBatis로 변경했습니다. MyBatis는 JDK의 제네릭 및 어노테이션 기능을 활용해 구조를 단순화했습니다. 핵심 구조 비교 일반적인 Java EE 프레임워크는 전역 설정 파일을 통해 실행 ...

7월 25일 17:45에 게시됨

Java로 TF-IDF 키워드 추출 직접 구현하기

TF-IDF 알고리즘 이해TF-IDF(Term Frequency-Inverse Document Frequency)는 문서 내에서 단어의 중요도를 수량화하는 대표적인 통계적 방법입니다. TF(단어 빈도)는 특정 문서에서 해당 단어가 얼마나 자주 등장하는지를, IDF(역문서 빈도)는 전체 문서 집합에서 해당 단어가 얼마나 희귀한지를 측정합니다.수식으로 표현하면 다음과 같습니다:TF(t, d) = (문서 d에서 단 ...

7월 25일 01:30에 게시됨