0. CloudFormation 템플릿이란?CloudFormation 템플릿은 AWS 리소스(EC2, S3, IAM 등)를 코드(.yaml 또는 .json)로 정의한 문서이다.템플릿을 구성하는 섹션은 다음과 같다. • Resources: EC2 인스턴스, Lambda 함수, RDS 데이터베이스 등 생성할 AWS 자원 정의 • Parameters: 템플릿을 실행할 때마다 다르게 설정할 수 있는 변수 값 정의 • Mappings: 조건에 따라 사용할 리소스를 선택하거나 설정할 때 사용하는 키-값 맵 정의 • Outputs: 생성된 리소스의 정보를 출력으로 제공하여 다른 템플릿이나 서비스와 연계 가능 • Conditions: 특정 조건에 따라 리소스를 생성하거나 생성하지 않게 설정 가능1. 템플릿을 보관하는 ..
1. 학습 목표S3 Bucket을 생성하는 YAML 템플릿을 작성할 수 있다.AWS 콘솔에서 CloudFormation 스택을 생성할 수 있다.템플릿(Template): YAML/JSON으로 작성된 인프라 정의서스택(Stack): CloudFormation 템플릿을 실행하여 AWS 리소스를 생성하는 단위2. 스택 생성하기S3 Bucket을 생성하는 YAML 템플릿 파일 생성생성한 YAML 템플릿을 AWS 콘솔에서 CloudFormation에 올려서 스택 만들기업로드한 템플릿은 s3에 자동 저장된다.이미 s3에 저장된 템플릿을 가져올수도 있다.# S3 버킷을 생성하는 CloudFormation 템플릿AWSTemplateFormatVersion: 2010-09-09Resources: KumaS3Bucket..
1. CloudFormation이란?AWS 인프라를 코드(YAML/JSON)로 정의하여 자동으로 생성 및 관리할 수 있는 서비스(IaC: Infrastructure as Code).인프라 관리 간소화, 신속한 인프라 복제, 간단한 인프라 변경 사항 제어 및 추적의 장점이 있다.2. CloudFormation 핵심 개념개념설명템플릿 (Template)YAML/JSON 파일로 작성된 인프라 정의스택 (Stack)템플릿을 실행하여 생성된 AWS 리소스 묶음리소스 (Resources)CloudFormation으로 생성할 AWS 서비스 (예: S3, EC2 등)3. CloudFormation 템플릿 예시AWSTemplateFormatVersion: 2010-09-09Resources: KumaS3Bucket: ..
1월 ~ 3월: 몸은 따뜻했지만 마음이 추웠던 겨울1월부터 3월까지는 취업을 위해 하루종일 집에 있었다.동시에 사이드 프로젝트를 2개를 수행해서 좀 바쁘기도 했다.지금 생각하면 취준의 조급함과 사람에 대한 그리움이 복합적으로 작용해서 상황을 고려하지 않고 무리한 스케줄을 잡았던 것 같다.취준 기간 동안 많은 지원과 면접 끝에 한 회사에 합격할 수 있었다.3월 8일에 최종 합격을 하고, 4월 1일 첫 출근날이 되기 전까지는 여태껏 만나지 못했던 사람들을 만나고, 푹 쉬며 하루를 보냈다.4월: 책을 많이 읽었던 달지금 회사는 온보딩 때 책 8권을 읽게 했다.부끄럽지만 지난 몇 년간 읽은 책의 총합이 5권은 될까?또한 기술서적만 읽었기 때문에, 교양서적은 전혀 보지 않았다.이번 기회에 꽤 많은 책들을 읽어볼 ..
성능 지표성능이란 단순하게 웹사이트가 얼마나 빠른가?를 의미한다.그런데 웹사이트를 '빠르게' 만든다는 것은 어떤 의미일까? 사실 성능은 상대적이다.- (고성능 디바이스, 빠른 네트워크)의 유저에게는 사이트가 빠를 수 있지만, (저성능 디바이스, 느린 네트워크)의 유저에게는 사이트가 느릴 수 있다.- 똑같은 시간에 로딩이 완료되더라도, 흰 화면이었다가 한번에 로드되는 것과 각 요소가 점진적으로 로드되는 것에 따라 후자가 더 빠르게 로드된다고 느낄 수 있다.- 사이트가 빠르게 보이더라도, 사용자 상호작용에 반응하지 않을 수도 있다. 따라서 성능을 이야기할 때는 지표를 이용하는 것이 좋다.또한 그 지표가 유용한지도 함께 고려하는것이 좋다.성능 지표를 측정하는법성능 지표는 일반적으로 두 가지 방법으로 측정한다...
들어가기웹페이지를 만들 때 랜딩 페이지의 로딩 시간은 중요하다.페이지 로드 속도가 느려지면 그만큼 사용자 이탈률도 높아진다.이때 문제를 해결하기 위해서 CDN 캐싱 등 여러 방법을 이용할 수 있지만,코드 레벨에서의 가장 대표적인 방법은 dynamic import이다.용어 정리용어부터 짚고 넘어가면 좋을 것 같다.초기 로딩 시간 줄이기에 대해 검색하면 code splitting, dynamic import, lazy loading 키워드들을 보게된다.이를 정리하면 다음과 같다:dynamic import는 lazy loading을 하기 위한 수단이고, lazy loading을 하기 위해서는 code splitting이 선행되어야 한다.즉 코드 레벨에서 dynamic import를 사용하면 번들링 때 code..
닌텐도 스위치가 떠오르는 표지를 가진 "이와타씨에게 묻다"는 닌텐도 전 CEO 이와타 사토루가 주변 인물들과 나눈 대화와 인터뷰를 엮은 책이다.어릴 적 닌텐도 DS로 마리오, 테트리스, 포켓몬 게임을 즐겼던 추억이 떠올라 재미있게 읽을 수 있었다. 이 책은 이와타 씨의 일대기와 함께 그의 철학과 생각을 전해준다. HAL 연구소의 아르바이트 직원부터 개발자, 닌텐도 경영자까지 각 역할에 맞는 마음가짐과 실제로 했던 행동들을 들려준다. 다음은 책을 읽으며 가슴에 와닿은 부분들이다. 1. 신입에게 가장 요구하는 것은 '아는척 하며 겉치레하지 말고, 모르는 것은 부끄러워하지 않는 마음가짐'입니다. 그리고 훈계를 친근하게, 하지만 진지하게 받아들이는 태도가 중요합니다. 2. 서로 선의를 지녔지만, 상대를 인정함으..
Query는 data fetching으로 받은 비동기 데이터이다.(GET)Mutation은 그 데이터를 업데이트하는 액션이다.(POST, PUT, DELETE) Mutation이 끝나면 대부분 Query에도 영향을 줄 것이다.예를 들어, `issue`데이터를 업데이트 하면 상위 개념인 `issues` 데이터에도 영향을 준다.따라서 React Query가 Mutation과 Query를 연결하지 않는다는 사실에 놀랄 수도 있다. 그 이유는 꽤 단순하다.React Query는 개발자에게 데이터를 맘대로 관리할 수 있도록 자유를 준 것이다.모든 상황에서 Mutation 이후 re-fetching(invalidation)이 필수는 아니다.예를 들어 Mutation api가 업데이트된 데이터를 반환해준다면, 그 데..