정산 시스템을 개발할 때는 1) 대용량 데이터를 메모리 누수(OOM) 없이 안전하게 읽어오는 것, 2) 정확한 금액 연산(BigDecimal), 그리고 3) 대량 데이터 일괄 처리(Bulk Update)가 매우 중요합니다.이번 글에서는 Spring Batch의 Chunk 기반 프로세싱과 MyBatis CursorItemReader를 결합하여 대용량 정산 배치를 구현하는 방법을 코드를 통해 알아보겠습니다.1. 개발 환경 및 사전 준비Java 17+Spring Boot 3.xSpring BatchMyBatisPostgreSQL / MySQL테스트용 테이블 스키마 (DDL)SQL CREATE TABLE orders ( id SERIAL PRIMARY KEY, order_no VARCHAR(50) N..
1. 컨트롤러 및 매핑 관련 함수 (Annotations)요청을 받고 응답을 반환하는 엔드포인트를 정의할 때 사용하는 핵심 함수(애노테이션)들입니다.@RestController: 해당 클래스가 REST API를 처리하는 컨트롤러임을 선언합니다. @Controller와 @ResponseBody가 결합된 형태입니다.@RequestMapping("/api/v1"): 공통으로 사용되는 URL 경로를 클래스 레벨에서 지정합니다.@GetMapping("{id}"): HTTP GET 요청을 처리합니다. (조회)@PostMapping: HTTP POST 요청을 처리합니다. (생성)@PutMapping("{id}"): HTTP PUT 요청을 처리합니다. (전체 수정)@PatchMapping("{id}"): HTTP PA..
1. GET 통신 (데이터 조회하기)GET 방식은 서버로부터 데이터를 가져올 때 사용합니다. 데이터를 보낼 때는 URL 뒤에 파라미터를 붙여서 전송하며, HTTP 요청 본문(Body)은 비워둡니다.💻 JavaScript (프론트엔드) // 특정 회원 정보를 조회하는 비동기 함수async function getUser(userId) { try { // 1. URL 뒤에 쿼리 스트링(?id=값)을 붙여서 GET 요청을 보냅니다. // await를 붙여 서버 응답이 올 때까지 기다립니다. const response = await fetch(`/api/user?id=${userId}`, { method: 'GET' // GET은 기본값이라 생략 가..
📌 Spring Boot REST API 샘플 정리1. 프로젝트 개요목적: 사용자(User) 정보를 관리하는 간단한 REST API주요 기능: 사용자 조회, 생성, 삭제기술 스택: Spring Boot, Spring Data JPA, H2 Database2. 프로젝트 구조 src/main/java/com/example/demo ├─ DemoApplication.java ├─ model/User.java ├─ repository/UserRepository.java └─ controller/UserController.java3. 코드 샘플메인 클래스 @SpringBootApplicationpublic class DemoApplication { public static void main(String[]..
1. 코드 작성 및 편집 (가장 많이 씀)코드 타이핑 속도와 편집 효율을 극대화해 주는 단축키들입니다.기능WindowsmacOS설명자동 완성 / 어시스트Ctrl + SpaceOption + Space클래스, 메서드, 변수명 및 템플릿(sysout 등) 추천한 줄 삭제Ctrl + DCmd + D커서가 있는 줄을 통째로 삭제한 줄 복사 (아래로)Ctrl + Alt + ↓Cmd + Option + ↓커서가 있는 줄을 아래에 그대로 복사줄 위치 이동Alt + ↑ / ↓Option + ↑ / ↓커서가 있는 줄을 위/아래로 한 줄씩 이동주석 토글 (설정/해제)Ctrl + /Cmd + /선택한 영역이나 한 줄을 주석 처리블록 주석 처리Ctrl + Shift + /Cmd + Shift + /선택한 영역을 /* ... ..
1. 서버 측 코드 (전문 수신 및 처리)서버는 먼저 헤더(4바이트)를 읽어 앞으로 읽어야 할 바디의 크기를 파악한 뒤, 정확히 그 크기만큼만 바디 데이터를 읽어 처리합니다.import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.ServerSocket;import java.net.Socket;import java.nio.charset.StandardCharsets;public class TelegramServer { public static void main(String[] args) { int port = 6000; try (ServerSocket serverSocket = new Ser..
📌 vi 명령어 정리🔵 1. 모드 전환Vi는 크게 명령 모드, 입력(insert) 모드, 비주얼 모드로 나뉩니다.동작명령입력 모드로 전환i(커서 앞), a(커서 뒤), I(줄 맨 앞), A(줄 끝)줄 삽입 모드o(아래 줄 생성), O(위 줄 생성)명령 모드로 돌아가기Esc비주얼 모드v(문자 단위), V(줄 단위), Ctrl+v(블록)🔵 2. 파일 저장 & 종료동작명령저장:w종료:q저장 후 종료:wq 또는 ZZ강제 종료 (저장 안 함):q!다른 이름으로 저장:w 파일명🔵 3. 커서 이동기본 이동명령설명h왼쪽j아래k위l오른쪽단어 이동명령설명w다음 단어 처음으로b이전 단어 처음으로e단어 끝으로줄 단위 이동명령설명0줄의 처음$줄의 끝gg문서 첫 줄G문서 마지막 줄숫자G숫자번째 줄로 이동🔵 4. 편집(삭..
📌 WSGI / ASGI / WAS 관계 그림 [Client] │ ▼ [Web Server] (Nginx, Apache 등) │ ▼+--------------------------+| WAS(Server) || Gunicorn / Uvicorn 등 |+--------------------------+ │ ▼+--------------------------+| App Interface Layer || WSGI (Flask/Django) || ASGI (FastAPI/Starlette)|+--------------------------+ ..
Google Gemini는 Google이 개발한 최신 인공지능(AI) 모델 및 제품군의 이름. 이전의 Google Bard가 발전한 형태이며, OpenAI의 GPT 시리즈처럼 다양한 규모의 모델로 구성된 통합 AI 시스템입니다.🔍 Google Gemini의 핵심 특징멀티모달(Multimodal)텍스트뿐 아니라 이미지, 오디오, 영상, 코드까지 한 모델에서 처리할 수 있도록 설계됨.여러 모델 크기 제공Gemini Ultra: 가장 큰 버전, 최고 성능Gemini Pro: 범용 성능Gemini Nano: 스마트폰 등 로컬 기기용 경량 모델다양한 Google 서비스에 통합Google 검색, Android, Chrome, Workspace(Gmail/Docs/Sheets 등) 등에 적용.고성능 코드 이해·생성..
Firebase는 Google이 제공하는 백엔드 서비스 플랫폼(Backend-as-a-Service, BaaS) 으로, 모바일 앱이나 웹 애플리케이션을 더 쉽게 개발하고 운영할 수 있도록 도와주는 도구와 서비스를 제공합니다.즉, 서버를 직접 구축하지 않아도 인증, 데이터베이스, 스토리지, 호스팅, 푸시 알림 등 다양한 기능을 Firebase를 통해 바로 사용할 수 있습니다.🔧 주요 기능 기능설명Firebase Authentication이메일, 구글, 페이스북, 애플 로그인 등 다양한 방식의 사용자 인증 기능 제공Cloud Firestore / Realtime Database실시간 데이터베이스 – 데이터를 실시간으로 읽고 쓰기 가능Firebase Storage이미지, 동영상 등 파일 저장소 제공Fireb..
- Total
- Today
- Yesterday
- WSL2
- call_user_func
- mysql
- laravel 11
- wsl
- fromArray
- curl_multi_init
- 명령어
- uniqid
- eloquent
- facades
- array_combine
- laravel 12
- 설정
- 비동기
- PYTHON
- php
- flask
- ob_get_contents
- laravel 테스트
- privatechannel
- Laravel
- 단축키
- eclipse
- jp:a
- OpenAI GPT
- ubuntu
- reflectionclass
- 설치
- swagger
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
