728x90
반응형

Minarae's Story 340

Fastapi와 svelte를 이용한 게시판 개발 #2

데이터베이스 연결 데이터베이스에 연결하여서 게시판에서 생성되는 내용을 mysql에 저장하도록 할 것이다. 앞에 Setup.md에서 Database에 연결하기 위한 설정을 해두었다. 이제 관련 내용을 하나씩 채워나가보도록 하겠다. alembic 초기화 alembic을 사용하기 위해서 다음 명령어를 통해서 초기화를 진행한다. alembic init migrations 이 명령어를 입력하고 나면 migrations라는 디렉토리가 생성되며 그 디렉토리 안에 alembic을 사용하기 위한 내용들이 채워진다. alembic 코드 수정 alembic을 사용할 준비를 하였다. 위의 명령어에서 migrations라는 디렉토리를 생성하였고 여기에 필요한 코드와 이후 마이그레이션에서 사용되는 생성 코드들이 저장된다. ale..

Fastapi와 svelte를 이용한 게시판 개발 #1

초기화 본 코드는 python 3.9 환경에서 구성되었다. 프로젝트 생성 프로젝트는 다음 코드로 생성한다. poetry new fastapi-bbs 위의 명령어를 입력하면 fastapi-bbs라는 디렉토리가 생성된다. poetry 라이브러리를 통해서 파이썬 패키지 의존성을 관리하도록 할 것이다. 이제 디렉토리 이름을 변경한다. 처음에 poetry 명령어로 디렉토리를 생성하면 하위에 같은 이름으로 디렉토리가 더 생성된다 여기서는 fastapi-bbs로 생성하였기 때문에 fastapi-bbs 디렉토리 아래 fastapi-bbs라는 디렉토리가 생성된다. 이 디렉토리 이름을 app으로 변경한다. 그럼 디렉토리 구조가 아래와 같다. fastapi-bbs |- app | |- __init__.py |- tests ..

[강남콩 키우기] 꽃피우기

오랜 시간 관심을 갖지 못했더니 그새 강낭코에 꽃들이 피었다. 근데 그 모양이 꼭 콩 모양으로 생겼더라. 나만 그렇게 생각한게 아니고 아내도 같은 말을 하는걸 보니 정말 콩꽃은 콩처럼 생겼나보다. 그냥 음료수를 먹고 컵을 씻어서 콩을 심어서 키웠는데도 이렇게 잘 자라는걸 보니 신기할 따름이다. 이걸 보면서 앞으로는 이런 일회용 컵들을 버리지 말고 이렇게 화분처럼 사용하는 것도 좋겠다는 생각이 든다. 이렇게 처음에는 강낭콩으로 시작하지만 상추를 심을 수도 있고 작은 꽃들을 심을 수도 있을 듯하다. 요새는 텀블러를 많이 가지고 다녀서 일회용 컵이 나올 일이 많지 않지만 가끔 집에 생기면 흙은 많으니 담아서 뭐라도 더 키워봐야겠다. 일단 케일 씨가 있으니 케일부터 심어볼까 싶다. 꽃이 핀 곳도 있고 꽃대까지만..

[가계부 만들기] 지출입 기록 - 설계

제일 많이 사용하고 제일 중요한 자료가 되는 것이 바로 지출입 자료일 것이다. 가계부에서 사실 이게 전부라고 할 수 있다. 어쨌든 근본적으로 이 기록을 남기기 위한 기본 설정을 지금까지 해왔다고 할 수 있다. 가계부를 만들기로 한 이유는 바로 형태가 마음에 딱 맞는 것이 없었기 때문이다. 예를 들어서 대형마트에 가서 장을 본다고 했을 때, 이를 세부적으로 분류해서 기록할 수가 없다. 마트에서 장을 보면 장남감을 살 수 있고, 식재료를 살 수 있고, 또는 생활용품을 구매할 수도 있는데 이를 세부적으로 기록할 수 있는 툴을 제공하는 프로그램이 없다. 그래서 일단은 엑셀로 정리해서 사용했는데 아무래도 파일로 기록하다보니 부족함을 느끼게 된다. 그래서 일단 프로그램을 만들어서 사용해보기로 한다. 기록 형태 우선..

[가계부 만들기] Category 생성/수정/삭제

이전 포스팅에서 카테고리에 관련된 기능을 구현하기 위해 설계한 구조와 리스트를 가져오는 내용을 정리하였다. 이번 포스팅에서는 생성/수정/삭제와 관련된 기능을 기록하려고 한다. 사실 생성/수정/삭제 기능은 이전에 회원 정보를 관리할 때 사용한 기능과 거의 동일하다. 테이블이 바뀌니 모델이 달라지고 패스워드가 없으니 암호화되는 과정이 생략되는 정도로 생각하면 된다. 카테고리 생성 먼저 생성하는 코드를 먼저 구현한다. 이전과 동일하게 로직은 services 아래 category_service.py에서 구현하고 라우팅만 연결하도록 할 것이다. 로직을 먼저 구현한다. 코드는 아래와 같다. # 카테고리 생성 async def create_category( db: AsyncSession, member_no: int,..

[가계부 만들기] 카테고리 설정 - 구조/리스트조회

가계부에서 수입/지출 항목을 입력하는 기능을 만들기 전에 먼저 카테고리 설정에 관련된 기능을 구현하고자 한다. 모든 수입/지출 내역은 카테고리로 정리할 수 있을 것이다. 물론 카테고리 항목이 비어있을 수도 있겠지만 카테고리를 정리해두면 추후에 통계 자료를 만들 때 활용할 수 있는 여지가 많다. 다년간 개발을 하다보니 원 데이터가 상세하면 이를 가공해서 만들 수 있는 통계도 훨씬 다양하게 만들 수 있다. 이전 내용에서 회원 가입시 기본 카테고리를 자동으로 생성해주는 코드를 붙여두었다. 기본적인 카테고리 정보가 있으니 먼저 카테고리 리스틑 가져오는 것부터 시작해서 카테고리를 새로 생성하고, 수정하고, 삭제하는 기능을 구현하도록 할 것이다. 카테고리는 하나의 카테고리 정보가 때어내어서 관리하는 일보다는 리스트..

Sqlalchemy를 통한 postgresql timezone 설정

개발을 하다보면 날짜를 다루는 일을 꽤 많이 하게 된다. 그만큼 중요한 업무이기도 하다. 보통 테이블을 설계할 때 Row 단위로 해당 Row가 생성된 일시와 수정된 일시, 그리고 삭제된 일시를 자동으로 남기도록 한다. 이 때 각 데이터베이스마다 날짜를 다루는 컬럼 타입이 조금씩 상이하다. mysql에서는 timezone이라는 개념이 없이 timestamp, datetime, date 등의 형태로 지정한다. 이와 다르게 postgresql에서는 timestamp에 timezone을 같이 저장하는 형태와 저장하지 않고 timestamp만 저장하는 형태 두 가지로 구분하여서 생성한다. 국내용으로 개발할 때는 굳이 timezone을 저장할 필요없이 timestamp만 저장하면 될 것이고 해외도 같이 서비스를 할..

Programming/Python 2023.05.08

[가계부 만들기] Category Table 구조 변경

카테고리 관련 기능을 구현하려고 보니 카테고리 관련 테이블 구조가 잘못된 것을 알게 되었다. 최초에는 시스템에서 정의한 카테고리만 보이도록 하고 시스템에서 정의한 카테고리는 변경을 할 수 없도록 하려고 했다. 그러나 출력되는 순서를 변경하고 싶거나 시스템 카테고리에 서브로 카테고리를 더 추가하고 싶을 수도 있을 것이라고 판단된다. 그럼 회원이 가입할 때 시스템 정의 카테고리를 회원별로 정의해 주고 회원별로 정의된 카테고리는 각 회원이 자신의 필요에 맞춰 수정할 수 있도록 해야 할 것이다. 그리고 최초 정의한 테이블에는 지출에 대한 카테고리만 생각하고 정의했는데 수입에 대해서도 카테고리를 정의하고 싶을 수 있으므로 카테고리 테이블에 수입/지출에 대한 구분 값을 넣을 것이다. 마지막으로 순서를 변경할 수 있..

[강낭콩 키우기] 폭풍 성장

큰 아이가 학교 과제로 강낭콩을 심어서 관찰일기를 써야 한다고 했던 게 4월 19일로 불과 열흘 전이다. 이렇게 강낭콩을 심으면 얼마나 빨리 크겠어라는 마음과 이거 잘 키워서 강낭콩을 수확하면 올해 수확할 수 있는 품종이 늘겠네라는 생각을 하였다. 그래도 음료수 사 먹고 닦아서 사용하는 컵에서 얼마나 잘 클까 반신반의하였던 것이 사실이다. 강낭콩 3개를 심은 게 4월 19일인데 처음으로 싹이 관찰된 것이 4월 24일이다. 5일 만에 꿈틀꿈틀 싹이 올라오는 것을 관찰하게 되었다. 정작 강낭콩이 안 보이게 심은 쪽에서 강낭콩 첫 싹이 관찰된 것이다. 사실 초등학교 이후에 이렇게 뿌리가 나는 것부터 관찰한 게 처음이라 신기하기도 하다. 식물이 이렇게 자라기 위해서 씨앗에서 뿌리가 나오고 싹이 올라오는 것을 관..

728x90
반응형