QnA. Memory Paging과 Sementation 차이메모리 공간을 분리하는 방법으로 페이징과 세그먼트가 있습니다. 가장 큰 차이점은 페이징은 고정된 크기로 메모리 공간을 나누며, 세그멘테이션은 서로 다른 크기로 메모리 공간을 다룹니다.두 방식에서 생기는 내부 단편화, 외부 단편화 문제가 있으며, 세그멘테이션 방식에서 세그먼트 테이블에 세그먼트 번호, 시작 주소, 세그먼트 크기 정보를 가지고 있어 페이징 테이블보다 메모리 비용과 관리 비용이 높습니다. 가상 메모리란실제 물리적 메모리의 크기를 넘어서는 메모리 공간을 제공하기 위해 사용되는 메커니즘이다.(메모리에 로드된) 실행 중인 프로세스가 가상의 공간을 참조하여 더 큰 물리 메모리를 갖고 있는 것처럼 사용할 수 있도록 해줍니다. 내가 실행하고자 ..
목표Spring에서 Bean을 사용하는 이유 이해하기Spring이 동시 요청을 처리하는 방법 이해하기QnA. Spring에서 Bean을 사용하는 이유1. 객체의 효율적인 관리 (메모리 절약 & 중복 생성 방지)동일한 역할을 수행하는 객체를 하나만 만들어서 관리할 수 있다.JVM의 Heap 메모리에 객체를 효율적으로 관리한다.만약, Spring Bean 객체를 사용하지 않는다면, 각각의 클래스마다 동일한 객체를 new 연산으로 생성해서 사용해야 한다. → 이는 비효율적인 메모리 낭비로 이어진다. 2. 편리한 의존성 주입 (Dependency Injection, DI)간편하게 의존성을 주입할 수 있다.등록된 객체는 Spring Framework가 자동으로 관리해 주며, 생성자 주입, 필드 주입 등의 방법으로..
MySQL 기본적인 Locking & 격리 수준MySQL의 기본적인 Lock기본적으로 REPEATABLE READ 격리 수준을 사용한다.MVCC (Multi-Version Concurrency Control)을 활용하여 데이터 일관성을 유지합니다.트랜잭션이 진행되는 동안 동일한 데이터를 읽으면 변경된 데이터는 보이지 않습니다. (커밋된 새로운 트랜잭션의 데이터가 반영되지 않음)SELECT 시 Read Lock 걸지 않음select 쿼리는 잠금을 걸지 않음MVCC를 사용해 트랜잭션이 시작된 시점의 데이터 스냅샷 반환UPDATE / DELETE 시 Record Lock (행 단위)행에 대해 Record Rock을 획득합니다.해당 행이 다른 트랜잭션에서 수정되지 않도록 방지GAP Lock (Phantom Re..
Segment와 Packet 정보 차이결론Segment는 전송 계층에서 다루는 데이터 단위Packet은 네트워크 계층에서 다루는 데이터 단위1. 애플리케이션이 데이터를 보냅니다. (웹 요청)2. 전송 계층에서 TCP/UDP가 데이터를 세그먼트로 나눕니다.2-1. TCP의 경우 데이터 흐름 제어, 오류 검출 등을 위한 헤더를 추가합니다.3. 네트워크 계층에서 IP가 Segment를 감싸고 목적지 주소를 추가합니다.3-1. IP 헤더를 추가하여 Packet을 생성합니다.4. 패킷이 네트워크를 통해 전송된다. Internet Layer3계층은 (네트워크 계층, Internet Layer, Packet) 데이터가 서로 다른 네트워크 간에 전달될 수 있도록 경로를 결정하고 (IP 주소 기반) 패킷을 라우팅 하는 ..
QnA. 생성자 주입과 필드 주입의 차이 생성자 주입은 객체 생성 시 의존성이 즉시 주입된다.반면, 필드 주입은 일단 빈 객체를 먼저 생성하고, 스프링 컨테이너가 초기화된 이후에 관련 의존성들이 주입된다. 생성자 주입 추가 설명@Componentpublic class FooBean { private final FooService fooService; @Autowired public FooBean(FooService fooService) { this.fooService = fooService; }}생성자 주입은Spring Container가 FooBean을 생성하기 전에 FooService 빈을 먼저 찾습니다.FooService 빈이 컨테이너에 있는 경우, 이를 Foo..
오늘은 컴퓨터 환경과 클라우드를 공부하면 한 번쯤은 들어봤을 법한 단어를 정리하고자 합니다.IaaS, PaaS, SaaS 가 무엇이며, 어떠한 차이가 있는지, 대표적인 예시가 무엇이 있는지 알아보겠습니다. laaS, PaaS, SaaS클라우드 서비스 공급자가 컴퓨팅 자원을 어느 단계까지 고객에 서비스할 것인가를 기준으로 클라우드 서비스 모델을 구분한다. (laaS, PaaS, SaaS) IaaSInfrastructure-as-a-Service컴퓨터, 네트워크, 스토리지와 같은 인프라 자원을 제공한다. 대표적인 예시로 Aws EC2, RDB, S3가 존재한다. 우리가 AWS에서 사용한 Public IP도 여기에 해당한다. PaaSPlatform-as-a-ServiceIaas 서비스와 마찬가지로 인프라를 ..
목표ServletContainer와 SpringContainer의 차이 이해하기ServletServlet이란?웹 요청과 응답의 흐름을 간단한 메서드 호출로 처리할 수 있게 도와주는 Java Program이다.Servlet은 HTTP 요청을 받아 처리한 후, 응답을 반환하는 역할을 한다.Servlet are responsible for accepting a request, processing it, and sending a response back.public interface Servlet { void init(ServletConfig config) throws ServletException; void service(ServletRequest req, ServletResponse res) th..