Profile img

자손킴

@jasonkim@hackers.pub · 11 following · 18 followers

도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문 #3-1

자손킴 @jasonkim@hackers.pub

이 글은 네트워크 계층(L3) 프로토콜의 핵심인 IP에 대해 심도 있게 다룬다. L3 라우터의 역할부터 시작하여, IPv4의 구조, IP 단편화 과정, 그리고 PMTUD(Path MTU Discovery)의 중요성을 설명한다. IP 헤더의 각 필드(버전, 헤더 길이, ToS, 패킷 길이 등)에 대한 자세한 분석을 제공하며, IP 주소와 서브넷 마스크를 통해 네트워크와 호스트를 구분하는 방법을 설명한다. 클래스풀 주소 지정 방식과 클래스리스 주소 지정 방식의 차이점을 비교하고, 공인 IP 주소와 사설 IP 주소의 개념을 명확히 한다. 마지막으로, ICMP(Internet Control Message Protocol)를 통해 IP 레벨의 통신 상태를 확인하고 오류를 알리는 방법을 소개한다. 이 글을 통해 독자는 IP 프로토콜의 기본 원리를 이해하고, 네트워크 문제 해결 능력을 향상시킬 수 있을 것이다.

Read more →
4

도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문 #2

자손킴 @jasonkim@hackers.pub

이 글은 동일 네트워크 내 장비들이 L2 스위치를 통해 통신하는 방식에 대해 설명합니다. MAC 주소를 기반으로 통신하는 L2 계층은 통신 시작 시 IP 주소만 알고 MAC 주소를 모르는 상황을 해결하기 위해 ARP를 사용합니다. MAC 주소와 IP 주소의 역할, 이더넷 프레임 구조, 그리고 ARP의 동작 방식과 한계점을 상세히 다룹니다. 또한 L2 스위칭의 핵심인 MAC 주소 테이블과 flooding 과정을 설명하고, MAC 주소 중복 문제와 VLAN 기술을 소개합니다. 마지막으로, OVS 환경에서 VLAN 설정 시 vlan_mode와 tag의 의미를 명확히 구분하여 네트워크 구성에 대한 이해를 돕습니다.

Read more →
4

tanstack query의 initialPageParam에 대하여 오늘 배운 것

자손킴 @jasonkim@hackers.pub

TanStack Query의 `useInfiniteQuery` 훅을 사용할 때 `initialPageParam`이 어떻게 동작하는지에 대한 중요한 통찰을 공유합니다. 이 훅은 초기 렌더링 시 `initialPageParam`을 `pageParams[0]`으로 설정하고, 동일한 `queryKey`를 가진 캐시가 유지되는 동안 이 값을 계속 사용합니다. 따라서 여러 컴포넌트에서 동일한 `queryKey`로 `useInfiniteQuery`를 호출하면서 다른 `initialPageParam` 값을 제공하더라도, 처음 호출된 `initialPageParam` 값으로 고정됩니다. 이는 시작 커서가 다를 경우 `queryKey`를 다르게 지정해야 함을 의미합니다. 이러한 동작은 이해하고 나면 당연하지만, 익숙하지 않은 개발자에게는 혼란스러울 수 있습니다. `initialPageParam`이 `queryKey`와 강하게 연결되어 있다는 점이 InfiniteQueryOptions에서 타입 제약으로 더 명확하게 표현된다면 개발 경험이 향상될 것입니다.

Read more →
6