[면접 대비] 단일 INSERT와 Batch INSERT, 성능과 처리 방식의 차이는?
·
면접 대비
단일 INSERT와 Batch INSERT, 성능과 처리 방식의 차이는?데이터베이스에 데이터를 삽입할 때, 단일 INSERT와 Batch INSERT는 각기 다른 방식으로 동작하며, 성능과 처리 방식에도 차이가 있습니다. 개발 환경이나 트랜잭션 관리, 데이터 볼륨 등에 따라 적절한 방식을 선택하는 것이 중요합니다.이 글에서는 두 방식의 동작 원리와 내부 처리 방식, 장단점, 그리고 실제 프로젝트에서의 적용 사례를 살펴보겠습니다. INSERT 작업의 기본 개념단일 INSERT는 한 번에 하나의 레코드만 데이터베이스에 삽입하는 방식입니다.Batch INSERT는 여러 개의 INSERT 명령을 하나의 배치(batch)로 묶어 한 번에 데이터베이스에 전달하는 방식입니다.데이터의 양과 빈도, 트랜잭션 처리, 네트..
[Q] Optional이란? 언제쓰고 어떻게 쓰는 것일까?
·
SPRING
Optional이란? 언제쓰고 어떻게 쓰는 것일까?Java에서 null 참조는 흔한 버그의 원인이며, 이를 방지하기 위해 Optional 클래스가 Java 8에 도입되었습니다. Optional은 “값이 있거나 없을 수 있다”는 의도를 명시적으로 표현해 주며, null 체크를 깜빡했을 때 발생하는 NullPointerException(NPE) 를 예방합니다. 이 글에서는 Optional의 개념부터 생성 방법, 주요 API, 실제 활용 예시, 그리고 주의사항과 사례까지 살펴보겠습니다. 왜 Optional이 필요한가?null의 문제1) NullPointerExceptionString name = user.getName(); // user가 null이면 NPE 발생! 2) 수많은 null 검사if (user !..
[Q] 로그인 인증 전략에 대해서: 쿠키, 세션, Spring Security
·
SPRING
쿠키, 세션, Spring Security를 활용한 로그인 인증 전략은 각각 어떤 장단점이 있을까?  웹 애플리케이션에서 로그인과 인증은 보안의 핵심 요소입니다.로그인 구현 방법에는 여러 가지가 있는데, 대표적으로 쿠키 기반 인증, 세션 기반 인증, 그리고 스프링 시큐리티를 활용한 방법이 있습니다.이 글에서는 각 방법의 기본 개념, 장단점, 그리고 스프링 시큐리티가 어떻게 동작하는지 알아보겠습니다. 쿠키 기반 인증쿠키(Cookie)는 클라이언트(웹 브라우저)에 저장되는 작은 데이터 조각입니다.서버는 응답 헤더에 쿠키를 설정하여 클라이언트에게 전달하며, 이후 클라이언트는 요청 시 이 쿠키를 함께 전송합니다.1) 장점경량성: 서버의 저장 공간을 사용하지 않고 클라이언트에 데이터를 저장하므로 서버 부담이 적습..
[면접 대비] 가비지 컬렉션 알고리즘의 종류는?
·
면접 대비
가비지 컬렉션 알고리즘의 종류는?자바와 같은 언어에서는 메모리 관리를 개발자가 직접 하지 않고, 가비지 컬렉션(GC)이라는 자동 메모리 관리 기능을 통해 수행합니다.GC는 사용하지 않는 객체를 식별하고 해제하여 메모리 누수를 방지하는 중요한 역할을 합니다. 이 글에서는 GC의 기본 동작 원리와 주요 알고리즘, 각 알고리즘의 특징과 적합한 사용 환경, 그리고 Heap 영역과의 관계를 설명하고, 면접에서 나올 수 있는 질문과 답변을 살펴보겠습니다. 가비지 컬렉션의 동작 원리가비지 컬렉션은 JVM이 실행되는 동안 Heap 영역에 할당된 객체들 중 더 이상 참조되지 않는 객체들을 자동으로 찾아 메모리에서 제거합니다.주요 동작 과정은 다음과 같습니다.객체 할당객체는 Heap 영역에 할당됩니다.객체 참조 추적JVM..
[면접 대비] 로드 밸런싱이란
·
면접 대비
로드 밸런싱은 무엇이고 어떻게 적용하나?로드 밸런싱은 여러 서버나 리소스에 트래픽을 고르게 분산시켜 시스템 전체의 효율성과 가용성을 높이는 기술입니다. 이 글에서는 로드 밸런싱의 기본 개념, 다양한 방식 중 라운드 로빈 방식의 특징 및 장단점, 그리고 실제 적용 사례와 예상 면접 꼬리 질문 및 모범 답변을 살펴봅니다. 로드 밸런싱의 개념로드 밸런싱은 클라이언트의 요청이나 네트워크 트래픽을 여러 서버에 분산시켜 한 서버에 과부하가 걸리지 않도록 조정하는 기술입니다.주요 목적은 다음과 같습니다.가용성 향상한 서버에 장애가 발생해도 다른 서버가 서비스를 계속 제공할 수 있도록 하여, 전체 시스템의 다운타임을 줄입니다.성능 최적화트래픽을 여러 서버에 분산시켜 한 서버에 과부하가 걸리지 않게 하며, 응답 속도와 ..
[면접 대비] 불변 객체는 어떻게 만들고 장점은 무엇일까?
·
면접 대비
불변 객체는 어떻게 만들고 장점은 무엇일까?소프트웨어 개발, 특히 멀티스레드 환경에서는 데이터 일관성과 안전성이 매우 중요합니다.이때 한 번 생성된 후 내부 상태가 변하지 않는 불변 객체(Immutable Object)가 큰 역할을 합니다. 이 글에서는 불변 객체가 무엇인지, 어떻게 만드는지, 그리고 그 장단점과 면접에서 나올 수 있는 질문들에 대해 살펴보겠습니다. 불변 객체란 무엇인가?불변 객체는 생성 이후 내부 상태나 데이터가 절대 변경되지 않는 객체입니다. 한 번 값이 설정되고 객체의 상태를 바꾸려면 반드시 새로운 객체를 생성해야 합니다.대표적인 예로, Java의 String, Integer, BigDecimal 등이 있습니다. 불변 객체를 사용하는 이유는 주로 멀티스레드 환경에서 동기화 문제를 피..
[Q] BindingResult를 사용하는 이유는?
·
SPRING
BindingResult를 사용하는 이유는?스프링 공부를 하면서 BindingResult에 대해 이러한 궁금증이 들었습니다.왜 사용하고 어떻게 사용하는지 궁금해서 이와 관련된 내용들을 공부해 보았습니다. 웹 애플리케이션에서는 사용자가 입력한 데이터를 서버에서 검증하는 것이 필수적입니다스프링 부트에서는 @Valid 어노테이션을 통해 폼 데이터의 유효성을 검사할 수 있으며, 이와 함께 BindingResult를 사용해 검증 오류를 캡슐화하고 처리할 수 있습니다.이 글에서는 @Valid와 BindingResult의 역할 및 작동 원리를 설명하고, BindingResult를 사용했을 때와 사용하지 않았을 때 발생하는 차이점을 알아보겠습니다.@Valid와 BindingResult의 기본 개념1) @Valid 어노..
[면접 대비] 복합 인덱스 사용 시 주의사항은 무엇일까?
·
면접 대비
복합 인덱스 사용 시 주의사항은 무엇일까?데이터베이스 성능 최적화를 위해 인덱스를 활용하는 것은 흔한 전략입니다.그러나 인덱스가 항상 좋은 것만은 아니며, 특히 복합 인덱스(Composite Index)의 경우 단순 인덱스와는 다른 특징과 한계가 있습니다. 이 글에서는 인덱스의 기본 개념과 복합 인덱스의 정의, 단일 인덱스와의 차이, 그리고 복합 인덱스를 사용할 때 주의해야 할 점과 단점과 함께 면접 예상 질문과 답변 살펴보겠습니다.인덱스 기본 개념 및 복합 인덱스 정의인덱스(Index)데이터베이스에서 테이블의 검색 속도를 향상시키기 위해 특정 컬럼에 대해 생성하는 자료구조입니다.장점: 쿼리 성능 향상, 빠른 검색 결과를 제공합니다.단점: 데이터 변경(INSERT, UPDATE, DELETE) 시 추가 ..