비트부터 알아가는 컴퓨터 네트워크 - 무선 네트워킹
무선 통신은 IEEE 802.11 프로토콜을 사용하여 wi-fi로 알려져 있으며, 다양한 버전과 기능 차이가 있다. 또한 Wi-Fi 6 기술은 더 많은 디바이스를 연결하고 효율적인 네트워크를 제공하며, 무선 네트워크에 대한 다양한 구성과 채널의 활용도 설명되어 있다.
0개의 댓글
0개의 질문
깐지닉
백엔드 개발자 정진우입니다. (https://github.com/comolove)
무선 통신은 IEEE 802.11 프로토콜을 사용하여 wi-fi로 알려져 있으며, 다양한 버전과 기능 차이가 있다. 또한 Wi-Fi 6 기술은 더 많은 디바이스를 연결하고 효율적인 네트워크를 제공하며, 무선 네트워크에 대한 다양한 구성과 채널의 활용도 설명되어 있다.
0개의 댓글
0개의 질문
NAT는 하나의 IP 주소를 다른 IP 주소로 변환하여 보안 처리와 IPv4의 부족한 공간 보존을 위해 사용되며, 라우터나 방화벽, 게이트웨이에서 동작한다. NAT를 통해 네트워크의 주소를 숨기고 private IP를 사용할 수 있으며, port forwarding을 통해 특정 서버로 요청을 전달할 수 있다.
0개의 댓글
0개의 질문
TCP/IP 기반의 디바이스는 IP 주소, 서브넷 마스크, 게이트웨이, 네임 서버를 관리하기 위해 DHCP를 사용한다. DHCP 동작 방식은 클라이언트가 DHCP 서버에 요청하고 응답을 받아 네트워크 구성을 자동으로 설정하는 것을 포함한다.
0개의 댓글
0개의 질문
컴퓨터 네트워크에서 DNS는 IP 주소를 사람이 이해하기 쉬운 도메인 네임으로 변환하여 사용되며, 여러 종류의 DNS 서버가 있어 하나의 서버에서 다양한 역할을 수행할 수 있다. 또한, A record, CNAME record, MX record 등 다양한 DNS 레코드 유형을 통해 도메인과 IP 주소를 매핑하고 서비스를 제어할 수 있다.
0개의 댓글
0개의 질문
컴퓨터 네트워크에서 전송 계층의 멀티플렉싱과 디멀티플렉싱, TCP 세그먼트 구성 및 헤더 정보, TCP 통신의 handshaking과 연결 상태에 대해 알아보았습니다. 또한, TCP와 UDP의 차이점, 방화벽의 역할 및 전송 계층 방화벽에 대한 설명도 포함되어 있습니다.
0개의 댓글
0개의 질문
서브넷팅은 큰 네트워크를 작고 개별적인 서브넷으로 나누는 것으로, CIDR을 사용해 네트워크 ID를 효율적으로 관리한다. 라우터는 데이터 패킷을 받아 목적지 IP 주소에 따라 적절한 경로로 전송하며, 라우팅 테이블은 목적지 네트워크, 다음 홉까지의 경로 등의 정보를 포함한다.
0개의 댓글
0개의 질문
데이터 링크 계층은 하드웨어와 물리적 계층을 추상화하여 Ethernet 프로토콜을 사용해 충돌 도메인 문제를 해결하고, MAC 주소를 통해 각 노드를 식별한다. MAC 주소는 전세계적으로 고유한 48비트 주소로, 첫 옥텟의 LSB에 따라 unicast, multicast, broadcast 방식으로 데이터 전송한다.
0개의 댓글
0개의 질문
물리적 계층에서는 데이터를 유선으로 전송하며, 구리 선을 통해 전기 신호를 주고받거나 광섬유를 이용하여 빛으로 데이터를 전달한다. 네트워크 포트와 패치 패널을 활용해 디바이스와 네트워크를 연결하여 송수신할 수 있다.
0개의 댓글
0개의 질문
MAC 주소와 IP 주소는 각 디바이스마다 고유하며, IP 데이터그램의 헤더에는 다양한 정보가 담기며 IPv4와 IPv6가 널리 사용된다. IP 데이터그램은 조각화되어 전송되는 경우, Identification과 Fragment Offset 필드를 활용하여 데이터를 정확히 조립한다.
0개의 댓글
0개의 질문
MySQL 8.0에서는 데이터 압축이 쿼리 성능부터 백업 및 복구 시간까지에 영향을 미친다. 페이지와 테이블 압축 방식에 따른 장단점과 KEY_BLOCK_SIZE 설정, Unzip_LRU 리스트 활용 등 세심한 설정과 최적화가 필요하다.
0개의 댓글
0개의 질문
트랜잭션은 데이터 정합성을 위해 사용되며, MyISAM, MEMORY 엔진은 지원하지 않고 InnoDB는 지원한다. MySQL 8.0에서는 백업 락이 도입되어 백업 시 성능에 영향을 덜 주도록 개선되었다.
0개의 댓글
0개의 질문
MyISAM 스토리지 엔진은 키 캐시를 통해 쿼리를 빠르게 처리할 수 있지만, 디스크 I/O 최적화 전략이 없다. InnoDB 엔진은 프라이머리 키에 의해 데이터를 클러스터링하여 저장하지만, MyISAM 엔진은 Insert 순서대로 저장된다. MySQL 로그 파일을 이용하면 에러 원인을 찾는 것이 가능하며, 슬로우 쿼리 로그는 시간 이상 소요된 쿼리를 기록하여 튜닝에 용이하다.
0개의 댓글
0개의 질문
InnoDB 스토리지 엔진의 특징을 살펴보면, PK를 기준으로 클러스터링되어 저장되고, 외래 키 지원과 MVCC(Multi Version Concurrency Control) 기능이 있습니다. 또한, InnoDB는 데드락 감지와 자동 장애 복구 기능을 제공하며, 언두 로그를 통해 데이터 변경 이전 상태를 관리하는 등 다양한 성능 최적화 방법을 가지고 있습니다.
0개의 댓글
0개의 질문
MySQL 서버는 MySQL 엔진과 스토리지 엔진으로 구성되며, 각각이 다른 역할을 한다. MySQL 8.0부터는 쿼리 캐시가 완전히 제거되었고, Percona Server에서 사용 가능한 쓰레드 풀은 동시 처리 요청을 최적화하여 자원 소모를 줄인다.
0개의 댓글
0개의 질문
카프카에서는 '최소 한 번' 데이터 전달을 위해 멱등적 프로듀서와 트랜잭션을 활용하며, 트랜잭션은 '정확히 한 번'을 보장한다. 트랜잭션은 원자적 다수 파티션 쓰기를 통해 데이터 처리와 오프셋 커밋을 원자적으로 수행하여 중복 처리 문제를 해결한다.
0개의 댓글
0개의 질문
카프카는 다양한 신뢰성 활용 사례가 있으며, 신뢰성 보장을 위해 여러 방법을 제공한다. 브로커 설정과 프로듀서, 컨슈머의 올바른 사용으로 신뢰성이 유지되며, 에러 처리와 모니터링을 통해 시스템의 안정성을 검증할 수 있다.
0개의 댓글
0개의 질문
MySQL 8.0부터는 권한을 Role로 관리하며 사용자 계정은 IP 주소와 호스트명까지 고려하여 생성된다. 시스템 계정과 일반 계정으로 나뉘며, 비밀번호 관리 및 권한 설정에 대한 다양한 옵션이 제공된다.
0개의 댓글
0개의 질문
카프카의 내부 매커니즘은 주로 주키퍼와 브로커 간의 관계를 다루며, 클러스터 멤버십과 컨트롤러의 역할에 대해 설명하고 있다. 또한, KRaft 컨트롤러에 대한 새로운 설계와 복제 기능, 리더 선출 과정 등을 소개하고 있다.
0개의 댓글
0개의 질문
카프카에서는 애플리케이션 내부에서 직접 관리 명령을 통해 AdminClient를 사용하여 카프카를 관리할 수 있으며, 비동기적이고 최종적 일관성을 가지는 API를 제공한다. AdminClient의 메서드들은 Options 객체를 인수로 받아 다양한 설정을 통해 사용되며, 토픽 설정, 브로커 설정 등을 제어할 수 있다.
0개의 댓글
0개의 질문
FastAPI와 SQLAlchemy를 사용한 여피 프로젝트에서 세션 처리 최적화를 위해 AsyncSession을 테스크별로 사용하여 다중 스레드 환경에서 발생하는 문제를 해결하였다. 이러한 변경으로 인해 API의 소요 시간을 61,683ms에서 35,187ms로 개선되었으며, 비동기/병렬 처리를 통해 이미 I/O time을 줄여주고 있어 연산 부분이 병목이 되어 더 많은 최적화가 필요하다는 것을 확인할 수 있다.
0개의 댓글
0개의 질문