분류 전체보기 17

데이터베이스 동시성 이슈

[DB] 데이터베이스 동시성 이슈(Concurrency Issue) 총정리안녕하세요! 백엔드 개발자라면 실무에서 반드시 마주하게 되는, 그리고 면접에서도 단골로 출제되는 데이터베이스 동시성 이슈에 대해 핵심만 콕 짚어 정리해 보겠습니다.수많은 사용자가 동시에 접속하는 서비스에서 우리가 저장한 데이터가 어떻게 보호되는지, 어떤 위험이 있는지 함께 알아볼까요?1. 동시성 이슈란 무엇인가요?**동시성 이슈(Concurrency Issue)**란 여러 개의 트랜잭션이 동시에 같은 데이터에 접근하여 수정할 때, 데이터의 일관성이 깨지고 논리적인 오류가 발생하는 현상을 말합니다.쉽게 말해, **"내가 수정하고 있는데 남이 끼어들어서 데이터를 엉망으로 만드는 상황"**이라고 이해하면 쉽습니다.2. 대표적인 동시성 이..

카테고리 없음 2026.02.02

3way handshake가 뭘까요

TCP 3-Way Handshake란? (연결이 만들어지는 3단계 과정)네트워크에서 **TCP(Transmission Control Protocol)** 는 “연결형(Connection-oriented)” 프로토콜입니다.즉, 데이터를 보내기 전에 **서로 통신할 준비가 되었는지 확인하고 연결을 먼저 성립**시키는 과정이 필요합니다.그 연결을 만드는 대표적인 과정이 바로 **TCP 3-Way Handshake** 입니다. 1. 3-Way Handshake의 목적TCP 3-Way Handshake는 클라이언트와 서버가 통신을 시작하기 전에 아래 내용을 확인하기 위해 수행됩니다.- 서로 **통신 가능한 상태인지 확인**- 데이터 전송을 위한 **연결(Connection) 생성**- 서로의 초기 시퀀스 번호(S..

카테고리 없음 2026.01.26

Spring MVC

Spring MVC 구성요소와 동작 원리Spring MVC는 Spring Framework에서 제공하는 웹 애플리케이션 개발을 위한 MVC(Model-View-Controller) 패턴 기반의 프레임워크다.Spring MVC란?Spring MVC는 DispatcherServlet을 중심으로 동작하는 Front Controller 패턴을 사용한다. 클라이언트의 모든 요청을 DispatcherServlet이 받아서 적절한 컨트롤러로 분배하고, 그 결과를 다시 클라이언트에게 응답하는 구조로 되어 있다.Spring MVC의 핵심 구성요소1. DispatcherServletDispatcherServlet은 Spring MVC의 핵심 구성요소로, Front Controller 역할을 수행한다. 클라이언트로부터 들어..

카테고리 없음 2026.01.19

JPA가 뭐야?

JPA가 뭐야? 📌 목차JPA를 한 문장으로 설명하면전통적인 방식의 불편함ORM이 나온 이유JPA는 자바의 ORM 표준이다JPA가 해주는 3가지영속성 컨텍스트: JPA의 작업 공간엔티티의 4가지 상태JPQL: 객체로 쿼리 작성하기연관관계: 객체끼리 연결하기즉시 로딩 vs 지연 로딩JPA를 쓰는 이유JPA의 단점Spring Data JPA정리 1. JPA를 한 문장으로 설명하면JPA(Java Persistence API)는 자바 애플리케이션에서 객체 관계 매핑(ORM)을 사용하여 관계형 데이터베이스를 쉽게 다룰 수 있도록 해주는 자바 API다.JPA를 사용하면 자바 객체와 데이터베이스 테이블 간의 매핑을 정의하고, 데이터베이스의 데이터를 객체 형태로 다룰 수 있게 된다. 이를 통해 객체 지향적인 접근..

카테고리 없음 2026.01.12

자바의 메모리 구조에 대해서

자바 메모리 구조 완벽 정리자바 프로그램이 실행되면 메모리에서 무슨 일이?자바 프로그램을 실행하면 JVM(자바 가상 머신)이 운영체제로부터 메모리를 할당받는다. 이 메모리를 JVM은 용도에 따라 여러 영역으로 나누어 관리하는데, 이것이 바로 Runtime Data Area다.컴퓨터의 메모리는 한정되어 있기 때문에 어떻게 관리하느냐에 따라 프로그램의 성능이 크게 달라진다. 메모리 관리가 잘 안 된 프로그램은 느려지거나 튕기는 현상이 자주 발생한다. 따라서 자바로 효율적인 프로그램을 만들려면 메모리 구조를 이해하는 것이 필수다.JVM의 메모리 공간은 크게 Method 영역, Stack 영역, Heap 영역 3가지로 구분된다. 데이터 타입에 따라 각 영역에 나눠서 할당되는 구조다.먼저 알아야 할 것: 자바 변..

카테고리 없음 2026.01.07

Spring Security의 인증과 인가

Spring Security 인증과 인가핵심 개념인증(Authentication) = "너 누구야?"로그인, 토큰 확인, 신분 확인 등 사용자가 누구인지 확인하는 과정이다.인가(Authorization) = "너 이거 할 수 있어?"권한 확인, 접근 제어 등 사용자가 특정 작업을 할 수 있는지 확인하는 과정이다.쉬운 비유인증: 놀이공원 입구에서 티켓 확인인가: 각 놀이기구마다 키 제한, VIP 전용 확인Spring Security 동작 흐름사용자 요청 ↓Spring Security 필터 체인 ↓인증 확인 → 실패시 401 ↓권한 확인 → 실패시 403 ↓컨트롤러 실행필터 체인이란컨트롤러에 도달하기 전에 거치는 검문소다. 여러 필터가 순서대로 요청을 검사한다.\차이점1) 인증 -> 인..

카테고리 없음 2026.01.05

자바 Garbage Collection

Garbage Collection Java를 처음 배울 때 가장 신기했던 점 중 하나가 바로 "메모리를 직접 해제하지 않아도 된다"는 것이었습니다. C나 C++처럼 메모리를 수동으로 관리할 필요가 없죠. 이게 가능한 이유가 바로 오늘 다룰 Garbage Collection(GC) 덕분입니다.이번 포스트에서는 GC가 무엇인지, 어떻게 동작하는지, 그리고 왜 중요한지 차근차근 알아보겠습니다. Garbage Collection이란?Garbage Collection은 더 이상 사용하지 않는 객체를 자동으로 찾아내서 메모리에서 제거하는 프로세스입니다. 쉽게 말해, JVM이 자동으로 메모리 청소를 해주는 거죠. 왜 필요할까?프로그램을 실행하다 보면 수많은 객체가 생성됩니다. 근데 모든 객체가 프로그램 끝까지 필요한..

카테고리 없음 2025.12.30

Spring Bean

Spring Bean이란 무엇인가1. Bean이라는 개념이 왜 필요할까?일반적인 자바 애플리케이션에서는 객체를 직접 생성해서 사용한다.UserService userService = new UserService(); 이 방식은 간단하지만, 프로젝트가 커질수록 다음과 같은 문제가 발생한다.객체 생성 시점을 직접 관리해야 한다객체 간 의존 관계가 복잡해진다테스트 시 객체 교체가 어렵다Spring은 이러한 문제를 해결하기 위해객체의 생성과 관리를 프레임워크에게 맡기는 방식을 선택했다.이때 Spring이 대신 생성하고 관리하는 객체를 Bean이라고 한다.2. Spring Bean이란?Spring Bean은 Spring IoC 컨테이너가 생성하고 관리하는 객체다.개발자는 객체를 직접 생성하지 않고,필요할 때 Spr..

카테고리 없음 2025.12.29

정규화란 무엇인가요?

데이터베이스 정규화 완벽 가이드정규화란 무엇인가정규화(Normalization)는 데이터베이스 설계 시 데이터의 중복을 최소화하고 데이터의 무결성을 보장하기 위해 테이블을 구조화하는 과정이다. 왜 정규화가 필요한가정규화를 하지 않으면 발생하는 문제들:데이터 중복 - 같은 정보가 여러 곳에 저장되어 공간 낭비데이터 불일치 - 한 곳에서 수정했는데 다른 곳은 수정 안 됨삽입 이상 - 새로운 데이터를 추가할 때 불필요한 정보도 함께 입력해야 함삭제 이상 - 데이터를 삭제할 때 의도치 않은 정보까지 삭제됨수정 이상 - 같은 데이터를 여러 곳에서 수정해야 함정규화 단계별 설명정규화는 크게 1NF, 2NF, 3NF로 나뉜다. 각 단계를 차근차근 정리한다.함수 종속 (정규화의 핵심 개념)정규화는 함수 종속을 분석하는..

카테고리 없음 2025.12.22

Movie-diary (Spring Boot, JPA 기반 REST API 서버 구현)

영화 감상일지 프로젝트 - React + Spring Boot 연동 과제본 영화에 대한 감상을 기록하고 공유할 수 있는 웹 애플리케이션을 개발했다.프로젝트 개요영화 감상일지는 React와 Spring Boot를 활용하여 구현한 풀스택 웹 애플리케이션이다. 사용자가 영화를 본 후 감상을 기록하고, 다른 사용자들의 기록을 탐색하며, 댓글을 통해 소통할 수 있는 기능을 제공한다.이 프로젝트는 React SPA와 Spring Boot REST API 서버를 연동하는 실습을 목적으로 제작되었다.주요 기능1. 영화 감상 기록하기본 영화에 대한 감상을 기록하는 기능을 구현했다.영화 제목: 영화 제목을 입력한다장르 선택: 액션, 드라마, 코미디, 로맨스, 스릴러 등 다양한 장르 중 선택한다평점: 1점부터 5점까지 별점..

카테고리 없음 2025.12.22