본문 바로가기

분류 전체보기

(383)
[GCP] Cloud Storage Cloud Storage는 파일을 "객체"로 저장하는 객체 스토리지다. VM에 붙이는 영구 디스크)랑 완전히 다르다.영구 디스크 vs Cloud Storage- 영구 디스크: VM에 붙여서 OS, DB가 쓰는 저장장치(블록 스토리지)- Cloud Storage: VM 없이 독립적으로 파일 보관, 제공(객체 스토리지) HTTP로 접근, 무제한 확장, 정적 웹사이트 호스팅 가능앱에서 사용자가 업로드한 이미지를 저장한다면? VM 디스크에 저장하면 VM 죽을 때 위험하고 확장도 어렵다. Cloud Storage 버킷에 넣으면 VM과 무관하게 안전하고, URL로 바로 서빙도 된다. 실무에서 파일 저장은 거의 이걸 쓴다. 버킷(Bucket)버킷은 Cloud Storage의 최상위 컨테이너이다. 모든 파일(객체)은 ..
[GCP] 인스턴스 그룹(템플릿, 자동 확장) 인스턴스 그룹여러 VM을 하나의 단위로 묶어서 관리하는 것 1) 관리형 인스턴스 그룹(MIG, Managed Instance Group)- 템플릿을 기반으로 똑같은 VM을 여러 개 자동 생성, 관리- 자동 확장, 자동 복구(VM 죽으면 자동으로 새로 띄움), 롤링 업데이트 가능- 실무에서 거의 이거 사용 2) 비관리형 인스턴스 그룹(UMIG, Unmanaged Instance Group)- 서로 다른 사양의 VM을 그냥 묶기만 함- 자동 확장, 자동 복구 안 됨인스턴스 템플릿MIG를 만들려면 먼저 템플릿이 필요하다. VM의 머신 타입, 디스크, 이미지, 네트워크, 시작 스크립트 등 사양을 미리 정의해둔 설계도이다. 템플릿은 한 번 만들면 수정이 불가능하다. 사양을 바꾸려면 새 템플릿을 만들어서 MIG에 ..
[GCP] VM 구성 요소(feat. 스냅샷 떠서 새 디스크 만들기) VM을 구성하는 요소들을 알아보자.1) 머신 타입VM의 CPU, 메모리 사양이다. 크게 계열(family)로 나뉜다. 종류- 범용: 가장 흔하게 쓴다. 웹서버, 앱서버 등 - E2(가장 저렴, 비용 최적화) / N2, N2D, N1(E2보다 성능 좋음) / C3 등 최신 세대- 컴퓨팅 최적화: CPU 성능이 핵심일 때. 게임 서버, 고성능 연산 - C2- 메모리 최적화: RAM이 많이 필요할 때. - M1, M2- 가속기 최적화: GPU 붙은 거 - A2 다음 명령어를 통해 머신 타입 종류를 직접 볼 수 있다.gcloud compute machine-types list --filter="zone:asia-northeast3-a" --limit=202) 영구 디스크VM의 저장장치(디스크). VM과 분리된 ..
[GCP] IAM(Identity and Access Management) IAM이란? "누가(Member)에게 / 어떤 권한(Role)을 / 어떤 리소스(Resource)에 줄지." 정하는 권한 시스템이다. 구성요소 1 — 구성원 (Member, "누가")권한을 받는 주체이다. 종류1) 사람 계정: 실제 사람의 Google 계정2) 그룹: 여러 계정을 묶은 Google 그룹. 사람마다 일일이 권한 주는 대신 그룹에 한 번 주면 편함.3) 서비스 계정(Service Account): 사람이 아니라 앱·VM·서비스가 쓰는 계정. 이게 클라우드 특유의 개념이라 꼭 짚어야 한다.앱이 Cloud Storage에 파일을 저장한다고 해보자. 이때 "앱"이 누구 권한으로 저장하느냐? 사람이 매번 로그인할 순 없기 때문에 앱에게 서비스 계정을 발급하고, 거기에 "스토리지 쓰기" 권한을 준다...
[GCP] 네트워킹(VPC에 VM 띄우기) VPC(Virtual Private Cloud)란? 내 GCP 안에 만드는 가상 사설 네트워크.비유하면, 거대한 건물(GCP) 안에서 나만의 사무실 층 하나(VPC)를 임대하는 것이다.그 층 안에 책상(VM)들을 놓고, 책상끼리 내부 전화선(내부 통신)으로 연결하고, 각 층 출입문에 경비(방화벽)을 둬서 누가 들어올 수 있을지 정한다. 1) VPC 네트워크: 전역(global) 리소스. 하나의 VPC가 여러 리전에 걸쳐 있을 수 있다.2) 서브넷: 지역(regional) 리소스. VPC를 리전별로 잘게 나눈 구역. 각 서브넷은 특정 리전에 속하고, IP 범위(ex: 10.0.0.0/24)를 가진다. VM은 이 서브넷 안에 들어가서 내부 IP를 받는다.3) 방화벽 규칙: 어떤 트래픽을 허용/차단할지 정하는..
[FastAPI] API 만들기 이전 글에서 만든 모델을 기반으로 질문 목록 API를 만들어보자. ↓↓↓↓https://winterflower.tistory.com/entry/FastAPI-SQLAlchemy%EC%99%80-Alembic%EC%9C%BC%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0 [FastAPI] SQLAlchemy와 Alembic으로 데이터베이스 관리하기SQLAlchemy ORM 라이브러리 사용하기ORM(object relational mapping)을 이용하면 쿼리를 직접 작성하지 않아도 파이썬 문법만으로 데이터베이스를 다룰 수 있다. 파이썬 ORM 라이브러리 중 가장 많이 사용..
[삽질기록] iOS Safari에서 토스페이먼츠 카드 등록창 닫으면 앱이 종료되는 현상 🚨 문제 상황토스페이먼츠 빌링(정기결제) 연동 작업 중이었다. 사용자가 구독을 시작하려면 먼저 카드를 등록해야 하는데, 이때 토스페이먼츠의 빌링 카드 등록창을 모달 형태로 띄우는 흐름이었다. iOS Safari에서 카드 등록 버튼을 누르면 토스 결제창이 정상적으로 떴다. 그런데 결제창을 닫는 순간(뒤로가기나 닫기 버튼), 원래 화면으로 돌아오는 게 아니라 Safari 앱이 통째로 종료되는 현상이 발생했다. 다른 브라우저에서는 모두 정상적으로 원래 화면으로 복귀했고, 이 증상은 iOS Safari에서만 재현됐다. 흐름은 이렇다.구독 관리 페이지 → 카드 등록 클릭 → 토스 결제창 진입 (cross-origin) → 결제창 닫기 → (다른 브라우저) 원래 화면 복귀 ✅ ..
[DND] DND 14기 프로젝트 회고 DND 동아리 활동이 끝나고 꽤 시간이 지났다. 끝난 직후에 취업을 하게 되면서 정신없이 지내다 보니 이제야 회고를 쓰게 되었다.. 이 프로젝트는 나한테 기술적으로 정말 많이 성장한 프로젝트라서 기록으로 남겨두고 싶었다. 프로젝트 소개찍어줄게는 혼자 여행 가거나 혼자 나들이 갔을 때 사진 찍어줄 사람이 없는 사람들을 위한 실시간 매칭 플랫폼이다. 사진을 찍어주고 싶은 사람과 찍어달라는 사람을 연결해주고, 실시간 매칭과 동행 예약 두 가지 방식 모두 제공한다. https://github.com/dnd-side-project/dnd-14th-3-frontend GitHub - dnd-side-project/dnd-14th-3-frontend: 📸 사진 촬영 매칭 플랫폼, 찍어줄게📸 사진 촬영 매칭 플랫..