전체 글
-
글또 10기 활동을 마치며: 웹개발자로서의 나의 공부 방법 확립기Today_I_Learned/etc 2025. 3. 30. 22:04
서론글또 10기의 공식적인 활동이 오늘로써 종료된다. 글또 활동을 하면서 나의 공부법에 변화가 있었기에 글또 10기 회고 겸 그 변화를 관찰한 내용을 정리해본다. 본론공부 방식의 변화기존보통 공부 주제는 업무든 사이드 프로젝트든 실제 개발을 하다가 모르는 부분을 만났을 때 자연스럽게 선정이 되었었다. 그러면 당연히 문제 상황을 해결하기위해 그 자리에서 바로 인터넷 검색을 시작했다. 그리고 적용방식까지 알아내서 실제로 프로젝트에 하나씩 적용을 해 본다. 원하는 결과가 나올 때까지. 그러나 이 방식의 문제점은 무엇이었을까? 바로 '기억력'이다. 한 번 찾아본 내용도 시간이 지나면 까먹고, 또 검색하고, 코드를 다시 열어 보고... 이런 악순환이 반복됐다.글또 10기 활동 후글또 활동을 하면서 내 공부법엔 이..
-
아키텍처 이론은 실제 실무에선 어떻게 적용될까? (feat. 레이어드 아키텍처, 클린 아키텍처, 항해플러스)Today_I_Learned/Web 개발 2025. 3. 23. 15:58
서론상사로부터 비즈니스 로직과 데이터 로직을 분리하라는 조언을 듣게 되었다. 소프트웨어 개발 시 각 계층의 역할을 구분 짓고 어떻게 소통해야 하는 아키텍처를 항해에서 배웠던 것 같은데... 가물가물한 기억을 다시 되새김질 하기 위해 항해 플러스 과정을 진행할 당시 필기했던 내용을 펼쳐 보았다. 오마이 갓! 각보다 많은 내용이 내 머리 속에서 휘발된 상태였다.역할과 책임을 분리하는 것과 관련 있는 개념은 레이어드, 클린 아키텍처였다. 이 개념들을 다시 정리하기 위해, 이번에는 실무 적용 기회를 놓치지 않기 위해, 왜 계층 간 역할을 구분지어야 하는지 정확히 알기 위해 항해 플러스 과정을 복습하고 이 포스팅으로 정리하게 되었다. 본론1. 레이어드 아키텍처와 클린 아키텍처 개념 및 사용 이유1) 레이어드 아키..
-
[Django][TDD] 클린 코드를 위한 테스트 주도 개발 - 1부 요약 정리Book 2025. 3. 15. 23:45
현재 '항해 플러스' 에서 진행하는 개발 블로그 동기 부여 모임인 '오늘은 써야지' 1기 멤버로 참여 중이다. (이에 대한 소개는 그 맨 마지막에!)'오늘은 써야지' 의 이번 주 주제는 늘 공부해보고 싶었던 TDD 이다.덕분에 그동안 미루기만 했던 Djgango + TDD 를 공부하게 되었다.(동기부여 지대로)그렇게 사놓고 표지 구경만 했던 책 '클린 코드를 위한 테스트 주도 개발' 을 드디어 펼쳐 보았다.클린 코드를 위한 테스트 주도 개발 클린 코드를 위한 테스트 주도 개발 - 예스24이 책은 웹 애플리케이션의 개발 과정 전반을 다룬다. 또한 애플리케이션을 구축하기에 앞서 어떻게 테스트 코드를 작성하고 실행해야 할지를 알려주고, 테스트 코드를 통과하기 위한 최소 기www.yes24.com 하지만 TDD..
-
[Django][DRF] Django View 함수를 DRF VieSet 으로 변형하기 (FBV -> CBV)Backend/Django 2025. 3. 9. 23:44
과제 목표"왜 모두 ViewSet을 사용할까?"지난해, 웹 개발자로 첫 프로젝트를 마주했을 때 Django의 Function-Based View(FBV)는 나에게 '안전한 선택'이었다. 직관적인 요청-응답 구조와 익숙한 방식이었기 때문이다. 하지만 상사들의 코드 중 최근에 작성된 코드일수록 DRF ViewSet이 빈번히 등장하는 것을 보며 언제 ViewSet을 사용하는 것이 좋은 것일까 라는 의문이 생겼다.DRF 적응기 + 언제 ViewSet을 도입해야 하는가에 대한 판단력 기르기"DRF의 Tutorial 을 1회 따라하고 난 지금, 단순히 이론으로만 알고 있던 'ViewSet의 장점'을 직접 (반half)실전을 통해 체감해보고 싶다는 생각을 하게 되었다. 기존 코드 (삽입)즐겨찾기 등록(삽입)사용자마다..
-
[개념 정리] 의존성 주입(feat.Python)Today_I_Learned/etc 2025. 3. 5. 09:28
내가 이해하려고 작성하는 의존성 주입(DI, Payment Injection) 의존성이란?말 그대로 한 Class 가 다른 Class, 모듈 등 외부의 기능을 필요로 하는 성질. 즉, 어떠한 Class 가 Class 외부의 것을 참조하고 있는 상태를 의존성이 존재한다고 이해하면 된다.의존성은 최소화하여 사용하는 것이 시스템의 유지 보수 측면에서 효율적이다.의존성 '주입' 이란?'주입' 은 '넣다.' 와 같은 의미라 볼 수 있다. 즉, 어떠한 클래스가 클래스 외부를 참조하도록 의존성을 넣어주는 여러 방법이 흔히 말하는 '의존성 주입' 이다.그럼 '의존성을 넣어주는' 행위란 뭘까? 도대체 어떻게 클래스에 의존성을 넣어준다는 말인가?이를 설명하기 위해 예시 코드를 작성해 보았다. 단, 스스로의 이해를 위해 직..
-
[DRF] Serializer 기본Backend/Django 2025. 2. 16. 15:01
https://www.youtube.com/watch?v=SBnUs18rvUw직렬화: Web server 와 사용자 사이에서 주고 받는 data 를 사용하기 편하도록 '직렬의 형태'로 표현하는 것. 여기서 '직렬의 형태' 란 json 이나 dict (OrderedDict, ReturnDict...) 처럼 한 줄로 주르륵 표현할 수 있는 형태를 의미함.ex)Students={[ { 'name': 'Tom', 'age': 14, 'blood_type': 'B', 'height': 180, 'weight': 75, 'contact': '010-.......' }, { 'name': 'Julie', ..
-
[클론코딩] 예제로 배우는 Django 4: 블로그 (1) #책과_현실_다른_점_찾기Book 2025. 1. 31. 14:12
예제로 배우는 Django 4 예제로 배우는 Django 4 - 예스24Django 연습에 최적! 프로젝트 4개로 배우는 Django 4Django를 익히는 제일 좋은 방법은 무엇일까? 이 책에서는 ‘좋은 예제 많이 만들어 보기’를 그 답으로 정했다. 블로그, 소셜 웹사이트, 온라인 상www.yes24.com Chapter03 블로그 애플리케이션 확장하기소스코드: https://github.com/PacktPublishing/Django-4-by-example/tree/main/Chapter03현상만약 Django 설치 시 버전 지정이 귀찮아 Django 5.1 이상을 설치했고,책의 내용대로 djanto-taggit의 버전을 3.0.0 으로 설치할 경우p.141 의 내용대로 makemigrations 수..
-
[QuerySet] Django 의 DB 접근법 (2): Eager Loading (부제: DB 최적화 전략)Backend/Django 2025. 1. 5. 23:47
작성 계기'Django 의 DB 접근법' 이란 제목의 글을 작성하게 된 핵심 계기는 바로 아래의 동영상 강의이다.Django ORM (QuerySet)구조와 원리 그리고 최적화전략 - 김성렬 - PyCon Korea 2020위 영상을 보고 Django 의 DB 접근 방식을 처음으로 접하게 되었고 새로 얻게 된 지식을 완벽히 흡수하고 싶었다. 이를 위해 영상을 다시 나만의 글로 작성하는 방식을 채택하게 되었다.본문Eager Loading 즉시 평가DB data 를 사용하는 code 실행과 동시에 SQL 문이 실행되어 원하는 객체를 바로 메모리에 로드하는 방식. Django 의 QuerySet 은 Eager Loading 을 지원하는 `select_related()` 와 `prefetch_re..