반응형

전체 글 90

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

Django - Swagger 연동하기 2편 - swagger parameter schema

안녕하세요. 글쓰는 개발자 입니다. 지난 번 Django - Swagger 연동하기 1편 - 기본설정에 이어서 swagger_auto_schema에 관해 세팅 방법을 몇 가지 소개하고자 합니다. Django - Swagger 연동하기 1편 - 기본 설정 안녕하세요. 글쓰는 개발자입니다. 토이 프로젝트를 진행하면서 비록 혼자 진행하지만 최대한 현업 실무에 가깝게 또는 더 나아가 실무에 적용하고 싶은 기술과 방법론 등을 실험하고 있는데요 backstreet-programmer.tistory.com 1편에서 API 문서화를 하는 이유는 Backend와 Frontend 간의 원활한 커뮤니케이션을 통한 비용 최소화에 그 목적이 있다고 말씀드렸습니다. 이를 위해서는 단순히 Swagger를 연동하고 별도의 페이지를 ..

Django - Swagger 연동하기 1편 - 기본 설정

안녕하세요. 글쓰는 개발자입니다. 토이 프로젝트를 진행하면서 비록 혼자 진행하지만 최대한 현업 실무에 가깝게 또는 더 나아가 실무에 적용하고 싶은 기술과 방법론 등을 실험하고 있는데요. 그 중 하나로 Swagger를 적용하는 것을 소개하려고 합니다. 저는 2022년 4월 현재, 1년 6개월의 개발 경력 중 세번 째 SI 프로젝트를 맡아서 진행하고 있습니다. SI 프로젝트를 진행하다보면 산출물로 문서를 많이 작성하게 되는데요. 문서 작성에 상당한 시간과 비용이 투입되는 것이 사실입니다. 그 중 저의 첫 번째 SI 프로젝트는 개발자만 약 30명 정도 투입되었는데요. API 문서화가 제대로 이루어지지 않아 커뮤니케이션 비용이 상당히 높았던 프로젝트 였습니다. 구글 스프레드시트에 일일이 Input/Output ..

[개발환경] 1. DB 서버 구축

프로젝트를 진행하기 위해 Docker Container를 띄워서 DB를 구축하기로 했습니다. Docker를 사용하는 이유는 배포를 용이하게 위해서 입니다. 처음부터, 개발 환경과 배포 환경을 나누어서 개발하면 좋겠지만 최종 목표인 AWS에 배포하는 단계에 대해서는 아직 학습이 필요한 상태 입니다. 어쩔 수 없이 저는 Local 환경에 DB 서버를 구축해서 개발을 진행해야 하는데요. 배포시 Docker Container만 옮기면 되는 장점을 활용하기 위해 Local 개발이지만 Docker를 활용하게 되었습니다. 아래 내용 참고하시어 여러분들도 Docker를 활용한 DB 서버 구축에 도움이 되셨으면 좋겠습니다. 1. MariaDB Image Pull 2. MariaDB Docker Container 생성 3..

반응형