본문 바로가기

728x90
반응형

분류 전체보기

(337)
pyenv를 알아보자. HTML 삽입 미리보기할 수 없는 소스 개요 python으로 개발하다 보면 python version이 프로젝트 별로 상이할 때가 존재한다. 어떤 Project에서는 python 2.x 어떤 Project에서는 python 3.x가 필요하게 되는 상황들이다. pyenv를 알기 전까지는 위와 같은 상황이 있을때 brew를 이용하여 특정 python version을 다시 설치하고 해당 python 경로를. zshrc에 세팅함으로써 다뤄왔기 때문에 Python Version을 변경하여 무언가를 테스트하려고 할 때는 상당히 귀찮은 과정이었다. 그러나 Python 3.8.x ~ 3.9.x 사이를 많이 사용해 왔기 때문에 version끼리 호환되지 않는 현상이나 library가 존재하는 상황도 마주 치친 않았던 것..
dictionary를 dataclass로 만들고 다시 class로 정의하기 개요 외부에 request를 보내서 응답받는 데이터가 dictionary인 경우가 생긴다. 이를 다시 Project Source 내에서 적절한 Objects로 변환해서 사용해야 하는 상황일 때 써먹는 방법에 대한 글이다. dataclass 변환에 사용할 dictionary 다음은 외부에 request를 보내서 받은 dictionary를 dataclass로 변환하기 위해 가정한 dictionary이다. data = { "account_balance": -9999, "address": None, "business_vat_id": None, "created": 1694803249, "currency": "eur", "resource": {}, "meta": [] } data에 들어있는 key에 대한 type에..
[FastAPI] 실행은 Factory Pattern을 적용하자. HTML 삽입 미리보기할 수 없는 소스 개요 최근에 FastAPI를 통해 이것저것 시도해보고 있는 중이다. 무언가를 새롭게 배우고 있는 중이라 확실히 알아가는 재미를 느끼고 있다. 문제는 개발하려는 개념을 쪼개서 Project Directory에 녹이려 하다 보니 FastAPI Document에서 제시하는 내용을 가지고는 부족함을 느끼고 있다. 그래서인지 항상 Google에 이것저것 검색하게 되면서 "삽질"의 시간이 늘어남을 체감 중이다. 이번 글에 기록할 내용은 FastAPI를 실행시키기 위한 진입점인 main.py 혹은 경우에 따라서는 app.py 로도 사용하는 파일에 대해 고찰한 내용이다. FastAPI, main.py? FastAPI Document는 FastAPI를 구동시키기 위해 main.py..
[TryHackMe] Valley 개요 이번 Challenge인 Valley에서는 Priviliege Esclate 단계에서 "이렇게도 풀어낼 수 있구나"를 알게 되었다. 즉 아무리 생각해도 풀어내는 방법을 모르겠어서 다른 WriteUp을 참고했다. 풀고 나서 보면 쉽지만 왜 푸는 과정에서 이런 아이디어가 안 떠오르는지 싶은데 이런 부분이 참 재밌어서 이런 안 풀리더라도 웬지 계속 도전하고 있는 것 같다. Scan ╰─$ rustscan -b 500 -a TARGET_IP .----. .-. .-. .----..---. .----. .---. .--. .-. .-. | {} }| { } |{ {__ {_ _}{ {__ / ___} / {} \ | `| | | .-. \| {_} |.-._} } | | .-._} }\ }/ /\ \| |\..
[Docker] Docker에서 MySQL 사용 시 참고할 부분들 HTML 삽입 미리보기할 수 없는 소스 개요 Docker를 통해 MySQL을 사용 중이다. 개인적으로는 MySQL Server을 Local에 설치해 사용하기엔 다소 거부감이 든다. Local에 MySQL Server를 설치하는 것이 다소 무거운 느낌이고 나중에 삭제를 한다고 해도 설치된 파일들을 일일이 찾아 제거하는 작업도 번거롭기 때문이다. MySQL Container를 그때그때 올리고 내리는 방식이 편하긴 하지만 아무래도 이렇게 사용하다 보면 Docker를 통해 MySQL을 사용하는 것이다 보니 기존에 MySQL Server에 설정해야 할 것이 "뭔가 다르게 해야 되지 않을까?"라는 궁금증이 생긴다. 이번 포스팅은 필자가 Docker에서 MySQL의 사용하는데 유용하게 써먹었던 사항들에 대해 정리한 ..
[TryHackMe] Pickle Rick This Rick and Morty-themed challenge requires you to exploit a web server and find three ingredients to help Rick make his potion and transform himself back into a human from a pickle. 개요 Pickle Rick은 고난이도의 기술이라던가 복잡한 개념을 요구하지는 않은 난이도의 Challenge였다. 다만 중간중간 나오는 정보를 어디에 어떻게 쓸 것인가?를 잘 풀어내야하는데 생각을 너무 많이 한다면 너무 어렵게 접근하여 삽질하는 시간이 늘어나는 Challenge인 듯 하다(필자가 그러했다). Scanning nmap으로 port scan부터 시작해보자. ╰─$ s..
[FastAPI] Pydantic GenericModel을 이용한 Response Data 문서화 HTML 삽입 미리보기할 수 없는 소스 개요 최근 들어 FastAPI를 다뤄볼 일이 생겼다. 그동안 Django나 Flask를 다루면서 겪었던 문제인 API 문서 생성 방법은 추가적인 라이브러리를 사용하거나 직접 문서를 작성하는 방식이었다. 이는 결국 라이브러리를 익히고 어떻게 사용해야 할지를 또 고민해야 한다는 점에서 러닝 커브가 발생했다. 그러나 FastAPI에는 API 문서를 자동 생성해 주는 기능이 포함되었기에 편리함을 몸소 체감 중이다. 조금 더 알아보다가 type hint를 잘 사용한다면 조금 입맛대로 표현해볼 수 있지 않을까 싶은 생각이 들었다. FastAPI에서 API 문서를 생성할 때는 pydantic의 BaseModel과 많이 연계된 듯 보이는데 그렇다면 pydantic에 Generic..
[SQLAlchemy] SQL Compilation Caching HTML 삽입 미리보기할 수 없는 소스 개요 SQLAlchemy를 통해 DB에 Query를 날리는 코드를 짜던 도중이었다. 평소에 만들던 방식으로 코드를 작성해 놓고 SQLAlchemy의 log를 살펴보던 도중 이상한 점을 발견했다. 이상한 점을 발견한 log는 다음과 같다. 2023-08-08 15:46:01,882 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2023-08-08 15:46:01,883 INFO sqlalchemy.engine.Engine SELECT * FROM member WHERE member_id = %(member_id)s; 2023-08-08 15:46:01,883 INFO sqlalchemy.engine.Engine [cached si..

728x90
반응형