Tech
-
스프링부트 3.1의 도커 컴포즈 지원 방법은Tech 2025. 6. 21. 15:11
스프링부트 3.1의 도커 컴포즈 기능을 통해 애플리케이션 구동이 더욱 편리해집니다. 이 포스팅에서는 해당 기능의 사용 방법과 장점을 자세히 살펴보겠습니다.≡ 목차 스프링부트 도커 컴포즈 소개 도커 컴포즈의 필요성 Spring Boot 3.1 도입 배경 애플리케이션 설정 방법 의존성 추가 방법 application.yml 설정 컨테이너 연결 및 관리 ConnectionDetails 추상화 자동 연결 설정 테스트 환경 구성 테스트 코드에서의 도커 사용 샘플 코드 예제 결론 및 미래 전망 도커 컴포즈의 장점 향후 지원 예정 이미지 함께보면 좋은글! 신혼부부와 1인 가구의 부동산 투자 전략은? AI 에이전트 도입 시 고려할 점은 유튜브 쇼츠 쉽게 올리는 법은? 코스피 하락 원..
-
Java HashMap의 원리와 해시충돌 해결법Tech 2025. 6. 21. 12:02
Java에서 HashMap은 매우 중요한 자료구조입니다. 이 글에서는 HashMap의 동작 원리와 해시충돌 해결 방법에 대해 설명합니다.≡ 목차 HashMap의 기본 개념 이해하기 Key-Value의 매핑 원리 삽입 삭제 검색의 시간 복잡도 해시 조작을 위한 해시 함수 해시 충돌의 정의와 종류 해시 충돌이란 무엇인가 Open Addressing 방식 Separate Chaining 방식 Java HashMap의 내부 구조 배열과 버킷 구조 이해하기 해시버킷과 노드 형 배열 해시 함수의 작용 방식 결론 해시 버킷 관리 방식 이진 트리로의 변환 기준 트리에서 링크드 리스트로 변화 메모리 관리의 중요성 HashMap 사용 시 주의점 충돌 빈도를 줄이는 팁 키 설계 시 유의 ..
-
Java HashMap 동작 원리는 무엇인가Tech 2025. 6. 21. 11:49
Java의 HashMap은 데이터 관리에 중요한 역할을 합니다. 이 글에서 HashMap의 동작 원리와 해시 충돌 해결 방식을 살펴보겠습니다.≡ 목차 HashMap의 기본 개념 Key-Value 쌍의 구조 해시 함수의 역할 해시 버킷과 배열 구조 해시 충돌의 발생 원인 해시 충돌 정의 충돌 발생 빈도 해시 함수의 한계 해시 충돌 해결 방법 Open Addressing 방식 Separate Chaining 방식 Java에서의 적용 Node 구조와 해시 관리 2차원 배열의 구조 LinkedList와 Tree 전환 메모리 효율 최적화 HashMap의 성능과 활용 삽입 삭제 검색의 효율 사용 사례 분석 최적의 해시 버킷 수 설정 함께보면 좋은글! 바이브코딩이 만드는 SAA..
-
Java Record를 활용한 불변 객체의 이해Tech 2025. 6. 21. 11:39
Java Record는 간결하게 불변 객체를 정의할 수 있는 강력한 도구입니다. 앞으로의 개발에 어떻게 도움이 되는지 함께 살펴보겠습니다.≡ 목차 Java Record란 무엇인가 기본 정의와 예시 기존 자바 클래스와의 비교 자동 생성되는 메서드들 Record의 불변성 이해하기 불변 속성의 중요성 변경 불가능한 필드 정의 동시성 문제 방지 Record vs Lombok 비교 두 기술의 근본적인 차이 유연성과 불변성 자동 생성 메서드의 차이점 Java Record의 실제 활용 데이터 전송 객체 정의 데이터 모델로서의 활용 예시 코드로 보는 활용법 결론과 정리 Java Record의 주요 장점 프로그래밍에 미치는 영향 향후 활용 가능성 함께보면 좋은글! ChatGPT C..
-
Spring Boot와 Vscode로 프로젝트 시작하기Tech 2025. 6. 13. 13:42
Spring Boot로 복잡한 웹 애플리케이션을 쉽게 개발할 수 있는 방법을 알아보겠습니다. Vscode와 함께 프로젝트를 설정하는 과정은 효율성을 높이는 중요한 단계입니다.≡ 목차 Spring Boot 프로젝트 생성 방법 Gradle로 프로젝트 시작하기 Spring Initializr 설정 단계 필수 의존성 선택하기 Vscode에서 프로젝트 관리 프로젝트 구조 이해하기 Vscode의 유용한 기능 활용 터미널 사용법 Spring Boot 실행 방법 Java Application으로 실행하기 Spring Boot Dashboard 활용 디버깅 및 오류 처리 build.gradle 파일 수정 의존성 추가 및 관리 플러그인 설정 프로젝트 빌드 방법 프로젝트 발전 방향 기타 프레..
-
Spring AI로 Generative AI 쉽게 활용하는 법Tech 2025. 6. 9. 00:12
Generative AI는 다양한 응용 분야에서 큰 가능성을 지니고 있습니다. Spring AI를 통해 개발자들은 이 기술을 손쉽게 구현할 수 있습니다.≡ 목차 Spring AI란 무엇인가 Spring AI 기본 개념 Generative AI의 정의 Spring Framework와의 통합 Generative AI 구현하기 Spring 프로젝트 생성 과정 AI Client 사용법 REST Controller 활용하기 결론 OpenAI와 Azure AI 연동 OpenAI API 설정 Azure AI API 활용 API 응답 처리 방법 Spring AI의 장점과 한계 간편한 사용법 확장성 및 유연성 베타 버전의 한계 결론과 다가올 가능성 Spring AI의 미래 Genera..
-
Spring Boot 애플리케이션 종료 시 안전하게 파일 백업 처리하기Tech/SpringBoot 2025. 6. 8. 21:55
Spring Boot 애플리케이션을 개발할 때, 서비스 종료 시 파일 백업이나 리소스 정리 같은 작업이 필요한 경우가 많습니다. 이 글에서는 애플리케이션 종료 시 안전하게 파일을 백업하는 방법을 두 가지 방식으로 소개합니다.@PreDestroy를 이용한 Spring Bean 종료 훅JVM 레벨에서 작동하는 Shutdown Hook✅ 환경 설정 (Gradle)// build.gradle.ktsplugins { id("org.springframework.boot") version "3.2.5" id("io.spring.dependency-management") version "1.1.4" kotlin("jvm") version "1.9.23" kotlin("plugin.spring") ..
-
트라이(Trie) 자료구조Tech/Algorithm 2025. 3. 22. 10:04
트라이(Trie) 자료구조란?트라이(Trie)는 문자열을 효율적으로 탐색하고 저장하기 위한 트리 형태의 자료구조입니다. 특히 문자열이 포함되어 있는지 빠르게 확인하거나, 자동 완성 및 검색 추천과 같은 기능을 구현할 때 유용하게 사용됩니다. 트라이는 문자열의 접두사(prefix)를 기반으로 데이터를 관리하여, 중복되는 접두사를 공유하여 메모리를 절약합니다.트라이의 특징트라이는 루트에서부터 문자열의 각 문자를 노드로 가지는 트리 형태입니다.같은 접두사를 가진 문자열끼리는 공통의 경로를 공유합니다.문자열의 길이가 길어져도 탐색 속도는 문자열의 길이에 비례하여 빠르게 유지됩니다.검색, 자동 완성, 사전 검색 등에 효율적으로 사용됩니다.트라이의 구조각 노드는 문자와 자식 노드에 대한 참조를 가지고 있습니다.마지..
-
RabbitMQ vs Kafka 차이점 그리고, 장단점Tech 2024. 11. 18. 21:50
메시지 브로커는 분산 시스템에서 중요한 역할을 합니다. RabbitMQ와 Apache Kafka는 대표적인 메시지 브로커로, 서로 다른 목적과 특징을 가지고 있어 사용 사례에 따라 최적의 선택이 달라집니다. 이 글에서는 RabbitMQ와 Kafka의 차이점, 각 장단점, 그리고 적절한 사용 사례에 대해 살펴보겠습니다.RabbitMQ와 Kafka의 차이점아키텍처와 메시징 모델RabbitMQ: RabbitMQ는 AMQP(Advanced Message Queuing Protocol) 기반의 메시지 브로커로, 일반적으로 메시지 큐잉을 위한 용도로 사용됩니다. 메시지들은 큐(queue)에 저장되며, 하나 이상의 소비자(consumers)가 이 큐에서 메시지를 가져가 처리합니다. RabbitMQ는 Pub/Sub와 ..
-
MongoDB 파일 저장소로 사용하기Tech/SpringBoot 2024. 11. 18. 21:34
MongoDB는 비정형 데이터를 관리하는 데 강점을 가진 NoSQL 데이터베이스로, 파일과 같은 대규모 바이너리 데이터를 손쉽게 저장하고 관리할 수 있는 GridFS 기능을 제공합니다. 이 글에서는 Spring Boot와 Kotlin을 이용하여 파일을 MongoDB에 저장하고 관리하는 방법을 소개합니다. 또한 파일을 MongoDB에 저장하는 것의 장단점과 유의할 점에 대해서도 다룹니다.1. 프로젝트 설정Spring Boot와 Kotlin을 사용하여 MongoDB와 연동하기 위해서는 다음과 같은 의존성을 추가해야 합니다.Gradle 설정 (build.gradle.kts):dependencies { implementation("org.springframework.boot:spring-boot-start..