안녕하세요. 오늘은 SpringBoot 와 Vue를 활용해 문자열 데이터와 멀티파트 파일을 동시에 REST API로 주고받는 방법을 알아보겠습니다. JSON 형식의 문자열 데이터와, 관련 파일을 함께 업로드하는 과정을 단계별로 소스 코드와 함께 설명하겠습니다. 목표프론트엔드: Vue에서 FormData를 사용해 태스크 데이터(JSON)와 파일을 서버로 전송.백엔드: Spring Boot에서 @RequestPart와 MultipartHttpServletRequest로 데이터를 받아 처리.결과: 태스크별로 파일을 분배하고, 데이터베이스에 저장.1. 프론트엔드 구현(Vue)Vue에서는 axios를 활용해 multipart/form-data 요청을 생성합니다. 태스크 데이터를 JSON 문자열로, 파일은 태스크별..

이번 포스팅은 RabbitMQ 가 무엇인지 간단한 예제와 함께 알아보려고 합니다.1. RabbitMQ 란?RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 기반으로 한 오픈소스 메시지 브로커(Message Broker)입니다. 애플리케이션 간 비동기 메시지 전송을 지원하며, 시스템 간 느슨한 결합(Loose Coupling)을 가능하게 해 줍니다.주요 역할: 메시지를 생산자(Producer)로부터 받아 소비자(Consumer)에게 전달핵심 구성 요소: Exchage(메시지 라우팅), Queue(메시지 저장), Binding(Exchage와 Queue 연결)사용 사례: 마이크로서비스 간 통신, 작업 큐 관리, 이벤트 기반 아키텍처2. 장점 & 단점장점확장성: 여러 ..
SpringBoot 로 RestAPI 를 개발하다 보면, 클라이언트에 일관된 에러 응답을 제공하기 위해 예외처리의 표준화가 필요합니다. 이를 효율적으로 관리하기 위해 RestErrorAdvice 를 설정하면 각종 예외를 깔끔하게 처리할 수 있습니다. 이번 포스팅에선 RestErrorAdvice 를 설정하는 방법에 대해 소개하겠습니다. 1. Dependency 추가dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-web' ...}gradle 또는 maven 에 Dependency 를 추가합니다. 2. 공통 에러 응답 포맷 정의@Getter@Setter@NoArgsConstructorpublic class Ba..
SpringBoot 애플리케이션을 Undertow 기반으로 실행하고 Docker로 배포하는 방법을 단계별로 정리했습니다. 이 가이드를 따라 하면 간단히 Docker 컨테이너 환경에서 애플리케이션을 실행할 수 있습니다. 1. 프로젝트 설정1.1. Gradle 설정build.gradle 파일에서 Undertow 및 Docker 빌드를 위한 플러그인을 설정합니다.# build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6'}dependencies { implementation 'org.springframework.boot:sprin..

SpringBoot 에서 JPA 와 GraphQL 을 연동하는 방법에 대해 간략히 소개하겠습니다. 해당 포스팅에선 PostgeSQL 을 사용하였습니다. 1. 의존성 추가// GraphQLimplementation 'org.springframework.boot:spring-boot-starter-graphql'implementation 'com.graphql-java-kickstart:graphql-spring-boot-starter:15.1.0'// PostgreSQLruntimeOnly 'org.postgresql:postgresql'// JPAimplementation 'org.springframework.boot:spring-boot-starter-data-jpa'GraphQL, PostgreSQL..
스프링 AOP(Aspect-Oriented Programming)는 핵심 비즈니스 로직에 영향을 주지 않고 공통적인 관심사를 처리하는 데 사용됩니다. AOP를 활용하면 코드 중복을 줄이고 유지보수를 용이하게 만들 수 있습니다. AOP의 주요 사용처 1. 로깅애플리케이션의 메서드 호출, 매개변수, 반환값, 실행 시간 등을 기록개발 중 디버깅 및 운영 중 문제 분석에 유용@Aspect@Componentpublic class LoggingAspect { @Before("execution(* com.example.service.*.*(..))") public void logBefore(JoinPoint joinPoint) { System.out.println("Method called: ..
스프링 어노테이션은 리플렉션과 스프링 컨테이너를 기반으로 동작합니다. 어노테이션은 런타임에 메타데이터를 제공하며, 스프링은 이를 통해 객체 생성, 의존성 주입, AOP 등을 처리합니다. 주요 동작 원리를 단계별로 살펴보겠습니다. 1. 스프링 컨테이너의 역할스프링 컨테이너는 어노테이션 정보를 분석하고, Bean 을 생성 및 관리합니다. 스프링의 주요 컨테이너는 ApplicationContext 이며, 이를 통해 어노테이션이 처리됩니다. 2. 스캔 및 어노테이션 인식스프링은 클래스패스 스캔을 통해 어노테이션을 가진 클래스를 탐색합니다.컴포넌트 스캔 @ComponentScan 어노테이션을 통해 특정 패키지를 스캔합니다.해당 패키지에서 @Component, @Service, @Repository 등이 붙은 클래..

이미지에서 글자를 추출해야 할 때, Tesseract OCR은 가장 많이 사용되는 오픈소스 라이브러리 중 하나입니다. 이번 포스팅에서는 Spring Boot와 Tesseract를 활용해 이미지에서 글자를 추출하는 방법을 알아보겠습니다. 전체소스는 github 를 참고해 주세요.1. 특징Tesseract는 강력한 오픈소스 OCR(Optical Character Recognition) 엔진으로 다양한 특징을 가지고 있습니다. 다음은 Tesseract의 주요 특징입니다.다국어 지원 : Tesseract는 약 100여 개의 언어를 기본으로 지원하며, 한국어, 영어, 일본어 등 다국어 OCR이 가능합니다.높은 정확도 : LSTM(Long Short-Term Memory) 신경망을 활용해 텍스트 인식 정확도를 크게..

MongoDB는 NoSQL 데이터베이스로, 비관계형 데이터베이스 모델을 사용하는 것이 가장 큰 특징입니다. 스키마리스 구조로 고정된 스키마가 없기 때문에 데이터의 구조를 유연하게 관리할 수 있을뿐더러 샤딩을 통해 데이터를 여러 서버에 분산해 저장하고, 이를 통해 대량의 데이터를 처리할 수 있는 수평적 확장을 지원합니다. 윈도우에 MongoDB 를 설치하는 방법과 SpringBoot를 통해 MongoDB를 사용하는 방법에 대해 알아보겠습니다. 1. 윈도우 MongoDB 설치아래 경로로 접속하여 커뮤니티 버전을 다운로드합니다.https://www.mongodb.com/try/download/communityComplete : 기본Custom : 사용자설정저는 Complete로 진행하였습니다.원하는 경로로 지..

최근 유행하는 캐릭터 맞히기 게임을 아이와 함께 즐기다 보니, 흥미가 생겨 직접 만들어보게 되었습니다. 관심 있으신 분들은 한번 참고해보세요! 전체소스는 Github 를 참고해주세요. SpringBoot + Thymeleaf + MariaDB 로 작성되었습니다. 주요 기능일반 모드: 10문제, 20문제, 50문제 중 선택하여 플레이 가능데스매치 모드: 제한 시간과 목숨을 두고 도전하는 스릴 있는 게임 모드공부하기 모드: 게임을 즐기면서 캐릭터에 대해 학습할 수 있는 기능랭킹 시스템: 사용자들의 기록을 기반으로 랭킹을 조회하는 기능메뉴 및 문제 등록: 게임에 사용할 캐릭터와 문제들을 자유롭게 등록 가능 1. 메인화면게임을 선택할 수 있는 메인 화면입니다. 원하는 만화를 선택하여 게임을 진행할 수 있습니다...
- Total
- Today
- Yesterday