본문 바로가기

전체 글37

파일 읽기와 쓰기 파일을 읽거나 쓸 때, 메모리를 관리하는 방식에 차이가 있다.BASE_DIR = os.path.dirname(__file__)file = open(os.path.join(BASE_DIR, "file.json"), "r")env_info = json.load(file)[environment]file.close()file.json을 읽어 file 변수에 저장env_info에 file의 일부를 저장file.close()를 통해 메모리 관리 BASE_DIR = os.path.dirname(__file__)with open(os.path.join(BASE_DIR, "storage.json"), "r") as f: env_info = json.load(f)[environment]file.close()를 작성하.. 2024. 3. 25.
Docker, FastAPI FROM python:3.12.2WORKDIR /srcCOPY ./requirements.txt /src/requirements.txtRUN pip install --no-cache-dir --upgrade -r /src/requirements.txtCOPY ./app /src/appCOPY ./logs /src/logsCOPY ./test /src/testCOPY ./application.json /src/application.jsonEXPOSE 8000CMD ["python", "app/main.py"] 도커는 컨테이너 환경에서 도커 이미지에 빌드된 코드를 실행합니다.컨테이너 안을 하나의 서버 (클라우드 서비스에서 새로 구성한 서버라 가정) 라고 가정하고 예제 코드를 설명하겠습니다. FROM새롭게 구.. 2024. 3. 24.
클라우드 개발 서버와 동일한 설정의 운영 서버 구축 업무를 하면서 개발 서버와 동일한 운영 서버를 세팅해야 한다거나 반대의 경우가 있을 수 있다. 그리고 대부분 계약된 클라우드 서비스를 관리해주는 팀이 있다. 그렇기 때문에 기본적으로 개발 환경과 동일한 서버와 DB 인스턴스 생성을 요청하면 된다. 내가 할 작업은 신규로 생성한 서버에 기존 도메인을 붙이고, 기존 서버에 개발 서브 도메인을 생성하여 붙이는 작업이었다. (DB 서버도 신규 생성했지만, 스키마 및 데이터 마이그레이션 작업을 당장 할 것이 아니기 때문에 이 부분은 작업하지 않았다.) 일반적으로 개인 프로젝트의 경우, 싱글 도메인 및 SSL 인증서를 신청해서 환경 세팅을 해 봤을 수 있다. (비용 문제) 이로 인해, 여러 도메인 및 SSL 인증서를 또 신청해야 하는 것이 아닌가 할 수 있다. 하지.. 2024. 3. 10.
235, Lowest Common Ancestor of a Binary Search Tree # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': """가장 작은 부모 찾기 경우의 수: * P, Q가 부모 노드 왼쪽에만 존재하는 경우 * P, Q가 부모 노드 오른쪽에만 존재하는 경우 * P는 부모 노드 왼쪽, Q는 부모 노드 오른쪽에 존재하는 경우 * P 또는 Q 중 하나가 루트 노드에 존재하는 경우 LCA, Lowes.. 2024. 2. 25.