분류 전체보기91 java - 디렉토리 삭제 + 특정 조건의 파일 삭제하기 코드를 통해서 디렉터리를 삭제하고자 하는 경우에는 해당 디렉터리가 clean 한 상태에서 삭제를 해야 한다. 하위 디렉토리를 포함하여 디렉터리에 파일이 없더라도 하위 디렉터리 역시 없어야 삭제가 가능하다. 이번 포스팅에서는 다음과 같은 방법으로 디렉토리를 삭제하는 방법을 적어보고자 한다. File 클래스 Files 클래스 apache commons io 라이브러리의 FileUtils 디렉터리를 삭제하기 위해서는 기본적으로 파일 목록을 가져와서 처리해야 하는데 디렉터리의 파일 목록을 추출하는 코드에 대해서는 아래 포스팅을 참고하기 바란다. 2023.11.04 - [자바] - [Java] 특정 디렉토리의 파일 목록 가져오기 샘플 디렉토리 구조 삭제 대상 디렉토리 구성은 다음과 같다. File 클래스를 이용한.. 자바 2024. 3. 31. Spring Data Redis - Auto Configuration을 이용한 Redis 연결 설정 고성능 인메모리 데이터베이스 스토어인 Redis는 탁월한 데이터 캐싱 및 검색 속도를 제공하며 많은 프로덕션 환경에서 활용되고 있다.이에 발맞추어 Spring Data 프로젝트는 Redis 상호 작용에 대한 높은 수준의 추상화를 제공하여 개발자에게 최소한의 노력으로 Redis의 성능 이점을 활용하면서 기능이 풍부한 애플리케이션을 구축하는데 집중할 수 있도록 한다.이번 포스팅에서는 Spring에서 제공하는 Redis 관련 Auto Configuration에 대해서 다뤄보고자 한다. (Lettuce 위주로 살펴봄) 샘플 코드 작성은 spring boot 3.2.3과 JDK 21 버전에서 작성하였다.샘플 코드 확인을 위한 Redis 서버 환경 구성은 spring boot docker compose를 활용하였다.. 스프링부트 2024. 3. 24. java 21 - Record Patterns 소개 Java의 pattern matching 도입 이후 구문 단순화와 코드 가독성 및 안전성 향상을 목표로 점진적으로 발전해 왔다. switch 표현식에서의 pattern matching, instanceof에 대한 pattern matching이 대표적이다. 이번 포스팅에서는 이전 버전의 preview 기능을 거쳐 java 21에서 정식 릴리즈된 Record Patterns에 대해서 소개하고자 한다. 이전에 다뤘던 pattern matching에 대해서는 아래 포스팅에 정리해 보았다. 2023.08.26 - [자바] - jdk pattern matching for switch jdk pattern matching for switch jdk 17 이전 릴리즈 에서는 switch 문의 선택자 표현식은 숫자, .. 자바 2024. 3. 20. Spring Data MongoDB - Custom Repository 사용하기 Spring Data는 코드 작업 없이 쿼리 메서드를 자동으로 생성할 수 있는 프레임워크를 제공한다. 그러나 이러한 자동 생성 메서드 이외에도 정밀한 DB 작업을 수행하기 위해서 때로는 사용자 정의 메서드를 구현해야 하는 경우도 있다. (ex. aggregation과 같은..)이러한 경우 inteface로 선언된 Repository 클래스 하나로 별도로 구현한 Custom Repository에 포함된 기능들과 더불어 자동 생성된 메서드를 사용할 수 있다. 먼저 Spring Data MongoDB를 사용하기 위한 연결 설정에 대한 내용은 아래 포스팅을 참고하기 바란다.2024.01.01 - [스프링부트] - spring data MongoDB - MongoTemplate 설정하기2023.12.29 - [스.. 스프링부트 2024. 3. 13. apache tika 라이브러리를 이용하여 일반 문서 및 암호화된 문서의 정보 알아보기 Apache tika 라이브러리는 문서 파일에 대한 Mime Type을 탐지하고 파일의 내용과 여러 항목의 메타데이터를 추출할 수 있는 기능을 제공하는 라이브러리다. 단순히 파일의 확장자가 아닌 실제 파일의 내용을 기반으로 한 Mime Type을 알아야 해당 Mime Type에 맞는 적절한 파일 컨트롤을 할 수 있다. 이번 포스팅에서는 Tika 라이브러리를 사용하여 파일에 대한 Mime Type과 여러 가지 메타데이터를 추출하는 방법과 함께 MS Office, PDF 문서에 비밀번호가 설정된 경우에도 Mime Type을 확인해 볼 수 있는 방법을 소개하고자 한다. apache tika 라이브러리는 3.0.0-BETA 베타 버전과 함께 릴리즈된 2.9.1 버전까지 나와있다. 각 버전에 대한 릴리즈 노트는 .. 자바 2024. 3. 8. spring data MongoDB - auditing 설정 및 활용 Spring Data는 엔티티(도큐먼트)가 생성되거나 수정될 때 생성자, 수정자, 생성시간, 수정시간을 투명하게 추적할 수 있도록 Auditing 기능을 제공한다. 이번 포스팅에서는 spring data MongoDB 에서 Auditing 기능을 사용할 수 있는 방법에 대해서 정리하고자 한다. Auditing 기능 활성화@Configuration@EnableMongoAuditingpublic class MongoDBConfigurationByDirect {...}@EnableMongoAuditing 어노테이션은 Spring Data MongoDB에서 제공하는 auditing 기능을 활성화하기 위해서 사용한다.@EnableMongoAuditing을 사용하면 엔티티가 데이터베이스에 저장되거나 업데이트될 때 .. 스프링부트 2024. 2. 26. spring data MongoDB - Repository 사용하기 Spring Data MongoDB는 Spring 애플리케이션 내에서 데이터 액세스를 단순화하는 것을 목표로 하는 Spring Data 프로젝트의 일부이다. MongoDB와의 원활한 통합을 제공하여 CRUD 작업을 추상화하여 데이터베이스와 상호작용하는 생산적인 방법을 제공한다.Repository는 Spring Data 프레임워크의 핵심이며 데이터 액세스 계층에 대한 높은 수준의 추상화를 제공한다. 이번 포스팅에서는 Spring Data MongoDB에서 Repository를 이용하여 간단한 CRUD 작업을 수행하는 방법에 대해서 샘플 기반으로 소개하고자 한다. Core conceptsSpring Data Repository 추상화의 중심 인터페이스는 Repository다. Repository 인터페이스는.. 스프링부트 2024. 2. 20. mongodb - $push와 $addToSet의 차이점 MongoDB에서 $push 연산자와 $addToSet 연산자는 Document의 배열 필드에 요소를 추가하는 데 사용되는 연산자다.배열 필드에 요소를 추가하는 공통적인 동작을 수행하지만 $push와 $addToSet 에는 주요한 차이점이 있다. $push 연산자$push 연산자는 값이 배열에 이미 존재하더라도 지정된 값을 배열에 추가한다. 즉, 중복 체크를 수행하지 않고 중복 값을 허용한다.{ "_id": 1, "receiver": "receiver@test.com", "senders": ["sender1@test.com", "sender2@test.com"]}와 같은 Document에서 $push 연산자로 아래와 같이 요소를 추가한다.db.senders.updateOne( { _id: 1 },.. ETC 2024. 2. 18. spring data MongoDB - 필드 변환하기 (Converter) 이번 포스팅에서는 MongoDB 에서 특정 필드 타입에 대해서 값을 변환하거나 지정된 필드에 대해서만 값을 변환하는 방법과 함께 key 필드에 도트 문자('.')가 포함된 경우 에러가 발생하지 않도록 하는 방법에 대해서 소개하고자 한다. Document key 필드에 도트 문자가 포함된 경우 처리MongoDB의 Document key 필드에 도트 문자가 포함된 경우 다음과 같은 에러를 만날 수 있다.Map key {필드명} contains dots but no replacement was configured! Make sure map keys don't contain dots in the first place or configure an appropriate replacement!위 에러를 피하는 방법은.. 스프링부트 2024. 2. 4. spring data MongoDB - ScopedValue를 이용한 MongoDB multiple database 연결하기 MongoDB에서 다수의 데이터베이스를 운영해야 하는 경우 ScopedValue (JDK 21 preview)를 이용하여 동적으로 해당 데이터베이스에 연결하는 방법에 대해서 소개하고자 한다.많은 수의 데이터베이스가 동적으로 생성되는 경우에 유용할 것이라고 생각한다. (ex. 테넌트별로 데이터베이스를 생성해야 하는 경우)사용하는 데이터베이스 수가 정해져 있고 소수의 경우에는 각각의 데이터베이스에 대해서 Configuration 구성을 하는 방법도 있는데 해당 방법은 아래 링크를 참고하면 도움이 될 것 같다.https://www.baeldung.com/mongodb-multiple-databases-spring-dataScopedValue 대신에 ThreadLocal을 활용해도 되지만 ScopedValue에.. 스프링부트 2024. 1. 6. spring data MongoDB - MongoTemplate 설정하기 Spring data MongoDB의 핵심 역할을 하는 MongoTemplate과 반응형 대응 클래스는 org.springframework.data:spring-data-mongodb 모듈의 org.springframework.data.mongodb.core 패키지에 있다. MongoTemplate는 데이터베이스와 상호 작용하기 위한 풍부한 기능 세트를 제공하며 MongoDB Document를 생성, 업데이트, 삭제 및 쿼리 하기 위한 편리한 작업을 제공한다.이번 포스팅에서는 MongoTemplate을 구성하는 방법과 MongoTemplate의 여러가지 옵션에 대해서 정리해 보고자 한다.MongoClient는 MongoClientSettings와 함께 MongoDB 연결에 대한 설정을 하지만 MongoT.. 스프링부트 2024. 1. 1. spring boot data MongoDB - 연결 설정 하기 NoSQL 데이터베이스로 가장 많이 사용되고 있는 MongoDB를 spring boot data MongoDB 를 통해서 사용하는 방법에 대해서 정리해 보고자 한다. 샘플 코드는 spring boot 3.2.1 버전을 기반으로 작성하였다. Dependencygradleplugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4'}...dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' ...} spring boot Mon.. 스프링부트 2023. 12. 29. 이전 1 2 3 4 5 ··· 8 다음 💲 추천 글