2024/03/18 42

DockerCompose & MongoDB

원래 글: https://velog.io/@stopmin/DockerCompose-MongoDB 🤔 Docker Compose란 docker compose는 여러 개의 docker container를 모아서 관리하기 위한 툴이다. 웹 서비스는 일반적으로 프론트엔드 서버, 벡엔드 서버, 데이터베이스 서버로 구성되기 때문에 각 서버를 docker container로 연결하여 동작시키고 docker compose를 사용하여 해당 컨테이너들을 관리하는 것이다. 사용 방법 각각의 컨테이너의 Dockerfile를 작성한다(기존에 있는 이미지를 사용하는 경우는 불필요). docker-compose.yml를 작성하고, 각각 독립된 컨테이너의 실행 정의를 한다(경우에 따라는 구축 정의도 포함). "docker-compo..

Backend/FastAPI 2024.03.18

SQLAlchemy

원래 글: https://velog.io/@stopmin/SQLAlchemy ✏️ 정리 계기 저번에 CRUD,TODO 클론코딩하고 쓴 게시물에 보면 계속 import sqlalchemy하던데 저게 정확히 무슨 기능을 하는지 궁금했다. 그런데 당장에 정리하기에는 좀 버거움이 있고, 내용이 상당히 많은지라 따로 정리하면 좋을 것 같아서 이렇게 따로 정리하길 다짐했고 더 늦기 전에 지금 해둬야겠다고 생각했다! 🤔 ORM이 무엇인가? 이번 내용이 방대하게 느껴졌던 이유는 먼저 ORM이 무엇인지에 관해 알아야 했기 때문이다. ORM(Object Relational Mapping)이라 함은, 객체-관계 매핑이다. 객체 관계 mapping? 데이터베이스 내의 리소스(테이블)들을 객체화하여, 각 DBMS(MySQL, ..

Backend/FastAPI 2024.03.18

[FastAPI] CloneCoding (CRUD, ToDO-list)

https://velog.io/@stopmin/FastAPI-CloneCoding-updatedelete 목표 이번에 나온 미션은 FastAPI를 활용해서 to-do페이지를 만드는 것이었고, 학습의 용이성을 위해서 클론 코딩을 통해서 학습 방법을 제안해주셔서 제시해준 유튜브 링크를 통해 학습을 하는게 목표였다. 😵 매우 큰 실수를 하였다 보내주신 유튜브 계정에 많은 자료들이 있길래 구경을 하다가보니 헷갈려서 to-do가 아니라 CRUD를 만들어버렸다. 물론 이걸 나중에 알아채고 급하게 to-do도 해보았고.. 결국에 어쩌면 잘못 확인한 일이 되려 이익을 준 것 같기도 하다. 왜냐하면, CRUD페이지는 곧 Create, Read, Update and Delete기능을 구현하는 페이지로 어차피 to-do페이..

Backend/FastAPI 2024.03.18

Pytest & Github action & Docker

원래 글: https://velog.io/@stopmin/Pytest-Github-action Pytest 🤔 PYTEST 현재 어떠한 platform에서 작동하고 있고, 어떤 에러가 발생했는지 그리고 마지막에 요약을 통해 총 몇 개의 테스트가 통과(pass), 실패(fail)했는 지와 함께 총 테스트 시간을 알려준다. "pytest is a mature full-featured Python testing tool that helps you write better programs." Test Driven Development 테스트 주도 개발이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 최근 이러한 ..

Backend/FastAPI 2024.03.18

개발환경 설정 + 패키지 정리

원래 글: https://velog.io/@stopmin/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%ED%8C%A8%ED%82%A4%EC%A7%80 개발 환경 Python 가상환경을 쓰면 될 것 같은데(?) 그냥 하는 김에 파이썬 버전 업그레이드 하려고 하는데 터미널에서 permission Denied오류가 떠서 나랑 비슷한 일을 겪은 분이 정리한 글을 보고 해결했다. 그럼에도 계속 계속 안돼서 결국 version 폴더 보니깐 개판이라 정리하니깐 해결이 얼추 됐다. pyenv 다양한 버전의 파이썬을 관리하는 도구이다. ➡️ 프로젝트 하는데 편함 pip 기반으로 동작하지만, 프로젝트 별로 격리된 가상환경과 프로젝트 단위의 패키지 관리 매커니즘을 제공한다. pipenv 가상 환경에서..

Backend/FastAPI 2024.03.18

fork한 repo를 origin에 push

저번에 혼자서 공부했던 git 사용법 가지고는 정말 아~무것도 할 수 없었음을 느끼는 중이다 저거가지고는 혼자서 프로젝트 한거 커밋하고 푸시하는 것 밖에 못함을.. 너무 늦게서야 깨닫게 되었다. fork한 repo에 내가 수정한 파일을 올리는게 굉장히 어지러웠다. 왜냐하면, 내가 fork한 이후 다른 분이 수정한 파일을 수정한다..라는 점이 굉장히 이대로 push하면 대참사가 일어날 것 같은.. 느낌을 주었기 때문이다. 그런데 어떻게 해야하지 어떻게 해야하지 고민을 해봐도 뭔가 내가 뭘 제대로 모르는지 알 수가 없었다. 아는게 있어야 내가 뭘 지금 원하고 근데 그 방법을 모르니 구글링을 해서 어찌저찌 답을 찾아가는데, 정말 뭐라고 검색해야 할 지 감이 오지 않았다. 아 정말 공부를 계속 열심히 해보면서 ..

Git 2024.03.18

원격 저장소 사용하기

## 프로젝트 올리는 실습 과정 ### 1. GitHub 계정을 만들고 create repository를 해준다 ![](https://velog.velcdn.com/images/stopmin/post/325b7515-54e8-4d91-8b62-567c88ebda08/image.png) 위에 사진에 있는 2번째 박스를 복사해서 VScode 터미널에 복붙해준다. 그러면 아래와 터미널에 아래와 같은 말이 나오면서 ![](https://velog.velcdn.com/images/stopmin/post/14356728-bd48-41af-89f4-2594b98a3be8/image.png) ### 2. 깃허브를 새로고침해주면 내 프로젝트가 올라갔음을 확인할 수 있다. ![](https://velog.velcdn.co..

Git 2024.03.18

branch를 합치는 두 가지 방법

merge VS rebase 진행하는 프로젝트의 성격에 따라 브랜치의 사용 내역들을 남겨둘 필요가 있다면 merge를 히스토리를 깔끔하게 만드는 것이 중요하다면 rebase를 사용하는 것이 좋다. 웬만하면 협업 중에 rebase를 쓰지 않는게 좋다. 실습하기 1. merge로 합치기 main 브랜치에서 add-coach 브랜치를 merge하면 아래와 같이 나온다. 명령어는 아래와 같다. git merge add-coach merge는 reset으로 되돌리기가 가능하다! 😛 merge도 하나의 커밋이다! merge하기 전 해당 브랜치의 마지막 시점으로 이동한다! 그리고 병합된 브랜치는 삭제한다 git branch -d add-coach2. rebase로 합치기 new-teams브랜치를 main브랜치로 re..

Git 2024.03.18

여러 branch 만들어보기

Branch: 분기된 가지 (다른 차원) 프로젝트를 하나 이상의 모습으로 관리해야 할 때 사용한다. 실배포용, 테스트서버용, 새로운 시도용 여러 작업들이 각각 독립되어 진행될 때 신기능 1, 신기능 2, 코드개선, 긴급 수정 각각의 차원에서 작성한 뒤 확정된 것을 메인 차원에 통합 이 모든 것을 하나의 프로젝트 폴더에서 진행할 수 있도록 해준다. 1. 브랜치 생성 / 이동 / 삭제 1) 브랜치 생성 아래 코드를 통해 원하는 이름으로 branch를 생성하기 git branch (이름)아래 코드를 통해 브랜치 목록 확인 git branch 2) 브랜치 이동 해당 브랜치로 이동 git switch (이름)아래 사진과 같은 터미널 소스트리에서 확인 🤓브랜치 생성과 동시에 이동하기 git switch -c (이름..

Git 2024.03.18