Backend
-
[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)실전을 통해 체감해보고 싶다는 생각을 하게 되었다. 기존 코드 (삽입)즐겨찾기 등록(삽입)사용자마다..
-
[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', ..
-
[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..
-
[QuerySet] Django 의 DB 접근법 (1): Lazy loadingBackend/Django 2024. 11. 10. 23:19
Django 공부를 위해 Youtube 를 뒤지다가 아래의 영상을 발견하게 되었다.Django ORM (QuerySet)구조와 원리 그리고 최적화전략 - 김성렬 - PyCon Korea 2020영상은 Django 의 ORM 은 성능 효율을 높이기 기본적으로 DB 접근 횟수를 줄이는 Lazy loading 을 사용한다로 시작한다. 아직 '성능' 이 중요한 줄은 알지만 향상시키는 방법은 덜 익숙한 나에게 흥미로운 도입부였다. 그렇게 해당 영상을 시작으로 QuerySet 의 동작 원리를 파고들게 되었다.Lazy Loading 지연 평가QuerySet 객체 생성(선언)을 했더라도 SQL 문(=Query)이 실제로 실행되는 시점은 해당 객체가 실사용되는 때(='평가' 라고도 한다.)이다.QuerySet..
-
WIL02. [ Clean Architecture ] 사 놓기만 했던 책을 드디어 펼치게 된 한 주.Backend/항해99 <플러스 백엔드> 2024. 3. 30. 17:45
벌써 항해 플러스 백엔드 과정을 시작한 지 2주가 지났다. Java + Spring Boot 3 은 여전히 익숙치 않은 상태. 그럼에도 퇴근 후 매일 정해진 시간에 2 - 3 시간 씩 Project 를 진행하며 조금씩 성장하고 있음을 느낀다. 그와중에 계획한 운동까지 하며, '이것이 바로 갓생?' 이라는 에 빠져 뿌듯함을 만끽하는 중이다. 2 주차 주제는 Clean Architecture 로, 확장과 유지 보수에 유용한 Architecture 에 대해 배웠다. 정규 일정 내용을 복습하는 것으로는 이해도가 부족하다고 느꼈다. 마침 나에겐 3개월 전에 사다 놓기만 하고 펼쳐보지도 않았던 Clean Architecture 책이 있었다. '읽을 시간이 없었다'라는 핑계는 흔적도 없이 사라지고 마음이 급해지니 앞..
-
W01. 시작하는 마음Backend/항해99 <플러스 백엔드> 2024. 3. 16. 13:57
https://hanghae99.spartacodingclub.kr/v2/plus/be 항해 플러스, 도전을 넘어 개발자 커리어 도약으로 백엔드 주니어 개발자로서 성장의 한계를 느끼고 있다면, 시니어 코치진과 함께 10주 몰입을 통해 도약하세요. hanghae99.spartacodingclub.kr 처음 대학에서 IT 복수 전공을 신청할 때부터 지금까지 나는 계획보다는 당시 상황과 조건, 감정만 고려하여 여기 저기 기웃대던 개발자였다. 그렇게 살다 문득 내 현재 위치를 살펴보니 성장 곡선과는 동떨어진 채, 혼자서도 잘한다는 오만에 빠져 허우적대고 있었다는 사실을 깨닫게 되었다. 이제라도 조건, 타인의 시선은 신경쓰지 않고 내가 하고 싶은 일을 정하여 차근차근 계획을 세워 도전하려 한다. 다행히도 목표 탐..
-
게시판 검색 기능 구현 과정 정리Backend/Projects_report 2023. 12. 15. 11:39
점프투장고를 따라 게시판 개발 중 유독 헷갈렸던 검색 기능의 구현 과정을 정리해 보았다. 참고: https://wikidocs.net/71806 3-14 검색 * `[완성 소스]` : [github.com/pahkey/jump2django/tree/3-14](https://github.com/pahkey/jump2django/tree/… wikidocs.net 구현 목표 검색어를 입력할 입력 Bar와 검색 Button 추가 검색 버튼 클릭 시 Get 방식으로 페이지 요청 질문 제목, 내용, 작성자, 답변 내용, 작성자 중 검색어가 포함된 질문 글은 검색 결과에 포함 검색 결과는 질문 목록을 Paging 처리하여 화면에 출력 구현 과정 검색은 Get 방식의 Request를 사용하는 것이 좋다. '뒤로 가기..
-
[MySQL] Partition 과 Unique KeyBackend/DB 2023. 12. 14. 23:50
Partitioning 실습 도중 강의 내용과 다르게 Primary key를 설정했다가 다음의 Error 를 맞닥뜨렸다.ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function (prefixed columns are not considered).원인을 찾던 중 MySQL 공식 문서에 해당 문제화 관련된 글을 발견하여 해석 및 정리해 보았다.https://dev.mysql.com/doc/refman/8.0/en/partitioning-limitations-partitioning-keys-unique-keys.html MySQL :: MySQL 8.0 Reference Manual :: 24.6..