반응형

분류 전체보기 93

Django 실전 운용 - 2. Django project 생성

본 시리즈는 Python과 Django Backend 개발 경험이 있으신 분들을 대상으로 작성되었습니다. 안녕하세요. 글쓰는 개발자 입니다. 다수의 다양한 Project를 수주 받는 SI회사에서 Project 초기 세팅 비용 최소화 및 회사 차원의 기술 축적을 위해 수행한 Project Base 구축 과정을 시리즈로 소개합니다. 1. Project Base 구축 필요성 (요구 기능과 필요한 기술) 2. Django project 생성 3. Django, mariaDB, Redis with Docker Compose (예정) 4. settings.py 개발 환경, 운영 환경 분리 (예정) 5. Logging (예정) 6. Error Log 관리자 email 전송 (예정) 7. Django, Celery, ..

Backend/Django 2022.12.25

Django 실전 운용 - 1. Project Base 구축 필요성 (요구 사항과 필요한 기술)

본 시리즈는 Python과 Django Backend 개발 경험이 있으신 분들을 대상으로 작성되었습니다. 안녕하세요. 글쓰는 개발자 입니다. 다수의 다양한 Project를 수주 받는 SI회사에서 Project 초기 세팅 비용 최소화 및 회사 차원의 기술 축적을 위해 수행한 Project Base 구축 과정을 시리즈로 소개합니다. 시리즈의 첫 번 째로 제가 어떠한 동기부여로 이 목표를 달성했으며, 무엇을 이루고자 했는지 소개하겠습니다. 1. Project Base 구축 필요성 (요구 기능과 필요한 기술) 2. Django project 생성 3. Django, mariaDB, Redis with Docker Compose (예정) 4. settings.py 개발 환경, 운영 환경 분리 (예정) 5. Log..

Backend/Django 2022.12.23

Python Class Decorator 인자 값 전달 (Django, DRF, 권한 검증)

안녕하세요. 글쓰는 개발자 입니다. Python Decorator 에 관해 찾아보던 중 대부분의 자료가 가장 기본적인 case (인자를 전달하지 않는 함수형 Decorator) 만을 다루기에 다음과 같이 제가 필요로 하는 기능을 만족하는 Decorator 를 소개하고자 합니다. 1. Decorator 가 인자를 받아 올 수 있어야 함 2. Decorator 에 의해 wrapping 되는 method 의 인자로 받아 올 수 있어야 함 Decorator에 대한 Code Sample 만 소개하는 것 보다는 실무에서 제가 '어떤 상황에서 어떤 문제를 해결하기 위해 사용 했는지', 문제를 정의 하고 설계 및 구현에 이르기 까지의 과정을 간단히 소개하며 작성 했습니다. 구현 속에 Decorator 기능을 포함 시켰..

Python 2022.11.22

Kotlin 설치, 터미널에서 실행하기

사내 새로운 서비스 개발에 Kotlin + Spring Boot 조합으로 백엔드를 구성하기로 하였습니다. Kotlin은 처음 접해보고 Java 또한 처음 국비학원에서 개발을 배울 때 정도만 사용해봤던 터라 약간 막막하기도 했지만 Spring Boot를 꼭 써보고 싶었던 저로서는 굉장히 좋은 일 이기도 합니다. 현재, Kotlin을 JetBrains 공식문서와 Kotlin in action 도서를 활용해 학습 중 입니다. 공식 문서에서는 JetBrains에서 개발한 언어답게 Kotlin 개발 시, IntelliJ IDE 사용을 권장하고 있습니다. 저도 당연히 실무에서는 IDE를 활용하겠지만, Java를 처음 배울 때 처럼 직접 환경 변수를 설정하고 터미널에서 직접 컴파일 하여 실행해 보고자 굳이 직접 설치..

Kotlin 2022.10.14

[Django] 유효성 검증, DRF Serializer validate (feat: FastAPI 와 비교)

안녕하세요. 글쓰는 개발자 입니다. 최근 Django에 대한 대체제로써 FastAPI 적용을 검토 하면서 기본적인 Restful API 테스트를 위해 인증 서버를 간단히 구현해 보았습니다. FastAPI를 직접 사용 하면서 몇 가지 '편리하다.' 라고 느낀 점이 있었으며, 그 중에서도 Request에 대한 Validation Check 가 제일 편하게 느껴졌습니다. Django에서 Request Data Valiation을 위해 DTO를 매번 구현해서 사용했던 저로서는 Pydantic을 활용해 이런 불편함을 해소하고 exception까지 자동으로 처리하는 부분은 굉장히 매력적으로 느껴졌습니다. 그럼에도 불구하고 저는 곧 진행할 Project 에서 계속 Django를 사용하기로 동료와 결론을 내렸습니다. ..

Backend/Django 2022.10.12

[FastAPI] 3. FastAPI - MariaDB(MySQL) Restful API / CRUD

지난 포스트에서 SQLalchemy를 활용하여 FastAPI와 MariaDB(MySQL)을 연동하는 방법과 Docker Compose를 활용하여 실행시키는 방법까지 알아보았습니다. 본 포스트에서는 Restful API를 통해 간단하게 CRUD를 어떻게 구현하였는지 살펴보겠습니다. 본 포스팅의 내용을 학습하기에 앞서 아래 내용이 이미 구현, 숙지되어 있음을 가정합니다. FastAPI - RDBMS (MariaDB / MySQL / PostgreSQL ...) 연동 참고 : FastAPI-RDBMS연동, FastAPI-RDBMS(Docker-compose) Restful API SQLalchemy orm python type hint 활용 1. Project 개요 프로젝트 구조 project_root │ ├..

old/WebProject 2022.09.26

[FastAPI] 2. FastAPI - MariaDB(MySQL) Docker Compose 로 연동, Project 구조 세팅

이전 포스트에서 local Docker Container에 띄워져 있는 MariaDB와 FastAPI를 연동하였습니다. 그런데 Project를 Heroku(또는 AWS)에 배포 한다고 생각했을 때 docker-compose로 배포하는 것이 낫다고 생각하였습니다. 문제는 제가 docker-compose를 사용한 적 이 없다는 것이었고 직접 연동해 보았습니다. docker-compose 적용을 결정하면서 docker-compose.yml 파일 하나로 DB, Backend, Frontend, nginx 세팅이 가능하도록 프로젝트 구조를 잡았습니다. 또한, Backend 내부적으로 보았을 때 유지보수성을 확보할 수 있는 구조를 고민하였습니다. 토이 프로트 처럼 작은 규모의 프로젝트의 구조를 정하는 작업은 언제나..

old/WebProject 2022.09.26

[FastAPI] 1. FastAPI 설치, MariaDB(MySQL) 연동

LifeSports 개발 시리즈의 첫 번째 연재물로써 Backend 기술 스택 선정과 개발의 시작이라 할 수 있는 FastAPI - MariaDB 연동 방법을 소개하겠습니다. (MariaDB 설치 및 사용은 Docker의 MariaDB 공식 image를 사용하였으며 별도로 설치 방법은 소개하지 않겠습니다.) 1. 사용한 기술 Python 3.10+ FastAPI는 Python의 약점이라고 할 수 있는 Type 문제를 해결하는 데 집중하였습니다. 공식문서에서도 항상 type hint를 사용하고 Request/Response 인터페이스를 맞추기 위해 Pydantic을 사용합니다. 그래서 저는 'typing' 모듈을 별도로 import 할 필요 없는 Python 3.10 버전 이상을 사용하였습니다. Why? ..

카테고리 없음 2022.09.15

[FastAPI] 0. 프로젝트 개요

회사에서 Django를 사용해 Backend 개발을 한 지도 거의 2년이 되어가고 있습니다. 그 2년 중에서 제대로 써 본 것은 최근 5개월 정도 되는 것 같습니다. 많은 개발자들이 특정 기술을 사용할 때 반드시 적합한 이유가 있어야 한다고 말합니다. 그런 점에서 저는 이전 까지 '왜 Django여야 하는가?' 에 대한 고민을 단 한번도 하지 않았습니다. 회사에서 쓰고 있는 Backend 프레임워크에 대해 그 어떤 비판적 사고도 하지 않았습니다. Django가 불편하다 비판적 사고는 Django가 불편하게 느껴지면서 처음 시작 되었습니다. 사실 Django가 가지는 강력함은 정말 많습니다. 보안을 신경 쓸 부분이 줄어 들고 Admin 페이지를 자동으로 제공하며, 이미 완성된 수많은 기능은 개발을 편리하게..

old/WebProject 2022.09.15

Windows 에서 Oh my posh 사용 (터미널 예쁘게 사용하기)

안녕하세요. 글쓰는 개발자입니다. 좋은 글꼴과 Code highlighting 등 개발자들의 개발 편의를 증진 시키는 많은 플러그인들이 존재합니다. 이런 것들이 없었다면, 우리는 Notepad에 코드를 작성하고 눈이 아픈 것을 참아가며 개발을 진행했을 겁니다. 현대의 개발자들은 당연하게도 IDE를 설치하고 취향에 따라 원하는 Theme를 설치하여 사용하곤 하는데요. 개인적으로는 예쁘게 꾸민 상태에서 개발을 하는 것이 훨씬 즐겁고 보기도 편합니다. 개인용도로 사용하는 Macbook의 경우 Oh my ZSH를 설치하여 terminal을 사용 중이지만 회사에서는 Windows PC를 사용 중이라 terminal UI가 상당히 불편하게 느껴졌습니다. 그래서 저는 Oh my posh를 설치하여 mac에서와 같이 ..

개발환경 구축 2022.06.03
반응형