[Spring]서블릿(Servlet)과 Spring MVC
·
개발
🧩 서블릿(Servlet)이란?서블릿(Servlet)은 HTTP 요청을 받고, 처리하고, 응답을 생성하는 Java 기반 서버 컴포넌트다.웹 애플리케이션 서버에서 요청을 처리하는 가장 기본적인 기술이며 Spring 등의 프레임워크가 내부적으로 모두 서블릿을 기반으로 동작한다.서블릿의 핵심 특징Java 기반 서버 프로그램HTTP 요청/응답 처리요청마다 스레드를 생성하여 병렬 처리Spring MVC 등 최신 프레임워크의 기반 기술비즈니스 로직 처리의 핵심 구성 요소 🚪 서블릿 컨테이너(Servlet Container)서블릿은 그 자체로 실행할 수 있는 프로그램이 아니다.서블릿을 실행하고 관리하는 실행 환경이 필요하다. 이 역할을 수행하는 것이 서블릿 컨테이너다.대표적인 컨테이너로 Tomcat, Jetty,..
[Python] 파이썬으로 TTS 구현하기: gTTS (Google Text-to-Speech)
·
개발
최근 프로젝트를 진행하다가 텍스트를 음성으로 변환해 주는 TTS(Text-to-Speech) 기능이 필요하게 되었다.여러 가지 라이브러리를 찾아보다가,가장 사용법이 간편하고 강력해 보이는 gTTS 라이브러리를 발견하여 적용해 보았다. 공부한 내용을 정리하고 공유할 겸, gTTS의 설치부터 공식 문서의 상세 내용까지 자세하게 포스팅한다. 1. gTTS 란?gTTS(Google Text-to-Speech)는 Google 번역의 TTS API를 사용하기 쉽게 만들어 놓은 파이썬 라이브러리이다. 간단한 코드로 텍스트를 mp3 오디오 파일로 쉽게 변환할 수 있다. 2. gTTS를 선택한 이유프로젝트에 TTS를 도입하기로 하고 여러 가지 옵션을 검토했다.나의 주된 고려 사항은 1) 기본적으로 무료여야 하고, 2) ..
[Celery] 파이썬 비동기 태스크 큐 Celery란 무엇인가
·
개발
왜 Celery가 필요한가?웹 애플리케이션이나 백엔드 시스템을 개발하다 보면, 즉각적인 응답이 필요 없는 무거운 작업들을 마주하게 된다. 예를 들어, 사용자에게 대량의 이메일을 발송하거나, 동영상을 인코딩하거나, 복잡한 데이터를 분석하는 작업이다.만약 이러한 작업들을 사용자의 요청과 동일한 스레드에서 처리한다면(동기 방식), 작업이 끝날 때까지 사용자는 아무런 응답도 받지 못하고 기다려야만 한다. 이는 최악의 사용자 경험(UX)을 초래한다.이 문제를 해결하는 것이 바로 비동기(Asynchronous) 처리이며, Celery는 파이썬 진영에서 이 비동기 처리를 위한 태스크 큐(Task Queue) 시스템의 표준과도 같다.필자는 현재 진행 중인 프로젝트에서 발생하는 다양한 백그라운드 작업을 처리하기 위해 C..
[Spring] STOMP, JWT 그리고 동작하지 않는 @AuthenticationPrincipal
·
개발
The given id must not be null 오류부터 최종 해결까지의 기록🚨 1. 문제의 시작: Unhandled exception from message handler method, The given id must not be null채팅 기능 구현 중, 클라이언트에서 메시지를 보내면 STOMP를 통해 실시간으로 통신은 되었지만, 해당 메시지를 DB에 저장하는 과정에서 오류가 발생했다. 처음 마주한 오류 로그는 다음과 같았다.최초 오류 로그:[boundChannel-13] .WebSocketAnnotationMethodMessageHandler : Unhandled exception from message handler method...org.springframework.dao.Invalid..
[SQLD] 제58회 SQLD 전공자 합격 후기
·
자격증
제58회 sqld 시험에 합격하였다.필자는 컴퓨터공학과 4학년에 재학중이다.시험소개https://www.dataq.or.kr/www/sub/a_04.doSQL 개발자(SQLD*, SQL Developer)란 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 응용 소프트웨어를 개발하면서 데이터를 조작하고 추출하는데 있어서 정확하고 최적의 성능을 발휘하는 SQL을 작성할 수 있는 개발자를 말한다.공부 기간 및 방법공부기간은 약 2주정도이다.데이터베이스 강의를 들었기에 기본 지식은 있지만 개념을 확실히 공부하려고 책을 구매했다.1. 2025 시대에듀 유선배 SQL개발자(SQLD) 과외노트개념책으로 선택했다. 개인적으로 데이터베이스를 수강한 전공자가 읽기엔 부적합하다고 생각한다. 예제들도 풀어서 설명해주고 입..