Posts
Dev Joon
Cancel

[C] typeof 개념 정리 (GNU 확장형 타입 추론)

개요 typeof는 GNU C 확장(GNU Extension)에서 제공하는 키워드로, 어떤 표현식이나 변수의 자료형(type)을 가져올 수 있게 해준다. 표준 C(ISO/IEC 9899)에는 포함되어 있지 않지만, GCC나 Clang처럼 GNU 확장을 지원하는 컴파일러에서는 널리 사용된다. 즉, typeof는 변수의 형(type)을 그대로 복사하...

[C언어] 자료형 크기 차이로 인한 비트 연산 오류 해결 방법

개요 C언어에서 서로 다른 크기를 가진 자료형을 비트 연산할 때 발생할 수 있는 문제와 해결 방법을 정리했다. 이 글은 “C언어 매크로 재정의 오류 원인과 해결 방법”의 후속 글이다. 문제 상황 AND 연산을 수행하는 매크로 함수에서, 매개변수의 자료형 크기 차이로 인해 의도치 않게 상위 32비트가 소실되는 문제가 발생했다. #define A...

[C언어] 매크로 재정의 오류 원인과 해결 방법 (GCC 전처리기 기준)

실행 환경 OS: Ubuntu 22.04 Architecture: x86_64 (64-bit) GCC: 11.4.0 요약 동일한 이름의 매크로를 서로 다른 방식으로 정의하면 GCC 전처리기가 두 매크로를 동일하지 않은 토큰으로 판단해 redefined 오류가 발생한다. 안전하게 프로그램을 설계하려면 #ifndef 전처리기 사용 또...

생각 많은 ISTJ 개발자가 구글 캘린더를 활용하는 방법

개요 구글 캘린더로 일정과 할 일을 관리하는 방법을 정리했다. 평소에 생각이 많다보니 생각을 정리하는 나름의 체계를 갖추고자 했다. 단순히 일정을 기록하는 것이 아니라, 머릿속을 비워두기 위한 시스템으로서의 캘린더 사용법이다. 일정 관리 구글 캘린더에서는 목적에 맞는 캘린더를 생성하는 것이 가능하다. 전체 캘린더에 표시되는 블럭을 색깔로 구분할 ...

[AWS] EC2 인스턴스 ssh 키 없이 터미널 접속하는 방법 (AWS Session Manager)

개요 AWS EC2 인스턴스에 접속할 SSH 키가 없는 경우, Session Manager를 이용해서 터미널에 접속하는 방법을 소개한다. 문제 상황 개인 목적으로 EC2 인스턴스 1대를 운영하고 있다. 평소에 SSH 키를 이용해서 터미널에 접속했다. crontab을 수정할 일이 생겼는데, 메인 PC는 물리적으로 사용할 수 없는 위치에 있었고, ...

LLR, CSF, RDI 개념 정리

LLR(Link Ross Return) LLR은 한쪽 포트에서 송신부(TX) 신호가 꺼졌을 때, 상대편 포트에도 동일하게 Link Down 상태를 반영해주는 기능이다. 한쪽 방향만 죽어있는 비대칭 링크 상태를 방지하고, 양단이 동시에 링크 다운을 인지하도록 하기 위해서 사용한다. LLCF와 다른 점은 LLCF는 수신부(RX) 장애를 반대편으로 전달...

LLCF 개념 및 장애 전파 작동 원리

LLCF 개념 LLCF(Link Loss Carry Forward)는 네트워크 장비에서 한쪽 링크에 장애가 발생할 경우, 연결된 반대편 포트에도 링크 다운 상태를 전파하여 장애를 신속하게 인지하고 대체 경로로 트래픽을 우회하도록 돕는 기능이다. 네트워크 장비는 한쪽 인터페이스의 수신부(RX)에서 Link Down을 감지하면, 같은 장비의 송신부(...

C언어 서로 다른 구조체 포인터 캐스팅의 원리

개요 C언어에서 서로 다른 구조체 포인터를 캐스팅할 때의 작동 원리를 정리한다. 이를 통해 C에서도 구조체 레이아웃을 이용해 객체 지향 언어의 ‘업캐스팅’과 유사한 동작을 구현할 수 있음을 확인할 수 있다. 분석 대상 코드 구조체 정의 서로 다른 멤버를 가진 구조체가 있다고 하자. typedef struct parent_s { str...

ARP 개념 정리

ARP란? ARP(Address Resolution Protocol)은 목적지 IP 주소의 MAC 주소를 알아내기 위한 프로토콜이다. ARP를 사용하는 이유는 로컬 네트워크(LAN)에서 단말끼리 통신을 하기 위해서는 목적지 IP 주소와 MAC 주소를 함께 이용해야 하기 때문이다. 같은 IP 대역을 공유하는 LAN에서는 L2 스위치 하나에 여러 컴퓨...

L3 IP Packet

L3 IP Packet 패킷(Packet)은 3계층에서 사용하는 단위 데이터를 의미한다. 패킷은 Header와 Payload로 구성되어 있다. 패킷의 크기는 Header와 Payload를 합친 것인데, 패킷의 최대 크기는 MTU(Maximum Transmission Unit)라고 한다. 이더넷(ethernet) 기준으로는 1500바이트(1.4kb)이...