아키텍처 23

[Network] DHCP

DHCP 서버DHCP(Dynamic Host Configuration Protocol) 서버는 네트워크에 연결된 장치에게 IP 주소, 서브넷 마스크, 게이트웨이, DNS 등 네트워크 설정 정보를 자동으로 할당해주는 서버 1. 왜 필요한가?IP 주소를 수동으로 하나씩 설정하면 번거롭고 실수도 생김수백, 수천 대의 장치에 자동으로 IP 할당하려면 DHCP가 필수 2. DHCP 동작 흐름DORA 과단계과정🔍 D - Discover클라이언트가 “IP 주소 줄 사람 있나요?” 브로드캐스트📢 O - OfferDHCP 서버가 “내가 줄게! 이 IP 어때?”🙋 R - Request클라이언트가 “좋아! 그 IP 주세요!” 요청✅ A - AcknowledgeDHCP 서버가 “알겠어. 이 IP 썼다고 기록함” 3. ..

[Network] NAT(Network Address Translation)

NAT(Network Address Translation)네트워크 IP 주소를 다른 주소로 변화해주는 기술주로 사설 IP 공인 IP 변환에 이용 1. 왜 필요할까?사설 IP는 인터넷에서 직접 통신할 수 없음사설 IP는 내부망 전용 (예: 192.168.x.x(C), 10.x.x.x(A), 172.16.x.x ~ 172.31.x.x(B))인터넷에서는 공인 IP가 필요함즉, 여러 대의 PC가 사설 IP를 써도 NAT를 통해 공인 IP 하나로 인터넷 접속이 가능함 2. 예시 상황NAT은 IP뿐 아니라 포트 번호도 기억해 두었다가 정확히 어떤 내부 장치로 전달해야 할지 추적함.내부 PC는 사설 IP (192.168.0.2)공유기는 NAT를 통해 이 요청을 공인 IP (203.0.113.1)로 바꿔서 외부에 전..

[Network] 네트워크 어댑터

네트워크 어댑터는 컴퓨터가 네트워크(예: 인터넷, LAN 등)에 연결될 수 있도록 해주는 하드웨어 또는 소프트웨어 장치를 말합니다 네트워크 어댑터명령어ipconfigipconfig /all네트워크 어댑터 종류 1. 이더넷 어댑터 (Ethernet Adapter)유선 네트워크(LAN) 연결에 사용2. 무선 LAN 어댑터 (Wireless LAN Adapter / Wi-Fi Adapter) 특징무선 네트워크(Wi-Fi)에 연결노트북, 태블릿, 스마트폰에 내장 또는 USB형 외장 장치로 사용예시Wireless LAN adapter Wi-Fi노트북/PC의 실제 무선 랜카드Wi-Fi 공유기와 연결할 때 사용Wireless LAN adapter 로컬 영역 연결* 2Windows가 내부적으로 생성한 가상 어댑터=>..

[VirtualBox] 네트워크 설정

가상 머신(VM) 네트워크 설정은 주로 브리지(Bridged), NAT(Network Address Translation), 호스트 전용(Host-Only) 세 가지 방식 중 하나를 선택하여 구성합니다. 각 방식은 가상 머신이 외부 네트워크와 상호 작용하는 방식에 차이가 있습니다. 네트워크 설정1. 브리지(Bridged) 방식:특징가상 머신이 호스트 머신과 동일한 네트워크 대역에 속하도록 설정합니다.호스트 머신과 마찬가지로 공유기에서 IP 주소를 할당받아 외부 네트워크에 직접 연결됩니다.독립적인 네트워크 환경을 구축할 때 유용합니다.사용 예 개발 중인 서버를 로컬 네트워크에서 접근 테스트할 때사내 네트워크에 VM을 마치 별도 서버처럼 붙이고 싶을 때2. NAT 방식: 특징가상 머신이 호스트 머신의 네트..

[Kafka] Consumer

Kafka의 기본 원칙:“하나의 파티션은 같은 group 내에서 오직 하나의 consumer만 읽을 수 있다.” Q. 토픽을 구독하는 Consumer의 Group ID🔹 1. group.id가 같으면?→ Kafka는 해당 Consumer들을 하나의 Consumer Group으로 인식→ 파티션 수만큼 분할해서 각각에게 메시지를 보냄→ 메시지 한 개는 오직 하나의 Consumer만 읽음 🔹 2. group.id가 다르면?→ Kafka는 각 group이 전혀 다른 독립적인 소비자라고 간주→ 동일한 메시지를 모든 group이 각각 읽음 (브로드캐스트처럼) Q. Group ID가 같은 여러 개의 Consumer 가 어떻게 파티션을 나눠서 메세지를 받을까?🔹 Kafka에서는 같은 group.id를 가진 ..

[Messaging] RabbitMQ 도입편

관련 나의 블로그 글분산 메세지 큐 1편 - 읽은 책https://jm-baek.tistory.com/325분산 메세지 큐 2편 - 읽은 책https://jm-baek.tistory.com/330[Messaging] RabbitMQ 개념편https://jm-baek.tistory.com/363[Messaging] RabbitMQ 도입 구상편https://jm-baek.tistory.com/358✅ [Messaging] RabbitMQ 도입편https://jm-baek.tistory.com/392 혼자 고민하고 정리해서 서툴고 틀린 방향이 있을 수 있습니다.좋은 충고와 질문은 어제든 감사드립니다. 🙇‍♂️ 빠른 시일 내에 작성을 하도록 하겠습니다.....🙇‍♂️ 예시 코드Library여러 블로..

[Messaging] RabbitMQ 도입 구상편

관련 나의 블로그 글분산 메세지 큐 1편 - 읽은 책https://jm-baek.tistory.com/325분산 메세지 큐 2편 - 읽은 책https://jm-baek.tistory.com/330[Messaging] RabbitMQ 개념편https://jm-baek.tistory.com/363✅ [Messaging] RabbitMQ 도입 구상편https://jm-baek.tistory.com/358[Messaging] RabbitMQ 도입편https://jm-baek.tistory.com/392 혼자 고민하고 정리해서 서툴고 틀린 방향이 있을 수 있습니다.좋은 충고와 질문은 어제든 감사드립니다. 🎯 빠른 정리아래 순서대로 고민하고 내용을 정리했습니다. 🙋 메세지를 전송하기 위해 어떠한 아키텍처(..

[Messaging] RabbitMQ 개념편

관련 나의 블로그 글분산 메세지 큐 1편 - 읽은 책https://jm-baek.tistory.com/325분산 메세지 큐 2편 - 읽은 책https://jm-baek.tistory.com/330✅ [Messaging] RabbitMQ 개념편https://jm-baek.tistory.com/363[Messaging] RabbitMQ 도입 구상편https://jm-baek.tistory.com/358[Messaging] RabbitMQ 도입편https://jm-baek.tistory.com/392 혼자 고민하고 정리해서 서툴고 틀린 방향이 있을 수 있습니다.좋은 충고와 질문은 어제든 감사드립니다. Why Messagig System?🙋 통신 방법으로 여러 가지가 있는데 왜 메세지 큐 기반의 통신을..

[DevOps] 도커 도입편

왜 (나는) 도커를 도입하려고 할까?업무를 하면서 아래와 같은 상황이 발생할 수 있다(했었다).테스트 서버의 OS가 EOS 되고, 다른 OS로 변경이 필요할 때특정 고객의 서버 OS가 무엇인지에 따라 솔루션이 해당 OS에 문제 없이 동작하는지 준비해야할 때솔루션 설계로 여러 서비스가 실행될 때등등이러한 상황에서 개발자(?)는 아래와 같은 준비를 해야한다.배포 및 테스트 서버에 명령어를 하나씩 입력해서 필요한 프로그램을 설치 및 세팅아니면, 특정 OS에 맞춰 스크립트를 실행하면 설치되도록 스크립트를 작성어떠한 방법이든 준비하는데 시간이 생각보다 많이 소요된다.만약 준비하면서 설치에 오류가 발생하면 쉽지않다.(눈물 난다. 😂) 고생을 하면서 느낀점이 도커를 사용해서 설치하면 쉽게 되지 않을까 생각했지만,팀..

아키텍처/DevOps 2024.10.19

[DevOps] 모니터링 시스템 도입기 with Grafana

관련 블로그 글Prometheus+Grafana+OpenTelemetry를 이용한 k8s 모니터링https://jm-baek.tistory.com/351 왜 모니터링 시스템?※ 개인적인 의견을 기반으로 작성해 보았습니다..!!! 현재 상황회사의 기존 플랫폼 서비스 아키텍처는 모놀리식 구조로 되어있지만,현재 새로운 플랫폼 서비스를 개발하면서 도메인 별로 서비스를 나누게 되었다. 문제점테스트 서버에 배포된 애플리케이션의 로그를 확인하려면, 매번 서버에 접속해서 명령어로 확인을 하는 불편함이 있다(서비스가 여러 개로 되어 있어 하나씩 로그를 vi 편집기 등으로 확인한다.)특정 고객사에서는 설치된 서버의 리소스 상태를 확인할 수 있는 대시보드 형태의 페이지를 원하기도 했다.엔지니어 및 개발자 입장에서 서버에 ..

아키텍처/DevOps 2024.10.19