2024/01 3

[mysql] docker로 mysql 실행하기

요즘엔 docker가 참 개발을 편하게 해주는 것 같습니다. 오늘은 mysql을 docker로 실행해보도록 하겠습니다. 먼저 이미지를 받아줘야 합니다. 아래 명령어를 활용하여 5.7 버전의 mysql을 받아주겠습니다. docker pull mysql:5.7 이제는 container 실행 명령어를 통해 실행만 하면 됩니다. docker run --name mysql -e MYSQL_ROOT_PASSWORD=1234 -e TZ=Asia/Seoul -d -p 3306:3306 mysql:5.7 옵션이 좀 많다보니, 옵션을 하나씩 훑어 보겠습니다. 먼저 --name 옵션은 컨테이너의 이름을 지정하는 옵션으로 mysql로 컨테이너 이름을 정해주었습니다. -e 는 환경변수를 집어넣는 옵션인데, root passwo..

ETC/MySQL 2024.01.31

모노 레포(Monolithic Repository)

오늘은 모노 레포 구조에 대하여 소개해보려고 합니다. 회사에서 업무를 하다보면, 프로젝트 별로 레포를 구분하기도 하는데 프로젝트가 점점 많아지면서 레포지토리 갯수가 그만큼 많아지게 되면, 유지보수 측면에서는 점점 복잡하게 됩니다. 프로젝트가 나뉘어져서 레포지토리가 나뉘더라도, 사용하는 라이브러리나 코드는 비슷하다보니 모노 레포를 적용하면 훨씬 관리가 용이해지는 효과를 볼 수 있습니다. 아래의 링크는 'Why Google Stores Billions of Lines of Code in a Single Repository'라는 제목으로 구글에서는 왜 하나의 레포로 관리하고 있는지 설명하는 글입니다. https://dl.acm.org/doi/pdf/10.1145/2854146 위의 글에서 설명하는 모노 레포의..

ETC/Git 2024.01.21

[Python] contextvars

fastapi가 등장한 이후로, python에서도 비동기로 구현하는 방식이 많이 활성화되고 있습니다. 멀티 스레딩으로 구현할 때는, thread의 context를 활용해서 로그를 남겨서 쉽게 모니터링 할 수 있었는데 비동기에서는 thread context가 없어서 해당 부분을 해소하기 위해서 등장한 것이 contextvars입니다. contextvars는 파이썬 표준 라이브러리로 따로 설치를 해야하는 것은 없습니다. 사용법은 매우 간단합니다. ContextVar를 한 번 선언을 하고, set 함수를 호출하여 context를 설정해주면 get 함수를 호출해서 가져다 쓸 수 있습니다. 바로 예시 코드를 보겠습니다. import asyncio import contextvars import random impo..

python 2024.01.07