본문 바로가기

분류 전체보기

(168)
로그 로그 레벨 기준레벨운영 로그에 포함의미 및 사용 기준ERROR✅ 필수예외 및 치명적인 오류 상황 (사용자 영향 有)WARN✅ 권장예상하지 못한 상태이지만 무시하고 넘어갈 수 있는 경우INFO✅ 제한적 사용주요 비즈니스 흐름 (ex: 유저 로그인, 주문 완료 등)DEBUG❌ 기본 제외디버깅용 상세 정보, 개발 환경 전용TRACE❌ 제외매우 상세한 흐름 추적, 거의 사용 안 함 운영환경 로그 전략ERROR, WARN은 무조건 포함INFO는 중요한 비즈니스 흐름만 찍음DEBUG는 절대 포함하지 않음 (오류 재현 시 임시로만 허용)Profile(prod, dev)에 따라 구분해서 관리 운영 로그에 INFO가 포함될 수 있는 경우사용자 액션이 중요한 흐름을 만들 때 (예: 결제, 로그인, 배치 완료)시스템 상태 ..
전송계층 : TCP와 UDP TCP와 UDP 소개항목 TCP (Transmission Control Protocol) UDP (User Datagram Protocol) 연결 방식연결 지향형 (Connection-Oriented)비연결형 (Connectionless)신뢰성높음 (재전송, 순서 보장)낮음 (손실, 순서 뒤섞임 감수)속도느려도 정확하게 보내기빠르게 보내기, 유실은 감수용도HTTP, FTP, SSH, TLS 등VoIP, 스트리밍, 게임, DNS 등 프로토콜 내부 구조 (아주 간단히)TCP 헤더 구조시퀀스 번호 (순서 확인용)ACK 번호 (응답 확인용)윈도우 크기 (흐름 제어용)UDP 헤더 구조포트 정보 + 길이 + 체크섬만 있음 → 가볍고 빠름 동작 흐름 차이🚛 TCP 흐름 (3-way Handshake 기반 연결 지..
FFMPEG FFmpeg로 RTSP 스트림 PushFFmpeg 명령어는 로컬 영상 파일을 실시간처럼 RTSP 스트림으로 송출하는 명령어-re : real-time처럼 전송 → 파일 재생 속도를 1x로 제한해서 마치 실시간 영상처럼 보냄-stream_loop -1 : 무한 반복(loop) → 영상 끝나면 다시 처음부터 반복해서 송출-i input.mp4 : 입력 파일 지정 → 송출할 영상 소스 (input.mp4는 예시, 실제 경로 입력 필요)-c:v copy : 비디오 코덱 그대로 복사 (인코딩 없이 빠르게 전송)-f rtsp : 출력 포맷을 RTSP로 지정 (RTSP 서버와 호환되도록)rtsp://localhost:8554/mystream : MediaMTX 서버 주소: RTSP로 이 주소에 스트림을 푸시함 (lo..
임시적인 rtsp생성과 서버 띄우기 ( ffmpeg , mediamtx) FFmpeg는 retry기능이 없으며 rtsp로 output하는 기능은 서버가 응답하지 않으면 fail 하니 MediaMTX부터 설정하는것이 좋다. ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -f rtsp rtsp://localhost:8554/mystream[FFmpeg] → rtsp://localhost:8554/mystream (Push) ↓ [MediaMTX RTSP 서버] ↓VLC / OpenCV / 외부에서 rtsp://서버IP:8554/mystream 접속
배치처리 배치 처리란?한꺼번에(일괄로) 많은 데이터를 처리하는 방식. 주로 사용자 개입 없이, 예약된 시점에 자동 실행됨 배치 처리의 구성 요소 (Spring 기준)Spring에서는 보통 @Scheduled 또는 Spring Batch를 이용해 구현해. @Scheduled (간단한 주기성 작업)가볍고 단순한 배치에 적합트랜잭션/재시도/병렬처리 기능 없음@Scheduled(cron = "0 0 0 * * *") // 매일 자정public void sendDailyReport() { // 작업 수행} Spring Batch (전문 배치 프레임워크) @Beanpublic Job myJob() { return jobBuilderFactory.get("myJob") .start(step1()) ..
파일서빙 전략, 표준 그리고 구현 파일 서빙 전략1. 주체별 분류누가 실제로 클라이언트에 파일을 보내주는가?분류설명예시앱(Java( 서버에서 직접 응답Java에서 InputStream → OutputStream으로 전달바이트 스트림 방식웹(Ngnix, S3) 서버에서 정적 서빙클라이언트가 직접 정적 파일 서버에 요청해서 받음Nginx /files/, S3 public 버킷앱 + 웹 연계(Java 인증 후 Nginx 서빙)Java가 인증/권한 체크 후 Nginx로 위임X-Accel-Redirect 등으로 우회시킴CDN글로벌 캐시 서버가 등록된 파일을 대신해서 전송해주는 전송 대행 서비스CloudFront, Cloudflare주체별 분류 : Java 직접 응답바이트 스트림 방식 (Java 등에서 직접 처리)Java (Spring 등)에서 I..
통합 관리 플랫폼 구축 📌 작성 팁항목내용서술 방식“무엇을” 했는가보다 “왜 그렇게 했는가”에 집중핵심 정리단순 기능 나열이 아니라 “고민 → 선택 → 결과” 형식 강조가독성굵은 제목, 표, 리스트, 코드 스니펫 등 시각적으로 분리보완 자료Swagger 캡처, ERD, 트랜잭션 다이어그램 등 시각 자료 첨부 1. 프로젝트 개요프로젝트명 : Crowd Management Admin Platform기간 : 2025.03 ~ 현재역할 : 백엔드 전반 개발 (설계, 구현, 테스트)기술스택 :Java 17, Spring Boot 3.2JPA (Hibernate), QueryDSLMariaDB / RedisRabbitMQ / WebSocketSwagger / SpringDoc주요 도메인 : 인파 분석, 카메라 관리, 권한 제어, HLS..
Static File Upload Generalized Static File Upload WorkflowClient uploads a file (MultipartFile)Client (frontend or mobile) sends a multipart/form-data request:POST /uploadContent-Type: multipart/form-data--boundaryContent-Disposition: form-data; name="file"; filename="image.jpg"Content-Type: image/jpeg (binary data) Server stores the file (locally or in cloud) and returns a public-accessible URL@PostMapping("/u..