일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 장고
- web
- Django
- HTML
- CSS
- 알고리즘 연습
- 알고리즘 문제
- 파이썬
- 알고리즘
- react
- AWS
- 알고리즘 풀이
- API
- DRF
- MAC
- 백준
- Git
- java
- django ORM
- Algorithm
- javascript
- es6
- django widget
- c++
- form
- django rest framework
- PYTHON
- js
- 파이썬 알고리즘
- Baekjoon
- Today
- Total
목록분류 전체보기 (341)
수학과의 좌충우돌 프로그래밍
Template Literal Template Literal 은 문자열과 변수가 합쳐진 것을 말합니다. 이번에는 Template Literal 의 개선된 사항에 대해서 알아보도록 하겠습니다. 다음 예시를 살펴봅시다. const intro = (name="anonymous") => "My name is " + name; console.log(intro("minsung")); // My name is minsung 결과를 출력하기 위해서 문자열과 변수를 합쳐주는 부분이 문자와 변수가 많이질수록 가독성을 해칠 위험이 있습니다. 따라서 `(GRAVE ACCENT) 와 $, {} 를 사용해줍니다. `` 로 묶인 부분은 string 으로 인식되고 ${ } 안은 변수로서 인식합니다. const intro = (nam..
Arrow Functions arrow function 은 기존 자바스크립트에서 함수의 모습을 개선한 것 입니다. 사용 방법을 살펴보도록 합시다. 우선 arrow 는 => 을 의미합니다. 기존의 function 이라는 키워드를 없애고 이를 arrow 로 대체한 것이죠. 우선 arrow function 을 사용하지 않은 기존의 예시부터 살펴보겠습니다. const nameList = ["minsung", "sungbin"] const nameLength = nameList.map(function(name){ return name.length; }) console.log(nameLength); // [7,7] 이를 arrow function으로 개선하면 다음과 같습니다. const nameLength = na..
Let and Const let 과 const 에 대해서 알아보도록 하겠습니다. 이 둘은 변수를 선언할 때 사용하게 되는데 이전에는 var 를 사용하였습니다. var 로 변수를 선언하게 된다면 다음과 같이 변수의 overwrite 가 가능해집니다. var name = "minsung"; name = "sungbin"; 이렇게 var 를 사용하게 되면 큰 어플리케이션을 만들거나 협업을 할 경우 문제가 생길 수 있습니다. 다른 개발자가 다른 파일에서 또는 같은 파일인데 다른 위치에서 작업을 할 경우 name 이라는 변수명을 또 사용할 수 있게 되고 의도치않게 name 은 sungbin 으로 덮어쓰게 됩니다. 따라서 변수가 변하는 걸 막기 위한 매커니즘이 필요했고 const 가 등장하였습니다. const 는 ..
javascript 를 공부하려고 보니 ES6 라는 말이 많이 등장해서, 중요하다고 해서, 이에 대해서 정리해보고자 합니다. ES 는 무엇인가 ES 는 ECMAScript 의 약자입니다. 그리고 숫자 6은 여섯번째 ES 라고 생각하면 되겠습니다. 그렇다면 ES, ECMAScript 는 무엇일까요? 위키백과를 보면 ECMAScript 는 Ecma 인터내셔널의 ECMA-262 기술 규격에 정의된 표준화된 스크립트 프로그래밍 언어입니다. 자바스크립트를 표준화하기 위해서 만들어졌으며 꼭 자바스크립트가 아니더라도 어도비 플래시를 사용하는 소프트웨어에서 사용하는 액션스크립트, MS 사의 인터넷 익스플로러에 쓰이는 J스크립트 등 다른 구현체들 역시 포함하고 있습니다. ES 가 등장하게 된 배경을 살펴보면 1990년대..
이번 포스팅에서는 Serializer 에 대해서 자세히 알아보도록 하겠습니다. Serializer 우선 github에서의 Serializer 코드를 살펴보겠습니다. Serializer 는 BaseSerializer 를 상속 받고 BaseSerializer 의 생성자는 아래와 같습니다. # rest_framework/serializers.py class BaseSerializer(Field): def __init__(self, instance=None, data=empty, **kwargs): # 생략 class Serializer(BaseSeializer): # 생략 그렇기 때문에 우리는 이를 사용할 때 post 라는 instance가 먼저 나온다면 뒤에 data 라는 keyword 를 써줄 필요가 없지..
실제 서비스의 경우에는 레코드의 개수가 많을 것이고 이 경우 하나의 API 요청으로 모든 레코드를 받는 것은 오랜 시간이 걸리게 됩니다. 따라서 이런 경우 페이지를 나눠서 요청을 해야합니다. 다행히도 DRF 에서는 이러한 pagination 기능을 제공하고 있습니다. PageNumberPagination 과 LimitOffsetPagination pagination 을 하는데는 크게 두 가지 방법이 있습니다. 두 방법 모두 url 의 get parameter 를 이용하여 이를 지원해줍니다. 각각에 대해 알아보도록 하겠습니다. PageNumberPagination page : 몇 번째 페이지인지 표시해줍니다. 페이지는 1부터 시작합니다. page_size : 한 페이지에 몇 개의 레코드를 보여줄지 표시해줍..
목록을 조회하는 ListAPIVIew 에서 필터링하는 방법에 대해서 알아보도록 하겠습니다. 이는 CBV 의 일종이기 때문에 CBV와 익숙하시다면 쉽게 하실 수 있을 겁니다. 여러 인자 획득 filtering 을 하는데 필요한 인자들을 request 를 통해서 획득할 수 있습니다. self.request.user 현재 로그인 중인 유저에 접근할 수 있습니다. 로그인이 안 되어 있을 시에는 AnnoymousUser 인스턴스를 획득합니다. self.request.GET 요청한 get 인자들을 획득합니다. self.request.query_params self.request.GET 와 같은 값을 얻습니다. 보다 더 가독성이 높기 때문에 DRF 에서 지원하고 있습니다. self.kwargs URL Capture ..
restframework.response.Response 에서는 2가지 타입의 응답을 할 수 있습니다. json 다른 일반적인 경우 json 타입으로 응답하게 됩니다. { "post":"http://127.0.0.1:8000/post/" } api DRF은 브라우저를 통해 접근이 가능하며 이 경우 api 타입으로 응답하게 됩니다. 이 api 타입이 html로서 우리가 브라우저에서 보게 되는 아래의 이미지입니다. 출력 포맷을 결정하는 방법은 3가지가 있습니다. 각 방식에 대해 json 타입의 요청과 api 타입의 요청하는 방법은 다음과 같습니다. Accept 헤더 localhost:8000/ Accept:application/json localhost:8000/ Accept:text/html GET 인자 ..
Django-APIView-Mixins-genericsAPIView-ViewSet을-알아보자 [Django] APIView, Mixins, generics APIView, ViewSet을 알아보자 django 에서는 view 를 통해서 HTTP 요청을 처리합니다. view에서 이를 처리하는 방법은 다양합니다. FBV(함수기반뷰), CBV(클래스기반뷰) 를 통해서도 API 를 만들 수 있지만 rest_framework 는 보다 쉽게, 효율.. ssungkang.tistory.com 저번 포스팅에서 ViewSet 에 대해서 간단히 알아보았습니다. 이번에는 좀 더 자세히 알아보도록 하겠습니다. ViewSet 저번 포스팅에서도 언급했지만 ViewSet 은 다른 것들과 좀 달랐습니다. 일반적인 CBV 가 아니기 ..
django 에서는 view 를 통해서 HTTP 요청을 처리합니다. view에서 이를 처리하는 방법은 다양합니다. FBV(함수기반뷰), CBV(클래스기반뷰) 를 통해서도 API 를 만들 수 있지만 rest_framework 는 보다 쉽게, 효율적으로 만들 수 있습니다. Serializer [Django] django rest framework 를 위한 JSON 직렬화 [Django] django rest framework 를 위한 JSON 직렬화 ModelSerializer 를 통한 JSON 직렬화 DRF 에서는 ModelSerializer 를 통해 JSONRenderer 에서 변환가능한 형태로 먼저 데이터를 변환합니다. Serializer 는 장고의 Form 과 유사하며 ModelSerializer는 ..