TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
136813671366136513641363136213611360135913581357
Etc
정규식 입문 — 자주 쓰는 패턴 10개로 시작하기
정규식은 외우는 게 아니라 조각을 조합하는 것이다. 메타문자·수량자·앵커 기본기와 바로 쓰는 실전 패턴 10개로 감을 잡는다.
Frontend
얕은 복사 vs 깊은 복사 — JavaScript 객체가 꼬이는 이유
스프레드로 복사했는데 원본이 같이 바뀐다면 얕은 복사 함정이다. 참조와 값, 중첩 객체, structuredClone까지 실무 기준으로 정리한다.
Backend
동기·비동기, 블로킹·논블로킹 한 번에 정리
네 단어가 헷갈리는 이유는 서로 다른 두 축이기 때문이다. "결과를 어떻게 받나(동기/비동기)"와 "기다리는 동안 뭘 하나(블로킹/논블로킹)"로 나누면 명확해진다.
Backend
GET과 POST 차이 — 진짜 핵심은 멱등성과 안전성
"GET은 조회, POST는 생성"은 절반만 맞다. 진짜 기준은 안전성(safe)과 멱등성(idempotent). 캐시·재시도·뒤로가기 동작이 여기서 갈린다.
Etc
프로세스와 스레드 차이, 그리고 동시성의 기본
프로세스는 독립된 메모리, 스레드는 메모리를 공유한다. 이 한 줄에서 컨텍스트 스위칭 비용, 경쟁 상태, 멀티프로세싱 vs 멀티스레딩 선택이 전부 갈린다.
Backend
TCP와 UDP 차이 — 언제 무엇을 쓰나
TCP는 신뢰성(순서·재전송) 보장, UDP는 속도. 영상통화·게임·DNS는 왜 UDP를 쓰고, 웹·파일 전송은 왜 TCP인지 기준으로 정리한다.
Etc
브라우저에 URL을 입력하면 생기는 일 — DNS부터 화면까지
"주소창에 google.com을 치면 무슨 일이 일어나나요?"는 면접 단골 질문이다. DNS 조회 → TCP/TLS → HTTP 요청 → 렌더링까지 전 과정을 한 흐름으로 정리한다.
AI
LLM 함수 호출(tool calling) 설계 — 안정적으로 도구 쓰기
모델이 외부 도구를 부르게 하는 tool calling. 스키마 설계·검증·에러 복구·무한 루프 방지로 신뢰성을 확보한다.
Backend
HTTP 상태코드 제대로 쓰기 — 4xx와 5xx 구분
모든 에러를 200+에러메시지나 500으로 퉁치면 클라이언트·모니터링이 망가진다. 의미에 맞는 상태코드 선택 가이드.
Mobile
모바일 딥링크 구현 — 앱으로 정확히 보내기
커스텀 스킴과 유니버설/앱 링크의 차이. 앱 미설치 폴백, 검증 파일(AASA·assetlinks)까지 빠지기 쉬운 부분.
Frontend
React 리스트의 key 경고, index를 key로 쓰면 안 되는 이유
"each child should have a unique key" 경고와, 배열 index를 key로 쓸 때 생기는 입력값 꼬임·잘못된 재사용 버그.
Mobile
푸시 알림(FCM) 구현 — 토큰 관리가 핵심
FCM 토큰 발급·갱신·서버 저장이 안정성의 8할. 권한 요청 타이밍, 토큰 만료, 포그라운드 표시까지.