[개인서버구축일지](1) 클라우드와 온프레미스 사이의 선택
·
클라우드컴퓨팅·네트워크
이 글은 백엔드 개발자의 개인용 서버 구축을 위해 겪어온 과정을 정리한 후기입니다. AWS 프리티어 유목민은 이제 안돼물론 지금까지도 개인용 서버를 구축해 왔었습니다. AWS의 프리티어 정책이 "한 계정에 대해 1년" 이었던 동안은요.1년마다 유목민처럼 다시 새 계정을 만들었어야 했지만, 무료이니만큼 만족하고 사용했습니다. AWS 프리티어 정책 변경하지만 2025년 7월 15일부터, AWS의 프리티어 정책이 변경되고야 말았습니다.새롭게 바뀐 프리티어 정책은 아래와 같습니다.- 가입 시 $100 크레딧 제공 - 가입 후 Explore AWS 위젯에서 활동 시 $100 크레딧 추가 제공 (Amazon EC2, Amazon Bedrock 생성 등 특정 서비스를 사용) - 최대 $200 크레딧을 6개월 동안..
[HTTP 보안] JWT 저장 방식별 장단점
·
클라우드컴퓨팅·네트워크
JWT를 어디에 저장할지는 XSS(스크립트 해킹)와 CSRF(요청 위조) 중 무엇을 더 경계하느냐에 따라 갈립니다.로컬스토리지주로 프론트엔드 개발자들이 구현의 편의성을 위해 자주 사용한다고 합니다.장점:자바스크립트로 쉽게 읽고 쓸 수 있어 구현이 매우 단순합니다.헤더에 직접 담아 보내므로 CSRF 공격으로부터 원천적으로 안전합니다.단점:XSS(Cross-Site Scripting) 공격에 취약합니다.공격 스크립트가 실행되면 `localStorage.getItem()` 한 줄로 사용자의 토큰을 바로 탈취당합니다.쿠키 (feat. HttpOnly)일반적으로 더 권장되는 방식입니다. 다만, 로컬스토리지보다는 설정의 복잡성이 있습니다.장점:HttpOnly 설정을 하면 자바스크립트가 쿠키를 읽을 수 없습니다.즉,..
[Docker] 도커 공식문서로 배우기 (6): 이미지 레이어 구조, 유니온 파일 시스템, chroot
·
개발
도커를 이해하는 데 있어 가장 중요한 개념 중 하나가 바로 이미지 레이어(Image Layer) 입니다.도커 이미지는 단일 파일이 아니라, 여러 개의 레이어가 쌓인 구조로 만들어집니다.이 레이어 구조 덕분에 도커는 저장 공간을 효율적으로 사용하고, 빠른 배포와 실행을 하며, 컨테이너를 격리합니다.이 글에서는 도커 이미지 레이어가 어떻게 구성되고, 유니온 파일 시스템과 chroot가 어떤 역할을 하는지를 자세히 알아봅니다.이미지가 여러 레이어로 구성된다는 것도커 이미지는 여러 개의 레이어로 나누어 만들어집니다.각 레이어는 Dockerfile의 한 줄 한 줄이 만든 결과물이라고 이해하면 쉽습니다.예를 들어 자바 애플리케이션 이미지를 간단히 구성해 보면 다음과 같은 레이어 구조가 됩니다.Ubuntu 레이어JD..
[Docker] 도커 공식문서로 배우기 (5): Docker Compose
·
개발
도커 컨테이너는 각 컨테이너가 하나의 기능만 제대로 수행하는 것이 좋습니다. 한 컨테이너가 여러 기능을 담당하는 것은 일반적으로 권장되지 않습니다. 그렇다면 하나의 서비스를 실행하기 위해서는 여러 종속성 컨테이너들 모두에 대해 각각 `docker run` 명령을 실행해야 할까요?그렇게 해도 되지만 실행 외에도 우리는 할 일이 너무 많습니다. 도커는 그런 상황을 위해 `Compose`를 지원합니다. 이 글은 도커 컴포즈가 무엇인지, 그리고 어떻게 사용하는 지에 대해 다룹니다. Docker Compose도커 컴포즈로 우리는 모든 컨테이너와 구성(configuration)을 한 개의 YAML 파일 안에 정의할 수 있습니다. 어떤 프로젝트가 도커 컴포즈로 구성되었다면 아무리 여러 실행 환경을 포함한다 해도, 다..
[Docker] 도커 공식문서로 배우기 (4): 컨테이너, 이미지, 리포지토리, 레지스트리
·
개발
컨테이너기본적으로 하나의 프로세스이고 프론트엔드의 React앱, 또 다른 어떤 백엔드 앱, 데이터베이스 등 각 앱의 구성요소를 위한 격리된 프로세스특징필요한 모든 걸 스스로 가지고 있음컨테이너는 격리되어있어 다른 컨테이너와 서로의 영향이 최소화됨.어디서든 동일하게 작동하며 휴대성이 뛰어남.VM(가상머신)과의 차이VM은 하나의 앱을 격리하기 위해 별도의 커널, 별도의 OS를 생성하고, 이건 오버헤드가 큼여러개의 컨테이너를 실행하는 것은 모두 동일한 커널을 공유하므로 더욱 효율적임 이미지이미지(컨테이너 이미지)는 컨테이너를 실행하는데 필요한 모든 종속성이 포함된 패키지특징이미지는 한 번 생성되면 수정할 수 없음.이미지는 레이어로 구성됨. 레이어는 파일 시스템 변경 사항의 집합임.레지스트리컨테이너 이미지를..
[Docker] 도커 공식문서로 배우기 (7): 이미지 레이어 추가와 새 이미지
·
카테고리 없음
`docker run --name=base-container -ti ubuntu` 명령으로 새 컨테이너를 시작합니다. 이미지가 다운로드되고 컨테이너가 시작되면, 새로운 쉘이 열려있는 것을 볼 수 있습니다.이 쉘은 방금 시작한 컨테이너 안에서 돌아가고 있는 쉘입니다.`root@70597e8a4875` 저는 이렇게 생겼네요. @ 뒤의 난수는 컨테이너의 ID입니다. 출력은 아래처럼 되겠습니다.$ docker run --name=base-container-sample -ti ubuntuUnable to find image 'ubuntu:latest' locallylatest: Pulling from library/ubuntu20043066d3d5: Download completeDigest: sha256:c35..