728x90

분류 전체보기 72

find, grep 그리고 xargs 완벽 구분

Ubuntu 사용 시 아래 작업을 많이 한다특정 이름 파일 찾기문자열 패턴 포함한 파일 찾기find, grep을 사용하는데 쓸 때마다 헷갈린다. 딱 개념 잡고 가자! 파일 찾기✔️ find파일 이름, 크기, 시간 등 메타데이터를 조건으로 파일/디렉토리를 찾음# 이름으로 찾기find . -name "test.txt"# 특정 확장자 모두 찾기find /home -name "*.log"# 10MB 이상인 파일 찾기find . -size +10M 텍스트 찾기✔️ grep파일 내부의 특정 문자열 (내용) 기반으로 파일을 찾음# 특정 단어 찾기grep "Error" log.txt# 대소문자 무시grep -i "warning" log.txt# 현재 폴더 전체 검색 (-r : recursive, -n : line nu..

TIL/2026 2026.02.12

UEFI 무엇인가

NVIDIA Jetson AGX Orin 보드 의 부트로더는 UEFI 가 담당해요기존 자체 제작 부트로더인 CBOOT 을 버리고 UEFI 를 선택한 이유는 무엇일까요? Bootloader부트로더는 크게 아래 두 가지 목적이 있어요 ✔️ HW 초기화타겟 바이너리 (Firmware나 OS) 실행하기 위한 최소한의 HW 초기화 작업 ✔️ 제어권 이양초기화 완료 후 타겟 바이너리 진입점(Entry Point) 으로 실행 권한 전달 왜 CBOOT에서 UEFI로 바꿨는가?NVIDIA 는 Orin 이전 세대 까지는 CBOOT이라는 자체제작 부트로더를 썼어요Orin 세대부터 자체 규격을 버리고 산업 표준을 채택했어요 ✔️ CBOOTNVIDIA가 Orin 이전 세대 까지 사용하던 자체 제작 부트로더CBOOT에 맞게 OS..

TIL/2026 2026.02.12

Suspend to RAM

개요리눅스 커널의 기능인 Suspend to RAM을 실행해봤다. 노트북 뚜껑을 닫거나 스마트폰 화면 잠금 시 시스템이 저 전력 상태가 되는데이 때 쓰이는 기능이다 Suspend to RAM 알아보기✔️ 동작 흐름systemd가 sysfs(/sys/power/state) 에 mem 기입Kernel이 Process들을 freezing하고 buffer내 data를 disk에 flushingDevice Driver 별 suspend() callback 을 실행하여 device를 중단CPU 가 context를 RAM 에 저장PMIC가 RAM 제외 모든 Device의 Power를 차단 및 SleepWakeup 시 CPU는 RAM 내 정보 load 해서 동작 ✔️ Deep Sleep (SC7)난 NVIDIA 보드에..

TIL/2026 2026.02.12

Main 보다 먼저 호출되는 코드가 있다?!

C언어의 시작은 main()이 국룰? 아니다. 이 속성을 쓰면 main() 진입 전에 코드가 실행된다. Constructor Attributegcc, clang 컴파일러가 제공하는 확장 속성 __attribute__((constructor)) 가 명시된 함수들을 main() 진입 직전에 자동으로 실행__attribute__((constructor)) void pre_main() { // Main보다 먼저 실행됨} 여러 파일에 여러 개 정의되어 있어도 모두 main() 진입 직전 실행 됨 왜 쓰나?모듈(Module)과 라이브러리가 "자율적 초기화(Self-Initialization)" 를 수행 할 수 있음main 함수가 모든 모듈의 초기화 코드를 알 필요가 없게 만들어, 의존성(Dependency..

TIL/2026 2026.01.21

muldiv64 는 무엇인가?

muldiv64 함수는 오버플로(Overflow)의 공포 없이 큰 수를 다루는 정밀 연산 함수입니다. 어떤 동작을 하나?A x B / C 연산을 하죠A, B, C 모두 64bit 정수일 때 중간 값 오버플로우(A x B 과정) 없이 정확한 결과를 반환해요 Real worldCase 1: 리눅스 커널 시간 변환 (Timekeeping)CPU 사이클(Ticks) → 나노초(ns)Nanoseconds = Cycles x NSEC_PER_SEC / Frequency Cycles가 조금만 커져도 10^(9)를 곱하는 순간 overflow 발생muldiv64를 쓰면 overflow 없이 연산 가능 Case 2: 동영상 싱크 맞추기 (FFmpeg/Gstreamer)비디오 타임스탬프 (PTS) 변환PTS (new)..

TIL/2026 2026.01.21

VectorCAST : clicast vs DATA API (manage)

vectorCAST를 CLI로 수행 가능한가?CI/CD 자동화를 위해 vectorCAST를 CLI 명령으로 사용해야하는 상황이 있어요.CLI 명령으로 빌드, 실행, 리포트 추출 등 다양한 동작을 할 수 있죠. vectorCAST의 CLI 명령은 2가지 종류가 있어요clicastmanage (Data API) clicast vs DATA API (manage)왜 헷갈리게 CLI 명령이 두 종류 일까요?clicast가 최초의 vectorCAST cli 명령이에요.CI/CD 자동화에 clicast를 사용하면 되죠. 그럼 DATA API인 manage 명령은 뭐죠?manage라는 명령어는 clicast 이후에 나왔고 좀 더 API 스럽게 추상화 된 인터페이스를 가져요.내가 원하는 정보만 딱 추출하여 가공하는데 ..

TIL/2026 2026.01.07

printf("%c", 2)가 '2'가 아닌 이유

1. 핵심 컨셉: "%c 는 번호표다"컴퓨터는 모든 글자를 번호표(ASCII 코드) 로 관리합니다. printf 에서 어떤 서식 지정자를 쓰느냐에 따라 숫자를 보는 눈이 달라집니다.%d : 숫자 값 그대로 출력 (2 → 2)%c : 숫자를 번호표 로 해석해서 해당 칸의 문자를 출력 (2 → ??)2번 번호표 는 '글자 2'가 아니라, 화면에 보이지 않는 제어 신호 이기 때문에 아무것도 출력되지 않는 것입니다. 2. 해결 방법: "기준점 더하기"우리가 원하는 글자 '2' 는 번호표 50번 에 있습니다. 하지만 이 번호를 외울 필요는 없습니다. 모든 숫자 글자는 '0' 부터 순서대로 서 있기 때문입니다.'0' 의 번호표 = 48번숫자 2 + '0' (48번) = 50번 (글자 '2'의 위치!)3. 한 줄 요..

TIL/2025 2025.12.26

MCP가 무엇인지?

LLM 서비스가 나오면서 MCP가 중요하다는 이야기가 많다. Kakao는 PlayMCP라는 MCP 서버 market을 운영하기도 한다. 이 MCP 어디에 쓰이며 왜 중요한 것인가? LLM Service가 실시간 정보를 얻어오는 방법은?사용자가 GPT에게 오늘 실시간 서울의 날씨를 물어본다면 GPT는 어떤 과정을 거쳐 답변할까?단순하게 생각해보면 날씨 정보를 제공하는 서비스의 Rest API를 통해 날씨 정보를 얻어 답변을 할 것이다. 여기서 문제는 이런식으로 정보를 얻을 때서비스 별 Rest API 형태가 제각각이라 커넥터 코드를 개별적으로 구현해야 하며 코드 관리가 복잡하고 번거롭다는거에요. 그래서 MCP (Model Context Protocol) 프로토콜로 통일했다anthropic에서 이러한 복잡..

TIL/2025 2025.12.21

[Error] Your branch and 'origin/feature-1' have diverged

git branch를 feature-1로 전환 했는데 아래 오류가 나왔다Your branch and 'origin/feature-1' have diverged,and have 4 and 7 different commits each, respectively. 문제 원인 및 해결책은? 문제 원인 Local branch와 Remote branch('origin/feature-1')가 각각 상대방에게는 없는 커밋을 가지고 있다는 뜻Local branch : 'origin/feature-1'에 없는 4개의 커밋이 있음Remote branch ('origin/feature-1') : Local branch에 없는 7개의 커밋이 있음 해결 책local 수정사항도 살리고 싶은 경우Fetch & Rebase를 하자Re..

TIL/2025 2025.12.10

Requirement yogi의 traceability

Confluence는 요구사항 및 테스트 스펙 문서를 작성 시 아주 편리해요이때, Requirement yogi라는 요구사항 관리 plugin을 주로 사용하죠 이 Plugin의 장점은 traceability 인데최상위 ~ 최하단 요구사항, Test case와 Test 대상의 traceability를 확인 할 수 있다 사용 하면서 느낀 Requirement yogi의 핵심 컨셉을 정리해봐요 Requirement Yogi 핵심 매크로크게 2가지 매크로를 사용해요 ✔️ Requirement Yogi definition새로운 Requirement key 정의✔️ Requirement Yogi link이미 정의 된 Requirement key 링크 Requirement Yogi 사용 법1열은 Requiremen..

TIL/2025 2025.12.10
728x90