전체 글

좋은 영향력을 전파하기 위해 노력하는 엔지니어 리오입니다.
타입스크립트는 왜 컴파일 레벨에서 강제하지 않을까?이펙티브 타입스크립트를 읽다가 문득 궁금했다.“왜 타입스크립트는 자바나 C#처럼 컴파일 레벨에서 타입을 완전히 강제하지 않을까?”이 질문의 답을 찾다 보니, 단순한 기술적 이유가 아니라 웹이라는 플랫폼의 철학과 자바스크립트의 역사적 맥락이 깊게 얽혀 있었다.1. 웹 브라우저 환경의 철학: “부분적 실패를 견딘다”자바스크립트를 해본 사람이라면 알겠지만, 자바스크립트는 그 어떤 실수에도 관대하다.undefined를 덧셈해도 죽지 않고, 엉뚱한 타입을 넘겨도 그냥 실행된다.이런 유연함(혹은 관대함) 은 단순한 결함이 아니라, 웹 환경의 생존 전략이었다.웹의 기본 철학은 “부분적 실패를 견딘다(Tolerate partial failure)”이다.이미지 하나가 깨..
개요회사에서 NestJS 기술을 활용하면서 Guard라는 기능을 접했을 때, 추상적으로 'Spring Security와 비슷하구나'라는 생각으로만 접근했습니다. 하지만 실제 동작 원리와 인가된 유저 주입 메커니즘을 깊이 이해하지 못한 채, AI가 생성한 코드를 검증 없이 사용하다가 기존 인증/인가 로직에 예기치 않은 영향을 주는 문제를 발생시켰습니다. 이로 인해 팀원들에게 불편을 끼치는 상황이 발생했고, 이는 근본적인 이해 부족에서 비롯된 것임을 깨달았습니다. 같은 실수를 반복하지 않기 위해, 그리고 Guard를 제대로 이해하기 위해 이 글을 작성합니다. 이 글을 읽으면 좋은 사람들Spring 백그라운드를 가진 개발자가 NestJS로 전환하는 경우두 프레임워크를 함께 사용하는 팀에서 일하는 개발자인증/인..
작성 배경 개발자들 사이에서 핫한 도구 중 하나인 Claude Code! 저도 자주 활용하는 도구 중 하나입니다. 저는 간단한 코드 작업이나 가독성이 낮거나 방대한 의존성을 가진 코드를 분석하는 용도로만 사용하고 있었는데요. 하지만 다른 개발자 분들이 Claude Code에게 지침을 내리고 여러 오픈소스와 연동하며 효율적으로 사용하는 것을 보고 Claude Code의 10%도 활용하지 못하고 있었다는 생각에 좀 더 깊이있게 활용할 수 있는 방법에 대해 글로 정리해보려고 합니다.Claude Code 설치 방법사전 준비사항Claude Code를 설치하기 전에 다음 요구사항을 확인하세요:Node.js 18 이상 (권장: LTS 버전)npm 또는 yarn 패키지 매니저Anthropic API 키 (유료 구독 필..
· 일상
힘들게 이직했지만 퇴사를 선택한 이유 4월 1일, 힘들게 입사한 회사에서 수습 기간을 종료하게 되었습니다. 힘들게 입사했음에도 불구하고 퇴사를 선택한 이유는 여러 사정이 있어 자세히 이야기할 수는 없겠지만 간단하게 설명하자면, 회사가 재정적으로 어려워지면서 극도의 긴장감 속에서 업무를 지속하며 스트레스가 컸습니다. 언제든 사라질 수 있는 회사에서 계속되는 불안감을 안고 일한다는 것이 힘들 것 같다는 판단에 수습 기간을 자발적으로 종료하게 되었습니다. 그 다음에는 뭘 해야하지? 힘들게 준비한 이직이었는데, 잘못된 회사를 선택한 탓에 다시 원점으로 돌아간 것이 허탈한 기분이 들었습니다. 어이없기도 했고, 다음 계획을 세울 힘조차 나지 않았습니다. 그래서 무작정 다음 이직을 준비하기보다는, '어떻게 해야 제대..
· CS
컴파일러와 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 (나중에 계산) 아래와 같은 명령어로 정렬을 못하게 지시 가..
· CS
CPU의 진화CPU 관점의 프로그램포토샵, 크롬, helloWorld 출력 등 cpu 입장에서는 기계 명령어일 뿐이다. 명령어의 양이 다를 뿐기계어는 실행 파일에 저장된다. 프로그램이 실행되면 실행 파일에 있는 명령어들을 메모리에 적재하고 CPU가 실행한다.프로그래머 관점에서 CPU의 역활은 아주 단순하다고 생각해볼 수 있습니다.CPU에게 명령어 집합이란?CPU에게 명령어 집합(ISA: Instruction Set Architecture)은 CPU가 이해하고 실행할 수 있는 모든 기본 명령어들의 목록입니다. 요리사에게 레시피북이 있듯이, CPU에게는 수행 가능한 모든 동작이 정의된 명령어 집합이 있습니다.예를 들어, CPU는 다음과 같은 기본 명령어들을 가지고 있습니다:ADD: 두 숫자를 더하기MOV: ..
ri5
리오의 개발일지