[TIL250710] 너 주석아니였어 ? Shebang?
·
크래프톤정글이야기/TIL - WIL
(쇼뱅 아님 셔뱅임..)bash: ./driver.sh: cannot execute: required file not found이라는이상한 오류가 떴다. 분명히 파일도 있고, 실행 권한도 있는데도 실행이 안 되는 이상한 상황.삽질 과정셔뱅(Shebang) 확인 요청을 받음→ 경로 바꿈..→ 경로 지정이 잘못 되어 있을 수도 있어!#!/usr/bin/env python3그래도 안 됨 → 줄바꿈 형식(CRLF vs LF) 의심3.정상 실행됨.→ 원인은 Windows에서 복사된 파일의 CRLF 줄바꿈 형식이 bash에서 인터프리터 해석을 망가뜨렸기 때문.그래서? Shebang(셔뱅)이란 뭔데?#!/usr/bin/env bash이건 이렇게 해석됩니다:"사용자 환경(PATH)에 등록된 폴더들 중에서 bash를 찾..
WIL – Proxy Lab에서 nop-server.py가 실행되지 않았던 이유와 해결
·
크래프톤정글이야기/TIL - WIL
What was the problem?CS:APP Proxy Lab 과제를 진행하며 ./driver.sh를 실행하는 도중,Concurrency 테스트에서 다음과 같은 에러가 발생했다. ./nop-server.py: cannot execute: required file not found파일은 존재하고 ls 명령으로도 확인되는데, 실행이 되지 않아 당황스러웠다.단순한 파일 누락이 아니라, 더 깊은 시스템 권한과 인터프리터 문제였다.Why did it happen?문제 원인은 아래 3가지 중 하나 또는 조합이었다:1. 잘못된 shebang 경로nop-server.py의 첫 줄이 다음과 같았다:#!/usr/bin/python3하지만 내 환경에는 /usr/bin/python3이 존재하지 않았다.이 경우 bash는..
혼자 코딩할 때 유용한 생산성 도구 5가지
·
나의 이야기
혼자 코딩할 때 유용한 생산성 도구 5가지개발 공부, 사이드 프로젝트할 때 내 생산성 살려주는 필수 툴들혼자서 코딩 공부하거나 사이드 프로젝트를 할 때,생각보다 집중력 유지가 어렵다는 걸 요즘 많이 느끼고 있어요.시간은 많아도 흐름이 끊기거나, 뭐부터 해야 할지 몰라 멍 때리는 시간도 많더라고요.그래서 이번 글에서는 제가 실제로 써보고 꾸준히 도움받고 있는 생산성 도구들을 정리해봤어요.1. Notion – 계획부터 회고까지 한 방에Notion은 그냥 메모장 그 이상이에요.오늘 공부할 내용 정리내일 할 일 계획프로젝트 아이디어 저장블로그 글 초안 작성까지코딩 공부를 하든, 사이드 프로젝트를 하든 정리가 되어야 머리도 정리되더라고요.요즘은 제 공부노트나 프로젝트 계획도 다 Notion으로 하고 있어요.✅ 팁..
[WIL 250703] 묵시적 가용 리스트의 구조적 한계와 성능 실험
·
크래프톤정글이야기/TIL - WIL
🔎 묵시적 할당기 보러가기👉 Malloc 파헤치기 : 묵시적할당기👉 Malloc 파헤치기 : 묵시적할당기 2 이번 Malloc Lab을 진행하면서 직접 mm.c 파일을 구현해보고, 묵시적 가용 리스트(Implicit Free List) 기반의 동적 메모리 할당자가 어떤 구조적 제약을 갖는지, 또 그 제약이 실제 성능에 어떤 영향을 미치는지를 실험적으로 확인해봤습니다.묵시적 리스트 구조의 작동 방식묵시적 리스트는 모든 블록이 힙 내에서 물리적으로 연속되어 있으며, 각 블록의 헤더와 푸터에 크기와 할당 여부가 저장됩니다. 이 구조는 간단하고 구현이 쉬운 장점이 있지만, 가용 블록을 탐색하기 위해 힙 전체를 처음부터 끝까지 순회해야 한다는 명백한 단점이 있습니다.즉, 어떤 블록이 free 상태인지 확인하..
[WIL-250625]이번 주의 트러블슈팅: 첫 번째 벽이 재귀였다면, 두 번째 벽은 RED-BLACK TREE
·
크래프톤정글이야기/TIL - WIL
Red-Black Tree를 직접 구현하며 마주한 의문과 핵심 개념 정리🔎 RED-BLACK TREE 보러가기👉 Red-Black 트리 쉽게 이해하기 : 삽입부터 균형유지까지👉 Red-Black 트리 삭제 정리이번 주는 Red-Black Tree를 직접 구현해보는 과정을 진행했습니다.처음에는 "이론만 잘 이해하면 구현은 쉽게 따라오겠지" 라는 생각을 했지만, 실제로 코딩을 시작하면서 그게 큰 착각이었다는 걸 바로 깨달았습니다.조건 분기와 예외 처리, 그리고 색상 규칙의 조합 속에서 논리적 사고의 체력이 점점 바닥나는 느낌이었죠.🤔 구현 중 떠오른 두 가지 의문왜 처음에 Red로 넣는 걸까?Black으로 먼저 넣거나, 다 넣고 나중에 한꺼번에 회전하면 더 쉬운 것 아닌가?이 두 질문을 실마리 삼아,..
[C언어] Malloc 파헤치기: 묵시적 할당기 2탄
·
개발이야기/C언어
가용 블록의 분할 (Splitting Free Blocks)할당기가 요청에 맞는 가용 블록 하나를 찾았다고 끝은 아니다.이제는 그 블록 전체를 다 쓸지, 아니면 일부만 잘라서 쓸지를 결정해야 한다.1. 가용 블록 전체를 사용하는 방식이건 가장 단순하고 빠르다.블록을 통째로 써버리는 거라 별다른 추가 작업이 필요 없다.문제는, 내부 단편화(internal fragmentation) 가 발생할 수 있다는 점이다.예를 들어 20바이트만 필요했는데 64바이트짜리 블록을 그대로 써버리면나머지 44바이트는 낭비다. → 이게 내부 단편화.→ 물론 요청 크기와 블록 크기가 비슷하면 이 정도 단편화는 감수할 수도 있다.2. 블록을 쪼개서 일부만 사용하는 방식만약 가용 블록이 충분히 크다면,요청한 크기만큼만 할당하고, 남..