안녕하세요 👋 🦌

해탈(김국현)이라고 합니다.

  • 주도적인 삽질을 하면서 프로그래밍과 관련된 것이라면 뭐든 연결시켜 공부해보는 사람입니다.
  • 지식을 어떻게 습득하고, 어떻게 나눌수 있을지 고민합니다.

스트리트 코더

오랜만에 교양서 하나인 스트리트 코더를 마무리 했다. 이번에 책 하나를 마무리하면서 느낀것은 학습 속도가 떨어진 부분과 방식을 바꿔야겠다는 생각이 들었다. 책 읽는 방식을 이렇게 바꾸려고 한다. 최소한의 요약 내용은 바로 말할 수 있도록 1회 정독 대신, 2~3회 N회 이상 빠르게 읽는 것 그리고 책을 둘 공간이 없는게 두려워 Ebook으로 살수 있으면 사려고 하는데, 막상 전문서적은 리디에 없는게 흠이다. 여튼 처음으로 전문서적을 ebook으로 사서 읽어보았다. 중간중간에 개발자 유우우우머를 넣은게 좀 재밌긴하다 ㅋㅋㅋㅋ...

May 5, 2024 · 2 min · Nirvana

[DRF] Django REST Framework 2 Mixin&Generics

Mixins와 GenericAPIView API를 작업할때 CRUD는 항상 사용되는 반복적인 작업인데, mixins는 APIView에서 request의 method마다 시리얼라이저 코드를 작성하는 것을 줄이기 위해서 클래스 레벨에서 시리얼라이저를 등록하고 있다. from rest_framework import generics from rest_framework import mixins # 믹스인 (generics, mixins import 하자) class BooksAPIMixins(mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView): queryset = Book.objects.all() serializer_class = BookSerializer def get(self, request, *args, **kwargs): # mixins.ListModelMixin return self.list(request, *args, **kwargs) # 리스트 전체 조회 def post(self, request, *args, **kwargs): # mixins....

January 13, 2024 · 4 min · Nirvana

[DRF] Django REST Framework 1 View

Django, DRF에서도 함수 기반 뷰(FBV), 클래스 기반 뷰(CBV)로 개발할 수 있다. 뷰 작성할 떄의 함수/클래스 차이일 뿐 기능 차이는 없다. FBV/CBV 공통적으로 사용하는 APIView wrapper가 있는데, 요청에 유형에 따라 동작할 수 있게 도와준다. 뷰에서 Request 인스턴스를 수신하고, 해당 메소드를 인자로 전달해서 해당 메소드에 맞는 로직이 실행되도록 도오하준다. @api_view는 클래스형 뷰의 as_view()처럼 여러가지 메소드를 처리하도록 도와준다고 보면 된다. FBV CBV 데코레이터로 작성 @api_view 클래스를 상속하는 형태 Request와 Response DRF에서 HTTP 요청 객체로 HttpRequest 객체를 확장한 Request 객체를 사용한다....

January 11, 2024 · 3 min · Nirvana

[DRF] Django REST Framework 0

Django REST Framework 란 RESTful이란 Representational State Transfer의 줄임말이다. 먼저 REST에 대해서 소개를 하자면, http의 url과 http method(GET, POST, PUT, DELETE)를 사용해서 API 가독성을 높인 구조화된 시스템 아키텍쳐(framework)라고 생각하면 된다. 하나의 URL로 우리는 최소 4가지의 HTTP method를 전송할 수 있다. 쉽게 말하면 자원을 이름 등으로 구분해서 자원에 대해서 여러 정보를 주고 받는 것 자체를 REST라고 생각하면 된다. REST는 이전에 한번 학습 요약 차원에서 정리했다. DRF(Django REST Framework) 본론으로 들어와서 DRF(Django REST Framework)란 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리다....

January 10, 2024 · 2 min · Nirvana

[Django] NoReverseMatch 에러 대처

Django는 Debug=True로 해놓으면 에러메시지가 친철하다. NoReverseMatch at URL 주소 : 해당 URL 주소로 접소하는 과정에 에러 발생 `Reverse for ‘함수 이름’ : 해당 URL 주소에서, 문제를 발생시키는 함수 /Photo/new 에서 데이터를 집어 넣는 과정에서 문제가 생겼는데, html 파일을 봐도 헤메고 있었는데, ph..??? 함수를 보니 진짜 ph로 리다이렉트 하고 있었다. def photo_post(request): if request.method == "POST": form = PhotoForm(request.POST) if form.is_valid(): photo = form.save(commit=False) photo.save() return redirect('photo_detail', ph=photo.pk) else: form = PhotoForm() return render(request, 'photo/photo_post....

January 7, 2024 · 1 min

2023 회고록

서론 회고록. 5~6년전엔 작성했었지만 이젠 회고록이 무엇이었는지 가물가물해질때 2022년 중순, 서울 소재 회사에 입사를 하고 벌써 1년반이 지났다. 정신 차리고 나니 2년 + @ 개발자가 되었다. 근데 남은게 뭐지? 적응과 발전 PHP로 업무 적응하기 회사가 20년동안 제휴마케팅을 하고 있는 회사다보니 레거시가 굉장히 쌓여있다. 입사 후 운이 좋게도 22년도 후반 내부 코드 시스템 개편을 통해 코드 구조, 속도 모든 것이 이전 대부분의 비즈니스 레거시 코드와는 영영 안녕을 하게 되었다. (2022~2023년에서 가장 좋은 경험이었다....

January 6, 2024 · 2 min

[Django] makemigrations와 migrate 차이

Django 공식 문서에 보면 이렇게 나와있다. migrate은 마이그레이션을 반영하거나 반영하지 않기 위해 사용합니다. > 원문 : migrate, which is responsible for applying and unapplying migrations. makemigrations는 모델을 변경한 것에 기반한 새로운 마이그레이션을 만들 때 사용합니다. > 원문 : makemigrations, which is responsible for creating new migrations based on the changes you have made to your models. sqlmigrate은 마이그레이션을 위한 SQL 구문을 보기 위해 사용합니다. > 원문 : sqlmigrate, which displays the SQL statements for a migration showmigrations는 프로젝트 전체의 마이그레이션과 각각의 상태를 나열하기 위해 사용합니다....

January 5, 2024 · 1 min · initNirvana