분류 전체보기

[후기] 코딩테스트 전문가가 되려면? (feat: codetree)
이 포스팅은 코드트리 x 글또 블로그 챌린지 2기를 통해 코드트리 체험권을 받아 작성한 후기입니다 들어가며이전 포스팅 이후 한달 간 코드트리를 더 사용해보고 적는 후기입니다. 베리타시움의 전문가와 비전문가의 차이에 대해 분석한 영상을 가져왔는데 영상을 보고 후기를 보신다면 좀 더 와닿을 겁니다.전문가가 되기 위해서는? 영상에서 데릭은 전문가와 비전문가, 그리고 전문가가 되기 위해서는 어떻게 해야하는지에 대해 분석합니다. 코드트리 후기에 갑자기 전문가에 대한 이야기가 왜 나오냐 싶겠지만, 잠깐 참아주시고 글을 읽어주시기 바랍니다. 😅 영상에선 특정분야의 전문가가 되기 위해서는 아래 4가지 조건을 만족시켜야한다고 합니다. 각 조건들을 하나씩 설명해보면 다음과 같습니다. 타당한 환경이 갖춰져 있는가?타당한 ..

[후기] 코드트리와 함께라면
이 포스팅은 코드트리 x 글또 블로그 챌린지 2기를 통해 코드트리 체험권을 받아 작성한 후기입니다들어가며최근 코딩테스트를 한동안 손대지 않았더니, 어디서부터 다시 시작해야 할지 막막했습니다. 마침 글또 10기에서 코드트리 챌린지를 모집해서 한 달간 코드트리를 사용해 볼 수 있었습니다. 이번 포스팅에서는 코드트리를 사용해 본 개인적인 후기에 대해 적어보겠습니다.코드트리?코드트리는 코딩테스트 역량을 향상시킬 수 있는 알고리즘 문제풀이 플랫폼입니다. 이미 유명한 백준, 프로그래머스, 리트코드와 결을 같이하는 서비스입니다. 개인적으로 여러 문제풀이 사이트를 사용해보았지만, 코드트리를 사용하면서 느낀 코드트리만의 장점이 몇 가지 있습니다.자연스러운 단계적 학습 커리큘럼여러분은 코딩테스트를 준비할 때 어떤 문제부..
[회고] 2024년 회고
들어가며24년이 훌쩍 지났다. 시간이 참 빠르게 지나가고 있다. 나의 23년도와 24년도를 비교해보고 내년을 어떻게 보낼지 고민하며 올 한 해를 마무리하려고 한다.1. 2023년도와의 비교주요 관심사20232024커리어- 인턴 입사 후 정규직 전환- 서비스 오픈 준비- 2년 차 백엔드 개발자- 이직 시도개발 학습- Python 기본 문법- Docker 활용 방법- 서버 애플리케이션을 위한 기본 인프라 설계 및 구축- GitLab CI/CD 파이프라인- SQLAlchemy 관련 공부- Python 웹 서비스 아키텍처 관련 학습- Python 문법 심화- Python 클린 코드 관련 학습- ML/DL 관련 학습- LLM 파인튜닝 방법 학습대외 활동- 오픈소스 컨트리뷰션 아카데미 멘티- 글또 9기- 오픈소스 ..

[Python] FastAPI 미들웨어로 Sqlalchemy Session 관리하기
🌟 들어가며FastAPI를 사용해 웹 어플리케이션을 구현할 때 Sqlalchemy Session객체의 라이프 사이클을 관리하는 것은 매우 중요합니다. 병행성이 보장되어야하는 환경에서 Session객체는 스레드별로 독립적이지 않기 때문입니다. 따라서 각 스레드별로 독립적으로 Session을 관리해줘야합니다. 이를 위해 미들웨어, ContextVar 그리고 scoped_session을 활용해 병행실행이 필요한 환경해서 Session을 어떻게 관리해야하는지 알아보도록 하겠습니다.📜 이번 포스팅에서 다루지 않는것Sqlalchemy의 Engine, Session의 개념FastAPI Depends미들웨어 개념ContextVar의 개념🔄 Thread local, Thread Safe?Sqlalchemy는 Bas..

[Python] FastAPI와 Dependency Injector
🚀 들어가며소프트웨어를 설계하다보면 DI 패턴을 적용해야하는 경우 있습니다. python 기준으로 객체의 의존성 주입은 다양한 방식으로 구현할 수 있지만, Python에서 DI 패턴을 프레임워크 형태로 구현한 Dependency Injector 라이브러리를 통해 의존성 주입과 제어의 역전(IoC)기능을 사용할 수 있습니다.이번 포스팅에서는 FastAPI와 Dependency Injector를 활용해 Layered 아키택처를 구현하는 방법에 대해 알아보겠습니다.🔍 의존성 주입에 대한 간단 설명이번 포스팅에서 의존성 주입에 대한 개념에 대해 설명하지 않지만, 간단히 짚고 넘어가겠습니다. DI, IoC, DIP와 같은 개념은 Spring과 같은 프레임워크를 사용한다거나, 객체 지향 설계에 대해 공부하셨다면..

[후기] 글또 9기를 되돌아보며...
글또 9기를 시작하며글또 8기에 이어 올해에도 글또 9기에 신청했었다. 작년에는 회사에 입사한지 얼마 되지 않았기 때문에 기술적으로 참고할 만한 포스팅을 만드는 것 보다는, 글쓰는 습관을 목표로 시작해 나름대로 목포를 달성할 수 있었다. 그래서 이번에는 단순한 글을 쓰는 것을 넘어서 내가 관심있는 기술을 다른사람들에게 도움이 될 정도의 유익함, 그리고 재미있는 글을 작성하고 싶다고 생각했다. 글또 9기를 시작하며 새웠던 목표!- 글쓰는 습관 유지하기- 같은 그룹에 있는 사람들의 글을 읽고 피드백 많이 해주기- 큐레이션 받을 수 있는 글을 써보기! (제일 중요) 어느정도 글쓰기에 탄력이 생겼다고 생각해 목표를 조금 더 높여보았다. 이번에는 1년 동안 개발을 하면서 쌓은 노하우와 경험담이 있었기 때문에 큐..

[Python] 비동기 테스트를 하려면? (a.k.a pytest-asyncio)
들어가며python은 async/await 문법과 single-thread 기반 event loop를 통해 비동기적인 작업을 지원합니다. 하지만, 비동기적으로 만들어진 코드를 테스트하기 위해서는 어떻게 해야 할까요? 이번 포스팅에서는 비동기 테스트를 위한 pytest 익스텐션인 pytest-asyncio에 대해 알아보겠습니다.아래과 같은 개념을 알고 있어야 이 글을 이해하기 수월합니다.Pytest를 사용한 기본적인 테스트 코드 작성 방법pytest scope에 대한 이해Python의 비동기(Async) 개념(async/await, 코루틴, event loop)그리고 이 포스팅을 통해 알 수 있는 내용은 다음과 같습니다.pytest-asyncio의 테스트 스코프(scope)async한 코드의 async한 ..

[Python] UoW(Unit of Work) 패턴을 알아보자
들어가며 UoW 패턴은 저장소 패턴과 더불어 어플리케이션의 DB 접근에 대한 효과적인 추상화 방안을 마련해줍니다. 이번 포스팅에서는 UoW 패턴의 개념과 적용 예시를 정리해보겠습니다. 다음과 같은 개념을 알고 있어야 포스팅을 좀 더 쉽게 이해할 수 있습니다. 계층형(Layered) 아키텍쳐 저장소(Repository) 패턴 Python 컨택스트 매니저(Context manager)의 사용법 UoW(Unit of Work)? UoW는 작업단위로 해석되는 소프트웨어 디자인 패턴입니다. 애플리케이션(ex: API 서버)의 특정 비지니스 로직에서 발생하는 여러번의 변경사항을 한번에 처리합니다. 이를 통해 DB 일관성과 DB 연산의 원자성을 유지할 수 있도록 합니다. 애플리케이션의 비지니스 로직은 복잡해지기 마련..