반응형

전체 글 46

AWS 기반 웹 서비스 구조 이해하기: ALB, 서버, DB는 어떻게 연결될까?

AWS 기반 웹 서비스 구조 이해하기: ALB, 서버, DB는 어떻게 연결될까? AWS 기반 웹 서비스에서 EC2, ALB, RDS가 어떻게 연결되는지 예약 조회 요청을 예로 들어 살펴보려고 한다.요청 흐름을 따라가며 서버와 DB의 분리, 접근 제어, 트래픽 증가와 장애 대응의 기본 개념을 정리해 본다.1. 먼저 서버 한 대에서 시작해 보자Spring Boot로 예약 조회 API를 만들었다고 가정해 보자. 이 API를 사용자가 호출하려면 애플리케이션이 어딘가에서 실행되고 있어야 한다.AWS에서는 EC2라는 가상 서버를 빌려 애플리케이션을 실행할 수 있다. 개발할 때 내 컴퓨터에서 실행하던 프로그램을, 서비스 운영을 위한 컴퓨터에서 실행한다고 생각하면 이해하기 쉽다.예약 목록을 보여주려면 예약 데이터도 필..

Server 2026.10.14

[JAVA] 대량 데이터 배치 INSERT 리팩토링

대량 데이터 배치 INSERT 리팩토링 — subList 활용 2년차 시절에 회사에서 알림 발송 기능 코드를 보는데, 수신자 목록을 500건씩 쪼개서 배치 INSERT하는 부분이 있었다. 수신자가 수천~수만 명, 혹은 그 이상 까지 될 수 있어서 한 번에 넣으면 DB 부하가 커지기 때문인데, 쪼개는 로직 자체가 불필요하게 복잡해서 리팩토링해보았다. 왜 쪼개서 INSERT 하는가?!그 전에 먼저 왜 한 번에 INSERT하면 안 되는지 짚고 넘어가자! MySQL에는 max_allowed_packet이라는 설정이 있다. 한 번에 DB로 보낼 수 있는 패킷(쿼리)의 최대 크기를 제한하는 값인데, 보통 4MB~64MB로 설정되어 있다. MyBatis의 로 멀티 row INSERT를 하면 데이터가 많을수록 쿼리..

Back-end 2026.04.08

[Java] Spring 트랜잭션 처리 방식 ㅡ @Transactional vs AOP

Spring 트랜잭션 처리 방식 정리 ㅡ @Transactional vs AOP 프로젝트 코드를 보는데 @Transactional이 하나도 없는데 트랜잭션은 잘 돌아가고 있었다. "이거 어디서 걸리는 거지?" 싶어서 Config파일을 확인해보기 AOP 방식으로 패키지 전체에 자동 적용하고 있었다. 궁금한 김에 @Transactional 방식과 함께 정리해본다! 1. 트랜잭션이란?트랜잭션은 여러 DB 작업을 하나의 논리적 단위로 묶는 것이다. 묶인 작업들은 전부 성공하면 commit, 하나라도 실패하면 전부 rollback된다. 트랜잭션은 왜 필요할까? 예를 들어 쇼핑몰에서 주문을 처리한다고 해보자.주문 처리 예시: 1) 주문 상태 UPDATE ─┐ 2) 결제 정보 INSERT ├─ 하나의 트랜잭..

Back-end 2026.04.07

NestJS 공부하자! ㅡ 개념 및 데코레이터(Decorator)

NestJS 개념 및 데코레이터(Decorator) 정리[Spring개발자의 NestJS 적응기] NextJs의 개념과 요청처리 흐름 그리고 핵심이자 Spring의 어노테이션과 비슷한 데코레이터에 대하여 정리를 해보려고 합니다! 그동안 회사에서 매번 Spring Boot 환경에서 개발을 하다가..최근 Node.js 기반의 Next와 NestJS로 개발을 시작하게 되었습니다!앞으로 공부를 하면서 앞으로 하나씩 정리해서 포스팅을 해볼 계획입니다. 🧩 NestJS란? NestJS는 TypeScript를 지원하는 효율적이고 확장 가능한 Node.js 서버 사이드 프레임워크이다.객체지향(OOP), 함수형 프로그래밍(FP), 함수형 반응형 프로그래밍(FRP)의 요소를 활용한다. Controller, Provi..

Back-end 2025.10.28

SAXParseException으로 인한 Spring Boot 서버 부팅 실패

SAXParseException으로 인한 Spring Boot 서버 부팅 실패 💥 Spring Boot 내장 톰캣 서버 부팅 실패 💥— MyBatis XML 한 줄 오류로 벌어진 도미노 참사 회사에서 최신 소스를 받고 개발 하다가, 테스트를 하기위해... 서버를 실행하였는데 Spring Boot 프로젝트가 부팅 도중 Error creating bean을 뱉으며 꺼져버렸다. 우선 서버 로그를 보았는데,주로 이러한 오류 패턴인 경우에는Mapper(xml 파일)쪽에 문제가 있어기때문에 바로 내가 개발한 쿼리부터 체크해보았는데내가 고작 작성한 쿼리는 단순 update 3개 뿐이였고..아무리 보아도 문제가 없었다🤯 그럼 도대체 어떤 부분이 문제일까 하고 다시 로그 파일을 열어 위에서부터 차근 차근 자세히..

오류 분석 2025.05.08

Visual Studio Code(VSCODE)에 JAVA 프로젝트 세팅하기 (Feat. Spring, Spring Boot)

🚀 Visual Studio Code로 Java Spring 프로젝트 완벽 세팅하기 🚀 Visual Studio Code에 몇 가지 핵심 확장 프로그램(Extension)만 잘 설치해주면아.주.쉽.게 Spring Boot(Java) 개발 환경을 구축 할 수 있다. 📚 준비물 및 세팅 순서 1. JDK 설치: 사용하는 프로젝트 버전에 맞는 JDK(Java Development Kit) 설치 필수! 2. Visual Studio Code 설치 및 실행 3. Extension을 검색 후 Install왼쪽 사이드바 아이콘 (Ctrl+Shift+X) 클릭 후 EXTENSIONS MARKETPLACE에서 필수 Extension(확장)을 검색 후 설치 진행!아래에 필요한 확장들 정리해놨습니다. 4. 프..

Back-end 2025.04.02

[ERD] 이클립스 ER Master 사용법 그리고 ERD 추출, JAVA DOC 추출시 인코딩 에러 해결

이클립스 ER Master 사용법 그리고 ERD 추출, JAVA DOC 추출시 인코딩 에러 해결   매번 회사에서 만들어진 테이블에 컬럼만 추가해봤는데 이번에 직접 DB설계를하게 되었다.. 🙄 그래서 ERD설계를 해야하는데.... 무료 ERD툴이 많지만회사에서 이클립스로 프로젝트를 개발 하기도 하고,회사분들이 ERMASTER를 사용하고 계시기때문에ERMaster를 이용해서 ERD를 만드는게 편할거 같다는 생각이 들었다.(혹시라도 문제 생기거나 그럴때 빠른 도움을 요청하기 위해 ㅋ)  그리고 편하다고 생각한 이유는DDL 코드, JAVA DOC 추출 , 엑셀 문서화 등을 하기에 편리하기 때문이다.ERMaster를 ERM으로 부르기도 한다.  🔍 무료 ERD도구 사이트 혹시나, Ermaster 대신 무료툴..

DB 2024.07.11

[HTTP오류/보안] XSRF-TOKEN 와 X-CSRF-TOKEN (Feat.401응답)

XSRF-TOKEN 와 X-CSRF-TOKENHTTP 401 응답  업체에서 HTTP PUT 요청시TOKEN값을 헤더에 세팅해서 보내달라고 하여헤더(Request Header)에 X-CSRF-TOKEN와 토큰 값을 추가했다. 포스트맨(Post-man)으로 PUT 요청 테스트시 잘 되는데내가 만든 호출 API에서 PUT 요청시 401응답이 왔다.    HTTP 401 상태 코드(Unauthorized) 이란?401 Unauthorized  HTTP 상태 중 401(Unauthorized)는 클라이언트가 인증되지 않았거나, 유효한 인증 정보가 부족하여 요청이 거부되었음을 의미하는 상태값이다.  즉, 클라이언트가 인증되지 않았기 때문에 요청을 정상적으로 처리할 수 없다고 알려주는 것이다. 401(Unautho..

오류 분석 2024.03.19

[Spring/Java] 스프링 시큐리티(Spring Security)를 사용하여 비밀번호 암호화 하기

스프링 시큐리티(Spring Security) 를 이용해서 비밀번호 암호화 하기 🔒 스프링 시큐리티(Spring Security)를 사용하여 비밀번호를 암호화하는 방법을 알아보자. 대부분의 시스템에서는 회원의 관리(개인 정보 관련)를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. 스프링 시큐리티(Spring Security)란? 스프링(Spring)에서 제공해주는 인증(Authentication)과 인가(Authorization)에 대한 처리를 위임하는 별도의 프레임워크이다. 스프링 시큐리티는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에, 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다는 장점이 있다. ..

Back-end 2024.03.15

[SpringBoot] 파일 관련 라이브러리 - Apache Tika (feat. 파일 유효성 체크)

Apache Tika 자바 파일 관련 라이브러리 주로 프론트에서 파일 유효성 체크를 검사 하지만, 백단에서도 한번 더 해주는게 좋기 때문에 오늘은 쉽고 간편하게 백단(Java)에서 쉽게 파일 유효성 체크 하는 방법을 정리해보려고 한다 ! 바로 그 방법은 Apache Tika 라이브러리를 사용하면 쉽고 간단하게 사용 할 수 있다. Apache Tika(아파치 티카) 라이브러리란? 문서 타입 검출 및 다양한 파일 형식에서 컨텐츠를 추출하는 기능을 제공하는 라이브러리이다. Tika를 활용해 광범위한(universal) 타입 검출기 및 스프레드 시트, 텍스트 문서, 이미지, PDF 및 멀티미디어 입력 포맷 등의 다양한 형식의 문서에서 구조화된 텍스트와 메타 데이터를 추출할 수 있는 컨텐츠 추출기를 제작할 수 있..

Back-end 2024.03.13
반응형