1. 도커 네트워크란 무엇이고, 종류로 무엇이 있는지?
🐳도커 네트워크란?
docker 컨테이너 간의 통신을 관리하고 격리하기 위한 기능을 제공하는 것
docker는 컨테이너화된 애플리케이션을 배포하고 관리하는 데 사용되는 오픈 소스 플랫폼이다. 이러한 컨테이너는 격리된 환경에서 실행되며, 이는 각 컨테이너가 자체 네트워크 인터페이스와 IP 주소를 가질 수 있음을 의미한다.
컨테이너화된 애플리케이션은 여러 개의 컨테이너로 구성될 수 있는데, 이들 컨테이너가 서로 통신하고 데이터를 주고받아야 할 경우 도커 네트워크를 통해 이러한 통신을 쉽게 설정하고 관리할 수 있도록 도와준다. 컨테이너 간의 통신, 호스트와 컨테이너 간의 통신, 외부 네트워크와의 통신을 가능하게 한다.
🐳도커 네트워크의 종류
- bridge 네트워크
- 기본 네트워크 드라이브, 도커가 자동으로 생성하는 기본 네트워크
- 동일한 호스트 내에서 네트워크 설정
- 동일 호스트 내의 컨테이너 간 통신 또는 호스트와 컨테이너 간의 통신에 사용된다.
- host 네트워크
- 호스트의 네트워킹을 직접 사용하여 컨테이너 간의 네크워크 격리 제거
- 호스트에서 제공하는 IP를 직접 할당하여 사용할 수 있다.
- 컨테이너가 호스트의 네트워크 리소스에 직접 접근할 수 있기 때문에 보안 문제가 발생할 수 있다.
- 네트워크 격리가 필요하지 않은 경우에 유용하다.
- none 네트워크
- 네트워크 연결이 없는 상태로 컨테이너를 실행한다.
- 완전히 독립적인 환경을 원할 때 사용한다.
- overlay 네트워크
- 여러 도커 데몬을 연결하고, Docker Swarm 서비스와 컨테이너 간에 노드 간 통신을 가능하게 한다.
- Swarm 모드에서 작동하며, 여러 호스트에 걸쳐 있는 컨테이너 간에 통신할 수 있도록 한다.
2. IoC vs DI
🌸Spring이란?
자바 언어로 엔터프라이즈급 개발을 편리하게 만들어주는 오픈소스 경량급 애플리케이션 프레임워크로, 애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있도록 하는 것
🍔IoC(Inversion of Control) : 제어의 역전
사용할 객체를 직접 사용하지 않고, 객체의 생명주기 관리를 외부(스프링 컨테이너)에 위임하는 것
제어의 역전을 통해 의존성 주입, 관점 지향 프로그래밍이 가능해진다. 이에 따라 개발자는 객체의 제어권을 컨테이너로 넘기고 객체의 생명 주기 관리 등의 복잡한 요소들을 신경 쓰지 않고, 비즈니스 로직에만 집중할 수 있게 된다.
🍟DI(Dependency Injection) : 의존관계 주입
제어 역전의 방법 중 하나로, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식
롬복을 이용한 생성자 주입이 가장 좋은 의존성 주입 방법이다.
롬복의 @RequiredArgsConstructor 어노테이션은 final이 붙은 필드의 생성자를 자동으로 생성해 준다.
@RestController
@RequiredArgsConstructor
public class DIController {
privite final MyService myService;
//Controller Codes
}
3. Doker vs 가상머신
💻가상머신
- 가상머신은 하이퍼바이저가 호스트 OS 위에서 여러 게스트 OS를 실행한다.
- 각 VM은 자체 운영체제를 포함하며, 그 위에 애플리케이션이 실행된다.
- VM은 하드웨어 수준에서 가상화되며 각각 독립된 운영체제를 가진다.
🐳Docker
- 호스트 OS의 커널을 공유하며 컨테이너는 사용자 공간에서 독립된 환경을 제공한다.
- 컨테이너는 OS 레벨에서 가상화되며 독립된 파일 시스템, 네트워크 인터페이스를 가진다.
- 각 컨테이너는 애플리케이션과 그 종속성만을 포함한다.
4. Docker File vs Docker Image vs Docker Container
💚Docker File
서버 운영 기록을 코드화한 것
💛Docker Image
운영 기록을 실행할 시점
💙Docker Container
이미지에 실행 시점에 수정되어야 할 정보들을 더한 것
이미지를 실행해서 만들어지는 결과물
'공부 > f-lab' 카테고리의 다른 글
f-lab 14주차 (0) | 2024.06.18 |
---|---|
f-lab 11주차 (0) | 2024.05.28 |
f-lab 10주차 (0) | 2024.05.23 |
f-lab 9주차 (0) | 2024.05.19 |
f-lab 8주차 (0) | 2024.05.07 |