작성 배경 개발자들 사이에서 핫한 도구 중 하나인 Claude Code! 저도 자주 활용하는 도구 중 하나입니다. 저는 간단한 코드 작업이나 가독성이 낮거나 방대한 의존성을 가진 코드를 분석하는 용도로만 사용하고 있었는데요. 하지만 다른 개발자 분들이 Claude Code에게 지침을 내리고 여러 오픈소스와 연동하며 효율적으로 사용하는 것을 보고 Claude Code의 10%도 활용하지 못하고 있었다는 생각에 좀 더 깊이있게 활용할 수 있는 방법에 대해 글로 정리해보려고 합니다.Claude Code 설치 방법사전 준비사항Claude Code를 설치하기 전에 다음 요구사항을 확인하세요:Node.js 18 이상 (권장: LTS 버전)npm 또는 yarn 패키지 매니저Anthropic API 키 (유료 구독 필..
힘들게 이직했지만 퇴사를 선택한 이유 4월 1일, 힘들게 입사한 회사에서 수습 기간을 종료하게 되었습니다. 힘들게 입사했음에도 불구하고 퇴사를 선택한 이유는 여러 사정이 있어 자세히 이야기할 수는 없겠지만 간단하게 설명하자면, 회사가 재정적으로 어려워지면서 극도의 긴장감 속에서 업무를 지속하며 스트레스가 컸습니다. 언제든 사라질 수 있는 회사에서 계속되는 불안감을 안고 일한다는 것이 힘들 것 같다는 판단에 수습 기간을 자발적으로 종료하게 되었습니다. 그 다음에는 뭘 해야하지? 힘들게 준비한 이직이었는데, 잘못된 회사를 선택한 탓에 다시 원점으로 돌아간 것이 허탈한 기분이 들었습니다. 어이없기도 했고, 다음 계획을 세울 힘조차 나지 않았습니다. 그래서 무작정 다음 이직을 준비하기보다는, '어떻게 해야 제대..
컴파일러와 POoECPU는 프로그래머가 코드를 작성한 순서대로 명령어를 실행하지 않음 (성능을 높이기 위함)비순차적 실행 단계기계 명령어를 생성하는 단계: 컴파일 중 명령어 정렬CPU가 명령어를 실행하는 단계: 실행 중 명령어가 비순차적으로 실행컴파일러가 명령어 순서를 변경하는 과정코드 예시int a = 1;int b = 2;int c = a + 5; // a에 의존int d = b + 3; // b에 의존 최적화된 어셈블리어; 최적화된 어셈블리 코드mov eax, 1 ; a = 1mov ebx, 2 ; b = 2add ebx, 3 ; d = b + 3 (먼저 계산)add eax, 5 ; c = a + 5 (나중에 계산) 아래와 같은 명령어로 정렬을 못하게 지시 가..
CPU의 진화CPU 관점의 프로그램포토샵, 크롬, helloWorld 출력 등 cpu 입장에서는 기계 명령어일 뿐이다. 명령어의 양이 다를 뿐기계어는 실행 파일에 저장된다. 프로그램이 실행되면 실행 파일에 있는 명령어들을 메모리에 적재하고 CPU가 실행한다.프로그래머 관점에서 CPU의 역활은 아주 단순하다고 생각해볼 수 있습니다.CPU에게 명령어 집합이란?CPU에게 명령어 집합(ISA: Instruction Set Architecture)은 CPU가 이해하고 실행할 수 있는 모든 기본 명령어들의 목록입니다. 요리사에게 레시피북이 있듯이, CPU에게는 수행 가능한 모든 동작이 정의된 명령어 집합이 있습니다.예를 들어, CPU는 다음과 같은 기본 명령어들을 가지고 있습니다:ADD: 두 숫자를 더하기MOV: ..
프로그래밍의 기본 동기와 비동기프로그래밍을 시작하면서 가장 많이 듣는 개념 중 하나인 동기와 비동기에 대해 알아봅시다. 동기 개념은 일상 속에서도 쉽게 접할 수 있습니다. 여러분이 건강검진을 하면서 엑스레이와 의사와 상담을 받아야 된다고 가정해봅시다. 여러분은 엑스레이를 촬영 후 엑스레이 결과가 나올 때까지 기다릴 것입니다. 엑스레이 결과가 나오고 나서야 여러분은 의사에게 상담을 받으러 움직이게 될 것입니다. 이처럼 저희가 작업을 요청하고 완료할 때 까지 기다리는 시나리오를 동기라고 합니다.위의 그림은 비동기의 과정입니다. 여러분이 채혈 검사를 받고 검사지가 완성되는 것에 오래걸리기 때문에 따로 기다리지 않고 바로 시력검사를 받으러 갔습니다. 그 뒤에 검사지가 작성되어 전달 받았고 의사에게 상담을 받아 ..
링커란링커는 컴파일러가 생성한 여러 개의 오브젝트 파일과 라이브러리를 하나로 묶어주는 프로그램입니다. 마치 음식에서 여러 명의 쉐프들이 여러 개의 요리를 만들면 그걸 하나의 접시에 담아 확인하는 헤드쉐프라고 볼 수 있습니다. 링커의 동작 과정심벌 해석: 링커가 여러 개의 오브젝트 파일을 연결할 때 각 심벌의 참조를 정확히 하나의 심벌로 연결하는 과정입니다. 주요 대상은 전역 심벌과 외부 심벌입니다. 심벌 수집: 오브젝트 파일에 정의된 심벌 테이블에서 전역 변수와 외부 변수를 수집합니다.심벌 매칭: 각 심벌 참조(예: extern 변수, 다른 파일의 함수 호출)를 해당 정의와 연결합니다. 정의가 없는 참조는 링커 오류를 발생시킨다.중복 심벌 처리: 동일한 이름의 심벌이 여러 파일에 정의된 경우, 링커는 s..