전체 글96 [design] REST API 설계 - 자원·메서드·상태 코드 잘 설계된 REST API는 예측 가능하다. 자원은 명사 URL, 행위는 HTTP 메서드, 결과는 상태 코드 - 세 축이 일관되면 처음 보는 API도 짐작이 간다. REST API가 "잘 설계됐다"는 건 대개 예측 가능하다는 뜻입니다. POST /deleteUser를 처음 본 개발자는 문서를 다시 열어야 하지만, DELETE /users/1은 설명이 필요 없습니다.자원 중심 설계REST는 데이터를 자원(명사) 으로 보고 URL로 식별합니다. 동사를 URL에 넣지 않습니다.좋음: GET /users/1, GET /users/1/orders피함: GET /getUser/1, POST /createUser — URL에 동사가 들어간 형태계층은 경로로, 필터·정렬은 쿼리스트링으로 표현합니다(GET /orders.. 2026. 9. 6. [python] 가상환경과 pyproject - "내 컴퓨터에서는 되는데"를 없애는 자리 가상환경은 프로젝트마다 의존성을 격리하고, pyproject.toml은 무엇이 필요한지를 한 파일에 모은다. 편집 가능 설치를 쓰면 경로를 만지지 않고도 소스를 그대로 import할 수 있다. 동료 컴퓨터에서는 되는 스크립트가 제 자리에서는 임포트부터 실패합니다. 라이브러리를 깔았더니 이번에는 다른 프로젝트가 깨집니다. sys.path 를 손으로 조작하는 코드가 파일 맨 위에 붙어 있고, 아무도 그 줄을 지우지 못합니다. 가상환경을 쓰라는 말은 여러 번 들었는데, 그것이 이 증상들과 어떻게 연결되는지가 분명하지 않습니다.왜 격리부터 시작하나파이썬은 라이브러리를 인터프리터에 딸린 한 곳에 설치합니다. 프로젝트가 하나면 문제가 없지만, 둘이 같은 라이브러리의 다른 버전을 요구하는 순간 충돌합니다. 한쪽을 올.. 2026. 9. 6. [react] VirtualDOM - 보이는 것만 그리면 노드 수가 데이터에서 떨어진다 긴 목록이 느린 이유는 대개 React가 아니라 DOM 노드 수다. 화면에 보이는 구간만 그리면 노드 수가 화면 크기에 비례하게 되어 데이터가 늘어도 변하지 않는다. 만 건짜리 목록 화면이 열릴 때 몇 초씩 멈춥니다. memo 를 붙이고 렌더 최적화를 다 해 봤는데 그대로입니다. 성능 패널로 재 보면 React 가 쓰는 시간보다 그 뒤 브라우저의 레이아웃·페인트가 훨씬 깁니다. 가상화를 쓰라는 말은 들었는데, 그게 무엇을 줄여 주는지가 안 잡힙니다.느린 것은 React 가 아닐 수 있다목록이 느릴 때 먼저 의심하는 것은 React 렌더입니다. 그런데 만 건짜리 목록에서는 브라우저가 노드를 배치하고 그리는 비용이 더 큽니다. React DevTools 프로파일러는 렌더와 커밋까지만 재므로 여기서는 도움이 .. 2026. 9. 6. [AI] OpenCode 셋팅 - 설정 한 장으로 에이전트·권한·스킬을 정한다 OpenCode 를 깔기만 하고 기본값으로 쓰면 절반만 쓰는 것이다. 설정 파일의 합쳐지는 규칙, 권한, 에이전트, 스킬 경로를 실행으로 확인하며 셋팅한다.OpenCode 를 깔고 며칠 써 봤는데 설정 파일은 $schema 한 줄뿐입니다. 에이전트를 나눠 쓰라는 말은 봤지만 무엇을 어디에 적는지 모르겠고, 권한을 잠갔다는 사람들 글을 봐도 내 것은 그대로 다 열려 있습니다. OpenCode 셋팅을 한 번 제대로 잡고 가려고 합니다. 이 글의 자리 — 여섯 편 중 세 번째다. ① [[OpenCode - 터미널 코딩 에이전트 (설치 · TUI · MCP · 로컬 LLM · OpenClaw 비교)|설치·TUI·실행 모드]] → ② [[OpenCode - 구조 (클라이언트·서버 · 프로바이더 비종속)|왜 설정 .. 2026. 9. 5. [security] OAuth 2.0 — 인가 코드 흐름 제대로 이해하기 비밀번호를 넘기지 않고 access token으로 접근을 위임하는 OAuth 2.0. 인가 코드는 브라우저(앞채널)로, 토큰은 서버 간(백채널)으로 오가 토큰이 노출되지 않고, 비밀을 숨길 수 없는 클라이언트는 PKCE로 코드 가로채기를 막는다.OAuth 2.0은 "비밀번호를 넘기지 않고, 내 데이터에 대한 제한된 접근을 남에게 위임"하는 규약입니다. 구글 계정으로 다른 서비스에 로그인하거나 캘린더 접근을 허용할 때 뒤에서 도는 게 이것입니다.등장인물자원 소유자 — 사용자(나).클라이언트 — 접근을 원하는 앱.인가 서버 — 로그인·동의를 받고 토큰을 발급(구글·카카오 등).자원 서버 — 실제 데이터를 가진 API.핵심은 클라이언트가 사용자의 비밀번호를 절대 보지 않는다는 점입니다. 대신 인가 서버가 발급.. 2026. 9. 3. 이전 1 2 3 4 ··· 20 다음