[Spring] JDBC(Java Database Connectivity)
·
Spring
JDBC(Java Database Connectivity)JDBC는 Java Database Connectivity로 Java 애플리케이션이 데이터베이스와 통신할 수 있도록 도와주는 표준 API이다. DB마다 사용하는 프로토콜과 방식이 다르기 때문에 Java 프로그램이 DB와 직접 대화가 불가능하다. 그래서 자바에서는 공통된 규칙을 만들어 두고 DB마다 그 규칙을 구현한 드라이버를 사용한다. 그리고 그 공통 규칙이 JDBC이다. 구조는 위 사진과 같다. 여기서 핵심 포인트는 ⭐ JDBC는 인터페이스이다. 실제 DB와 통신하는 코드는 JDBC Driver가 담당한다. DB가 달라도 JDBC API는 동일하게 사용한다. -> 그래서 DB를 MySQL에서 PostgreSQL로 바꿔도 자바 코드의 큰 구조는 거..
대용량 데이터 (csv파일) db에 넣기 with JdbcTemplate -2
·
프로젝트/끼니콩
2025.07.15 - [프로젝트/끼니콩] - [Spring] csv파일 db에 넣기 with JdbcTemplate [Spring] csv파일 db에 넣기 with JdbcTemplate들어가며아동급식카드가맹점 데이터를 db에 넣어야한다. 데이터는 지역 별로 나누어져 csv파일 형태로 제공되었고, 한 번만 넣는게 아니라 데이터가 변경되거나 지역이 확장이되면 계속적으로erika0915.tistory.com 앞서 진행한 작업에 대한 설명이 적혀 있다. 문제점아동급식카드가맹점 공공데이터는 간헐적으로 업데이트된다. 가맹점의 정보가 수정되기도 하고, 없어지기도 하며, 새롭게 추가되기도 한다. 지금 운영하고 있는 '끼니콩' 서비스에서는 아래 사진과 같이 `업데이트 날짜`를 제공한다. 이는 해당 가맹점이 언제 마지..
[Spring] 액츄에이터 (Actuator)
·
Spring
액츄에이터 서비스 운영에서 '모니터링'은 장애 대응의 핵심이다. 단순히 기능을 개발하는 것을 넘어, 운영 단계에서 서비스가 살아있는지, 로그 설정은 정상인지, 커넥션 풀은 얼마나 사용되는지 확인하는 비기능적 요소들을 '프로덕션 준비 기능'이라 부른다. 스프링 부트 액츄에이터는 이러한 지표나 감사 기능을 편리하게 제공한다. 1) 액츄에이터 시작하기 액츄에이터를 사용하려면 프로젝트 설정 (`build.gradle`)에 의존성을 추가해야 한다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator'}설정 후 서버를 실행하고 `http://localhost:8080/actuator`에 접속하면 사용 가능한 엔드..
[Spring] @RequestBody JSON 바인딩 원리
·
Spring
들어가며웹 애플리케이션 개발에서 클라이언트(프론트엔드)와 서버(백엔드)는 서로 정보를 주고 받는다. 이때 클라이언트는 보통 JSON(Javascript Object Notation) 형태로 데이터를 전송한다. 그러나, 서버 특히 자바 기반의 스프링 서버는 이러한 정보를 JSON 문자열이 아닌, 자바 객체 형태로 처리해야 한다. 클라이언트 JSON 데이터를 서버의 자바 객체로, 또는 그 반대로 변환하는 과정은 웹 API의 핵심이다. 이 복잡하지만 필수적인 '통역' 작업을 스프링에서는 `@RequestBody` 어노테이션과 `ObjectMapper`의 역할이 중요하다.@RequestBody 클라이언트(프론트)가 HTTP Body에 JSON 형식의 데이터를 담아 서버로 전송할 때, Spring Contro..
[Spring] Spring AI와 LangChain4j 비교
·
Spring
들어가며평소 AI 개발을 진행한다고 하면, python을 활용한 FastAPI나 Flask 프레임워크를 주로 활용하여 빠르게 API를 구축하는 방식을 사용했다. 파이썬은 풍부한 라이브러리 생태계 덕분에 AI 개발의 사실상 표준으로 여겨져 왔다. 반면 자바 생태계에서는 오랫동안 머신러닝 관련 라이브러리나 프레임워크의 부재로 인해 LLM 기반 애플리케이션을 구축하는 것이 다소 제한적이었다. 최근 이러한 흐름이 바뀌고, 엔터프라이즈 환경에서 압도적인 점유율을 자랑하는 자바 생태계에서 Spring AI가 등장하면서 자바 개발자들이 기존의 기술 스택을 유지하면서도 최신 AI 기능을 손쉽게 통합할 수 있게 되었다. Spring AI와 LangChain4j는 자바 개발자에게 LLM을 활용한 애플리케이션 개발을..