본문 바로가기
728x90
SMALL

전체 글115

Database PK가 꼭 필요할까? 왜 필요할까? 1. 글을 작성하게 된 이유 기존 Database를 ORM을 사용하기 위해 연결하면서 Primary Key(PK)가 없을 때는 models.py가 class형태로 묶이지 않는다는 사실을 알게 되었다. 학부시절에 배웠던 내용으로는 Database는 PK FK가 있다. 그리고 PK는 검색할 때 속도적인 측면이나 여러 가지를 고려할 때 "PK는 있어야 한다. 있어야 좋다" 정도로 학습했던 기억이 있다. 그러나 왜? 왜 PK가 있어야 하고 있어야 좋을까 라는 고민이 생겼다. 왜 필요할까? 꼭 필요할까? 2. Database에는 PK가 필요하다. 결론만 이야기하면 RDBMS에서는 PK가 필요하고 무조건 써라. 기본 필드 키(PK)가 없으면 관계형 데이터베이스 쿼리에 문제가 발생한다. DBMS에서 기본키(PK)는 .. 2022. 12. 11.
기존 database를 가져와서 ORM 만들기 1. 이 글의 목표 python에서 ORM을 활용하기 위해서는 통상 models.py라 불리는 데이터 형태를 저장해놓아야 한다. 저번 포스팅에서는 직접 models.py를 작성해서 기존의 database를 불러오는 것을 해보았다. 이번에는 직접 작성하는 것이 아닌 sqlacodegen를 활용해 기존의 database형태를 models.py에 저장하는 법에 대해서 알아보겠다. 2. 기존 database를 models.py에 저장하는 방법 1. sqlacodegen 모듈을 설치한다. pip install sqlacodegen 2. 연결하고 싶은 db를 작성하고 models.py에 저장시킨다.(mysql 기준) sqlacodegen mysql+pymysql://:@:/ > "./models.py" 3. mod.. 2022. 12. 11.
방탈출 검색 서비스 1. 한 줄 요약 내가 하고 싶은 방탈출을 빠르고 정확하게 검색할 수 있는 서비스 2. 생각하게 된 계기 저에게는 6년 넘게 연애 중인 여자 친구가 있습니다. 여자 친구가 방탈출을 굉장히 좋아하는데 방탈출을 찾을 때마다 원하는 방탈출을 찾는 게 너무 힘들다고 하더군요. 그러면서 이런 서비스가 있으면 좋겠다고 제시해주었습니다. (굉장히 자주 가는 편은 아니지만 좋아하고 즐겨하는 편입니다.) 3. 상세 설명 방탈출에 존재하는 여러 가지 기준들이 존재합니다. 1. 어려운 정도 어려움의 정도는 지극히 개인적인 경우가 많다고 생각한다. 그러나 여러 사람들의 생각이 쌓이게 되면 주관적인 데이터도 보편화되고 객관적인 데이터가 될 수 있다고 생각한다. 따라서 방탈출 검색 서비스에서 이용한 사람들의 후기를 기록해 어려운.. 2022. 12. 6.
[FastAPI] FastAPI와 DB(MySQL) 연결하기 1. 이 글의 목표 이미 존재하는 별도의 MySQL DB를 FastAPI에서 ORM을 이용해서 가져올 수 있다. 2. FastAPI와 MySQL(DB) 연결하기 - 디렉터리 구조 . ├── app.py ├── models.py └── database.py - 필요 모듈 설치 pip install fastapi pip install pydantic pip install SQLAlchemy pip install mysql - database.py : 기존에 존재하는 database를 sqlalchemy를 이용해 연결해주는 파일 from sqlalchemy import * from sqlalchemy.orm import sessionmaker DB_URL = 'mysql+pymysql://{USERNAME}:.. 2022. 11. 30.
3. 공평하게 스케줄(근무)을 짜주는 시스템(군대) 1. 한 줄 요약 주어진 규칙에 맞게(공평하게) 근무 스케줄을 만들어주는 시스템(군대) 2. 생각하게 된 계기 이 글을 읽는 나를 포함한 여러분은 근무에 대해서 스트레스를 받아보신 경험이 있으신가요? 내가 현재 군인으로서 그리고 소대장으로서 군대에서 임무수행을 하면서 느꼈던 생각과 현직 간호사이신 누나의 의견을 들으면서 생각난 아이디어이다. 군인은 당직근무라는 것이 존재한다. 당직근무에는 불침번, 무전 근무, CCTV 근무, 위병소 근무 등이 존재하며 이는 부대마다 다르고 아직까지도 엑셀을 이용해서 혹은 한글파일을 통해서 직접 하나하나 짜고 있다. 간호사에게도 근무표라는 것이 존재한다. 데이, 나이트, 이브닝, 오프 등 3교대의 경우에는 날마다 출근하는 시간이 달라진다. 그래서 이것 또한 매 달 다르게 .. 2022. 11. 9.
ORM vs SQL Mapper 1. 글을 작성하게 된 이유 Rest API를 만들면서 생겨난 이슈사항이다. FastAPI를 이용해 request가 왔을 때 response를 해주는 Rest API를 만들고 있었다. response를 위해서는 기존에 만들어진 db(mysql)에서 데이터를 가져와 미리 만들어진 분석 코드를 실행시켜 데이터 분석 결과를 결과값으로 응답해주어야 했다. 이때 기존에 만들어진 db에서 데이터를 어떻게 가져와야 할까 라는 고민이 생겼다. ORM이 좋은 방법일까 아니면 SQL Mapper가 좋은 방법일까 장단점에 대해 비교해보자. 2. ORM vs SQL Mapper ORM 이란? ORM(Object-relational mapping)을 단순하게 표현하면 객체와 관계와의 설정이라 할 수 있다. OOP(Object .. 2022. 11. 5.
728x90
LIST