전체 글

개요이전과 같이 점프 투 FastAPI를 토대로 따라가보자 한다.먼저 FastAPI, models, database, domain 등등 필자가 정의한 개념을 이해하려고 한다. 필자는 아래와 같이 FastAPI에 대한 구조를 잡고 구성했다고 한다.FastAPI 프로젝트 구조파이보 프로젝트를 설정하는 main.py 파일데이터베이스를 설정하는 database.py 파일모델을 관리하는 models.py 파일API를 구성하는 domain 디렉터리frontend FastAPI 프로젝트 구조그런데 FastAPI는 "프로젝트의 구조를 어떻게 하라"와 같은 규칙이 없다. 그래서 프로젝트를 구성할 때 고민을 좀 해야 한다.필자는 위와 같이 말하고 구조를 아래와 같이 정립했다.├── main.py├── database.py..
개요혼자 CRUD를 만들어본 적이 없었다. 그래서 한번 만들어보고자 한다.구글 서칭을 하다보니 점프 투 FastAPI 라는 WikiDocs가 있는 것을 알 수 있었다.이 문서를 기반으로 열심히 따라하고 살을 덧붙여보려고 한다.문서에 나와있는 것과는 다르게 설정한 부분들이 있다. 그런 부분들은 아래 항목으로 정리해놓겠다. 소스 코드는 GitHub 링크에 저장되어 있다.  더 나아가서는 AWS에 Terraform을 이용해서 인프라를 프로비저닝하고 해당 게시판을 운영해볼 수 있으면 좋겠다. 문서와 다른 부분Svelte를 사용하지 않고 React.js를 이용해서 Front-end를 구성했음.Python IDE는 Pycharm으로 하지 않고 VSCode로 구성했음. Interpreter 또한 VSCode로 구성함..
개요오늘은 Terraform 코드를 작성할 때 output for 반복문을 이용한 문제 해결을 작성해보려 한다. 문제문제는 아래와 같다.현재 서브넷은 environment 별로 다른 변수를 넣어주기 위해서 tfvars 파일을 이용해 cidr와 az를 지정해주고 있음이 과정에서 for_each를 이용하게 되는데 다른 모듈에서 생성된 subnet의 id를 참조해야 할 경우가 생김. 이를 output으로 전달하고자 했음output에서 for_each문을 사용할 수 없어서 혹시 해당 for_each로 생성된 리소스의 id를 동일하게 반복적으로 한 output으로 불러올 순 없는지 확인이 필요했음 처음 접근을 할 때는 output 리소스 블록에서 for_each 를 사용할 수 있는데 내가 코드를 잘못 작성해서 p..
개요테라폼 구조를 어떻게 잡았는지 또 문제들을 어떻게 해결했는지 정리해보면 좋을 것 같아 글을 작성한다. 테라폼에 대한 이해도가 굉장히 적어서 공부를 더 꼼꼼히 다시 하고, 코드를 즉시 변경 해야겠다고 느꼈던 순간이다.  현재 테라폼 구조현재 테라폼 구조는 아래와 같은 구조로 구성되어 있다.$ tree ..|-- README.md|-- environment| |-- dev| | |-- backend.tf| | |-- dev.tfvars| | |-- main.tf| | |-- terraform.tfstate| | `-- variables.tf| `-- prod| |-- backend.tf| |-- main.tf| |-- prod.t..
개요Terraform plan과 apply를 수행하기 위해서 GitHub Workflow를 작성하는 과정을 정리 해보았다. Terraform plan공식문서인 링크에서 예시로 제공해주는 yml 파일을 확인하면 Terraform Cloud를 사용하는 것을 알수 있었다. 나는 Terraform Cloud를 사용하지는 않기 때문에 다른 예시를 찾았다. 예시에서는 plan과 apply를 하나의 워크플로우로 관리하는데 나는 plan과 apply를 나눌것이기 때문에 별개의 yml 파일로 구성해주었다.[기존 버전]name: Terraform dev planon: # 수동 실행 포함 workflow_dispatch: push: # dev branch의 경우에만 push branches: - ..
개요테라폼을 사용할 때 자격 증명을 Access Key 방식을 사용하려고 했었는데, 여간 찜찜한 일이 아닐수 없었다. 그래서 검색 중 OIDC를 설정해서 AssumeRoleWithWebIdentity를 이용해 Role을 Assume 해주는 방식이 있다는 것을 알았다. 가이드는 Github 제공 가이드와 AWS 제공 가이드가 있다.OIDC(OpenID Connect)를 사용하면 클라우드 공급자에게 직접 수명이 짧은 액세스 토큰을 요청하도록 워크플로를 구성하여 다른 접근 방식을 취할 수 있습니다. 또한 클라우드 공급자는 OIDC를 지원해야 하며, 액세스 토큰을 요청할 수 있는 워크플로를 제어하는 트러스트 관계를 구성해야 합니다. 현재 OIDC를 지원하는 공급자로는 Amazon Web Services, Azu..
개요최근 개발자 친구들과 함께 토이 프로젝트를 시작했다.토이 프로젝트를 하는 목적은 아래와 같다.현업에서 사용해보지 않았던 기술들 (Terraform, GitHub Actions, ECS launch type ec2) 사용해보기Front-End 및 Back-End 키워드 얻기 일단 현재 다룰 수 있는 기술이 많지 않기 때문에 바운더리를 조금 늘리고 싶었다. 지난 분기 회고에도 동일한 생각을 갖고 있었다. 그래서 Terraform과 Github Actions 또 AWS SAP 자격증 공부를 하고자 했는데, SAP는 그리 급하지 않다고 느껴졌고 많은 회사에서 요구하는 IaC와 CI/CD에 할애하고자 했다. 그래서 개인 시간을 활용해 토이 프로젝트를 진행하며 개인적으로 부딪혀가며 공부해보는게 좋다고 생각했다...
개요쉘 스크립트 또는 명령어를 수행할 때 나오는 출력 결과를 변형해야할 일이 있다. 그런 경우 사용하면 좋은 명령어들을 정리해보고자 한다.명령어tr지정한 문자를 변환하거나 삭제하는 명령어이다.tr [OPTION]... SET1 [SET2]# 주요 옵션-d : SET1 에서 지정한 문자를 삭제합니다.-s : SET2 에서 반복되는 문자를 삭제합니다.-t : SET1을 SET2의 길이로 자릅니다.-c : SET1을 제외한 나머지를 SET2로 치환한다.# SET에 들어갈 수 있는 문자a-za 부터 z 까지의 문자를 변형하고 싶다면 이렇게 사용해도 된다.[:class:]특정 class를 이용해서 특수한 형태를 지정할 수 있음. class는 아래와 같음[:alnum:] : 알파벳 + 숫..
Nowon9159
Nowon의 블로그