본문 바로가기

전체 글122

NoSQL이 좋다던데 우리 프로젝트에도 써야 할까요? 개발자라면 한 번쯤 고민해봤을 질문입니다. MongoDB 같은 NoSQL 데이터베이스가 각광받으면서, 마치 모든 프로젝트에 NoSQL을 써야 할 것 같은 분위기도 있죠.하지만 NoSQL이 무조건 좋은 건 아닙니다.이 글에서는 실제 사례를 통해 언제 NoSQL(MongoDB)을 쓰고, 언제 SQL(PostgreSQL/MySQL)을 써야 하는지 명확히 알려드리겠습니다.용어 정리부터 하고 가죠SQL vs NoSQL - 기본 용어 비교SQL (PostgreSQL/MySQL)NoSQL (MongoDB)DatabaseDatabaseTableCollectionRowDocumentColumnFieldSQL의 "테이블"은 NoSQL에서 "컬렉션"이라고 부릅니다. 용어만 다를 뿐, 개념은 비슷합니다.결론NoSQL(Mong.. 2025. 10. 6.
소셜 로그인 OAuth 2.0 흐름 (A안: DB 없이 인증만) OAuth 2.0이란 Provider 의 로그인을 위임하는 것! Client 에서 Provider 의 로그인을 Provider 가 대신 하고, 성공하면 code를 Backend 에 전달한다.그걸 가지고 상시조회 할 수 있는 accessToken을 받아서, 사용자의 정보를 조회한다. 소셜 로그인 OAuth 2.0 흐름 (A안: DB 없이 인증만) Frontend (React/Vue)Backend (Node.js/Express)OAuth Provider (Google/Kakao)User ① 구글 로그인 해줘② 구글 니가 대신 해③ 나 구글인데, 로그인 정보 넣어④ 응. 로그인 성공. 여기 Code⑤ 나 앞으로 사용자 정보 조회하게 AccessToken 줘. 여기 Code!⑥ AccessToken으로 사용.. 2025. 10. 4.
보일러 플레이트란? 보일러플레이트(boilerplate)는 프로그래밍에서 반복적으로 사용되는 표준 코드나 텍스트를 의미해요.주요 특징재사용성: 여러 프로젝트에서 거의 변경 없이 반복 사용되는 코드필수적이지만 반복적: 프로그램이 작동하려면 필요하지만, 매번 비슷하게 작성해야 하는 코드최소한의 수정: 프로젝트마다 약간의 설정만 바꿔서 사용실제 예시HTML 보일러플레이트: html React 컴포넌트 보일러플레이트: javascriptimport React from 'react';function MyComponent() { return ( {/* 내용 */} );}export default MyComponent;어원"보일러플레이트"라는 용어는 19세기 신문 업계.. 2025. 10. 3.
개발자라면 꼭 알아야 할 개행 문자 이야기 "왜 Windows에서 작성한 파일이 Linux에서는 이상하게 보일까요?" 🤔안녕하세요! 오늘은 개발하면서 한 번쯤은 겪어봤을 개행 문자에 대해 알아보겠습니다. 단순해 보이는 줄바꿈 뒤에 숨겨진 흥미로운 이야기들을 함께 살펴보죠!📜 개행 문자의 역사개행 문자의 역사는 타자기 시대로 거슬러 올라갑니다.Carriage Return (CR): 타자기의 캐리지(종이를 고정하는 부분)를 줄의 맨 앞으로 되돌리는 동작Line Feed (LF): 종이를 한 줄 위로 올리는 동작과거에는 이 두 동작이 모두 필요했기 때문에 CR + LF 조합이 사용되었습니다.🔍 개행 문자의 종류1️⃣ LF (Line Feed) - \nASCII: 1016진수: 0x0A사용처: Unix, Linux, macOS2️⃣ CR (Carr.. 2025. 9. 29.
HTTP 에러 코드 정리 🚨 HTTP 상태 코드 에러 핸들링 가이드개발할 때 자주 사용하는 HTTP 상태 코드와 에러 클래스 매핑 정리! 📝 🔍 HTTP 상태 코드 정리1xx - 정보 (Informational) 코드 이름 설명 100Continue계속 진행해도 됨101Switching Protocols프로토콜 전환2xx - 성공 (Success) 코드 이름 설명 사용시점 200OK성공일반적인 성공 응답201Created생성됨POST로 리소스 생성204No Content내용 없음DELETE 성공3xx - 리다이렉트 (Redirection) 코드 이름 설명 사용시점 301Moved Permanently영구 이동URL 영구 변경302Found임시 이동URL 임시 변경304Not Modified변경.. 2025. 9. 25.
Claude Code에서 로그인 된 계정 확인하기 현재 로그인된 계정 확인Claude Code의 인터랙티브 세션에서 /status 명령을 사용하여 현재 로그인된 계정을 확인할 수 있습니다. Make `/status` and/or login account checkable from command line · Issue #1886 · anthropics/claude-code bashclaude/status 계정 바꾸는 방법1. 로그아웃 후 다시 로그인가장 간단한 방법은 다음 두 단계입니다:Claude Code를 실행하고 /logout 명령 입력: bashclaude/logout다시 Claude Code를 실행하여 새 계정으로 로그인: bashclaudeSteps to Switch Claude Code Login Method2. 직접 로그인 명령 사용.. 2025. 9. 24.
Redis를 사용하는 이유 On-Premise 환경 => 데이터베이스보다 100배 빠르고, 메모리 변수보다 안정적이기 때문Serverless 환경 => 메모리 캐시 대신 사용할 수 있으므로>서버 간 데이터 공유 (메모리 캐시는 서버별로 격리됨)DB보다 훨씬 빠른 성능 (100배 차이)서버 재시작해도 데이터 유지 (메모리 캐시는 사라짐) 2025. 9. 24.
서버리스 환경에서 캐싱이 동작하지 않는 이유와 해결책 서버리스 환경에서 애플리케이션을 배포하다 보면 예상과 다르게 캐싱이 제대로 동작하지 않는 경험을 해보셨을 겁니다. 특히 Vercel 같은 플랫폼에서 통계 데이터를 캐싱했는데 매번 새로 불러와지는 현상을 겪으신 분들이 많을 텐데요. 오늘은 이 문제의 원인과 해결책을 알아보겠습니다. 서버리스는 정말 '서버가 없는' 것일까?서버리스(Serverless)라는 이름 때문에 서버가 아예 없다고 생각하기 쉽지만, 실제로는 서버가 필요할 때만 켜지고 꺼지는 개념입니다. 전통적인 서버 vs 서버리스전통적인 서버24시간 365일 항상 켜져있음메모리에 데이터가 지속적으로 유지됨고정 비용 발생서버리스평상시: 완전히 꺼져있는 상태 (메모리에서 제거)요청 시: 함수를 새로 시작 (Cold Start)처리 후: 일정 시간 Wa.. 2025. 9. 24.
Vercel 모니터링 아직 외부에 공개하지도 않았는데 requests 가 800건 이상 들어온 것을 보고 의아함이 들었다.어디서,누가,왔는지 알아보자. Edge Requests: HTTP 상태코드별 분포:2XX (성공): 파란색 - 대부분의 요청이 정상 처리4XX (클라이언트 에러): 주황색 - 소량 발생5XX (서버 에러): 빨간색 - 거의 없음3XX (리다이렉트): 회색 - 일부 발생 => 최근 3시간 동안 트래픽이 집중되었고, 대부분 정상적으로 처리됨 정상적인 사용자 방문 패턴:실제 누군가가 사이트를 체계적으로 탐색홈 → about → faq 순서로 페이지 방문각 페이지마다 동일한 28회의 정적 파일 요청 (브라우저가 자동 로드)1명이 페이지 방문 ↓HTML 로드 (1회) ↓HTML 안.. 2025. 9. 23.
반응형