분류 전체보기
[Spring] 생성자 주입을 사용해야 하는 이유
의존성 주입 방법의 종류 먼저 스프링에서 의존성을 주입하는 방법은 다음과 같이 3가지 방법이 있습니다. 생성자 주입 (Constructor-based dependency injection) Setter 주입 (Setter-based dependency injection) 필드 주입 (Field-based dependency injection) 이 중에서, 생성자 주입 사용이 가장 추천 되는 이유 1. final 선언이 가능합니다 (immutable) 생성자 주입 시, 의존성 주입이 클래스 인스턴스화 중에 시작되므로 final 선언을 할 수 있다. 따라서 객체를 변경이 불가능한 immutable(불변) 하게 할 수 있습니다. 반면에, 필드 주입 혹은 Setter 주입의 경우 final 선언을 할 수 없어,..
[Linux] 리눅스 스왑 파티션 생성 및 삭제하기
AWS EC2 프리티어로 쓰다 보면 메모리가 1GiB라 자주 인스턴스가 중지되는 현상이 발생합니다. 이때 스왑 파티션을 할당해두면 RAM이 아닌 디스크 용량 일부를 가상 메모리 공간으로 할당해서 실제 메모리 공간이 부족하면 혼용해서 사용하게 됩니다. 다음은 스왑 설정하는 방법입니다. 스왑 파티션이란? 스왑 파티션은 메모리 (RAM)가 부족할 때, 추가적으로 실행되는 프로그램은 메모리가 아닌 스왑 파티션에서 실행. 즉 메모리 공간이 부족할 때 프로그램이 실행 가능하도록 예비 공간의 역할을 수행. 권장되는 스왑 공간 크기 RAM ≤ 2GB일 경우: RAM * 2배 2GB < RAM < 32GB 일 경우: 4GB + (RAM - 2GB) RAM ≥ 32GB일 경우, RAM * 1배 샘플 서버 환경 참고로 아래..
[Docker] Docker Image Layer
Immutable Infrastruture? Docker Image Layer. Union mount? CoW? Immutable Infrastructure란? (불변 인프라) 한번 설정하고 변경하지 않는 이미지 기반의 애플리케이션 배포 패러다임을 뜻함. 호스트 OS와 서비스 운영 환경(서버 프로그램, 소스코드, 컴파일된 바이너리)들을 분리하여 한번 설정한 서버 환경은 변경하지 않는다. 서비스 운영환경을 이미지로 생성한 뒤 서버에 배포하여 실행하며, 서비스가 업데이트 되면 운영환경 자체를 변경하지 않고 이미지를 새로 생성하여 배포한다. 서비스 운영환경 이미지를 한번 쓰고 버리는 패러다임이다. Docker Image Immutable image. Docker Image는 파일 시스템들의 layer로 구성된..
[Docker] VM vs Container
공통점 VM, Container 모두 가상화 기술. 가상화란 컴퓨팅 리소스의 추상화이며, 한정된 컴퓨팅 리소스를 좀 더 효율적으로 사용하기 위해서 사용. 또한, 둘다 이미지화하여 일관된 환경을 제공할 수 있다는 점과 버전 관리를 통해 변경 추적 가능하다 등의 공통점이 존재. 차이점 다만 VM (가상 머신)과 Container는 각각 가상화하는 대상과 목적에 차이가 있음. 이러한 특징으로 인해서 사용되는 목적에 차이가 있다. VM VM은 물리적인 서버에 하이퍼바이저를 사용해서, 여러 개의 독립된 가상 머신을 실행시키는 형태. 하이퍼바이저는 인스턴스화 중에 물리적 하드웨어 리소스를 독점적으로 사용할 수 있도록 가상 머신에 할당하는 역할을 수행. 각각의 가상 머신은 자체의 운영체제와 커널을 가지며, 각각은 ..