HTTP 메서드는 클라이언트가 서버에 “무엇을 하고 싶은지”를 명확하게 전달하기 위한 규칙이다.URL이 “대상(Resource)”이라면, HTTP 메서드는 “행위(Action)”를 의미한다.우리가 흔히 사용하는 GET, POST 외에도 OPTIONS, HEAD, PATCH 같은 메서드들이 있으며이들은 성능, 보안, CORS 처리에서 중요한 역할을 한다.────────────────────────────주요 HTTP 메서드────────────────────────────GET리소스를 조회할 때 사용서버 상태를 변경하지 않는다캐싱 가능예)GET /users/1POST리소스를 생성할 때 사용서버 상태 변경 발생예)POST /usersPUT리소스를 전체 수정해당 리소스가 없으면 생성될 수도 있음“전체 교체” ..
Cache-Control 헤더는 브라우저와 CDN 같은 캐시가 데이터를 얼마나 오래 저장할지 결정하는 중요한 설정이다. 다음은 가장 자주 사용하는 설정을 기준으로 정리한 내용이다.Cache-Control: public, max-age=3600, s-maxage=3600publicpublic은 브라우저뿐 아니라 CDN 같은 공유 캐시도 이 응답을 저장할 수 있다는 의미이다.이미지, CSS, JS 같은 정적 파일이나 개인정보가 필요 없는 데이터 요청에 많이 사용된다.max-age브라우저 캐시가 데이터를 유지하는 시간이다.max-age=3600 은 브라우저가 1시간 동안 다시 요청하지 않고 캐시된 데이터를 사용한다는 뜻이다.s-maxages-maxage는 CDN이나 reverse proxy 같은 공유 캐시의 ..
일반적으로 Python 가상환경을 쓸 때는 아래처럼 source venv/bin/activate로 활성화해야 합니다.python3 -m venv venvsource venv/bin/activate지만 Dockerfile에서는 ENV PATH를 잘 설정해두면, 매번 activate 하지 않아도 가상환경이 기본 파이썬으로 동작하도록 만들 수 있습니다.1. Dockerfile 예시FROM ubuntu:24.04# python3 설치RUN apt update && apt install -y python3 python3-venv python3-pip# 가상환경 생성RUN python3 -m venv /venv# PATH 및 환경변수 설정ENV PATH="/venv/bin:${PATH}" \ LD_LIBRAR..
개발하다 보면 “로컬에는 두고 싶지만 Git에서는 빼고 싶다”, “이미 커밋된 민감한 파일을 지우고 싶다” 같은 상황이 생깁니다. 이럴 때 쓰는 명령이 바로 git rm 입니다. 이 글에서는 실무에서 자주 쓰는 패턴만 추려 빠르게 정리합니다.git rm 한 줄 정의작업 디렉터리(로컬 파일)와 Git 인덱스(스테이징/히스토리)에서 파일을 제거하는 명령.기본 동작: 로컬 파일도 삭제 + 다음 커밋에 삭제 반영로컬은 남기고 Git에서만 제거하려면 --cached 사용 Git에서만 제거 (로컬은 유지) — 민감정보에 최적# .env를 Git 추적에서만 제거(파일은 로컬에 남김)git rm --cached .envgit commit -m "Remove .env from repository"# 반드시 .gitign..
isual Studio Code(이하 VSCode)는 전 세계 개발자들이 사랑하는 에디터입니다. 하지만 그냥 쓰기엔 아깝습니다. 프로젝트별로 설정을 잘 해두면 포맷 자동화, 디버깅, 확장 추천까지 모두 손쉽게 관리할 수 있습니다.이번 글에서는 VSCode에서 꼭 알아야 할 설정 파일들을 정리하고, 각 파일의 목적과 유용한 설정 예제를 소개합니다.1. settings.json – 전역 또는 프로젝트별 설정VSCode의 기본 설정 파일입니다. 전역 설정뿐만 아니라 프로젝트 폴더 안에 .vscode/settings.json으로 두면 워크스페이스 단위 설정도 가능합니다.{ "editor.formatOnSave": true, "editor.tabSize": 2, "files.exclude": { "**..
MySQL에서 문자 인코딩 문제는 종종 데이터 깨짐이나 정렬 순서 오류의 원인이 됩니다. 이를 방지하려면, **문자셋(Charset)**과 Collation 설정을 정확히 이해하고 사용하는 것이 중요합니다. 이번 글에서는 MySQL의 디폴트 문자셋과 Collation을 확인하고 관리하는 방법을 정리합니다.1. 서버(Server)의 기본 문자셋과 Collation 확인서버 전체의 기본 문자셋과 정렬 규칙은 다음 쿼리로 확인할 수 있습니다:SHOW VARIABLES LIKE 'character_set_server';SHOW VARIABLES LIKE 'collation_server';+----------------------+----------+| Variable_name | Value |..
웹 접근성(Web Accessibility)은 모든 사용자가 웹 콘텐츠에 접근할 수 있도록 만드는 중요한 요소입니다.특히 시각장애인 등 보조기술을 사용하는 사용자에게는 **스크린 리더(Screen Reader)**의 도움으로 콘텐츠를 이해하게 되는데, 이때 꼭 필요한 속성이 바로 aria-label과 role입니다.스크린 리더는 시각장애인 등 화면을 보기 어려운 사용자가 웹 콘텐츠를 소리로 듣거나 점자로 읽을 수 있도록 도와주는 보조 기술aria-label이란?aria-label은 요소에 **스크린 리더용 이름(label)**을 부여하는 속성입니다. 사용자가 콘텐츠를 직접 볼 수 없더라도, 스크린 리더는 이 텍스트를 읽어줍니다.사용 예시 🔍설명: 버튼 안에 아이콘만 있는 경우, aria-label을 ..
라즈베리파이를 외부에서 원격으로 접속하려면 보통 포트 포워딩이나 VPN 설정이 필요합니다. 하지만 보안 문제나 복잡한 설정이 부담될 수 있는데요, Tailscale을 사용하면 간단하게 해결할 수 있습니다!이 글에서는 Tailscale을 이용해 외부에서도 안전하게 라즈베리파이에 원격 접속하는 방법을 설명하겠습니다.Tailscale이란?Tailscale은 WireGuard 기반의 VPN 서비스로, 복잡한 네트워크 설정 없이 인터넷을 통해 내부 네트워크처럼 기기들을 연결해 줍니다.장점포트 포워딩 없이 외부 접속 가능 (공유기 설정 불필요)보안성이 뛰어남 (암호화된 연결)무료 요금제로 개인 사용 가능다양한 운영체제 지원 (라즈베리파이, Windows, macOS, Linux 등)라즈베리파이에 Tailscale ..
Git을 사용하다 보면 원격 저장소(Bitbucket)에 잘못된 태그를 푸시하거나, 불필요한 태그를 삭제해야 하는 경우가 있습니다. 이번 글에서는 Bitbucket에서 원격 태그를 삭제하는 방법을 정리해보겠습니다.1. 원격 태그 삭제하기Bitbucket 원격 저장소에서 특정 태그를 삭제하려면 다음 명령어를 실행하면 됩니다.git push origin --delete 예를 들어, v1.0.0 태그를 삭제하려면 다음과 같이 입력합니다.git push origin --delete v1.0.0이 명령어를 실행하면 해당 태그가 원격 저장소에서 삭제됩니다.2. 로컬에서도 태그 삭제하기 (선택사항)원격 태그를 삭제한 후, 로컬에서도 해당 태그를 제거하려면 다음 명령어를 사용합니다.git tag -d 예를 들어, 로컬..
Wi-Fi에 연결된 기기들의 IP 주소를 확인하고 싶을 때, nmap을 이용하면 쉽게 네트워크를 스캔할 수 있습니다. 이 글에서는 nmap을 활용하여 네트워크에 연결된 모든 장치를 확인하는 방법을 소개합니다.🔹 nmap이란?nmap(Network Mapper)은 네트워크 탐색 및 보안 감사에 사용되는 오픈 소스 도구입니다. 이를 활용하면 특정 네트워크에 연결된 장치들을 쉽게 찾을 수 있습니다.1️⃣ nmap 설치하기▶ Windowsnmap 공식사이트에서 Windows용 설치 파일을 다운로드합니다.설치 후 cmd 또는 PowerShell을 실행합니다.▶ macOSbrew install nmap▶ Linux (Ubuntu/Debian)sudo apt update && sudo apt install nmap..