일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- QuerySet
- DRF
- 도커
- Coroutine
- dry-yasg
- Git
- docker
- racecondition
- CD
- DjangoRestFramework
- F객체
- aggregate
- aws
- database
- 코루틴
- EC2
- apitestcase
- annotate
- django
- testcase
- to_attr
- 백준
- DjangoCache
- CI
- Prefetch_related
- Python
- nestedfunction
- Continuous Deployment
- Transaction
- Continuous Delivery
- Today
- Total
목록전체 글 (68)
BackEnd King KY

✔️ Intro Django는 비밀번호 관리를 위해 다양한 기능들을 제공합니다. 오늘은 어떻게 Django가 비밀번호를 저장하는지, 어떻게 스토리지 해싱을 구성하는지 알아보겠습니다. 그리고 해쉬화된 비밀번호와 함께 작동하는 유용한 기능들에 알아보겠습니다. 모든 출처는 공식문서입니다. ✔️ How Django stores passwords Django는 능동적인 비밀번호 저장 시스템을 제공하며, 기본적으로는 PBKDF2라는 걸 기본옵션으로 사용합니다. PBKDF2는 암호화 함수 중 하나입니다. 일단 지금은 저장 시스템 중 하나로 PBKDF2라는 걸 사용하는구나 정도로 알고 계시면 될 것 같습니다. Django auth에서 제공하는 기본적인 User 모델의 비밀번호는 아래와 같은 형태를 보입니다. $$$ ..

✔️ ACID RDBMS는 트랜잭션의 기능을 보장할 수 있도록 ACID라고 하는 4가지 성질을 제공합니다. A : 원자성(Atomicity) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력입니다. 아마 트랜잭션에서 가장 많이 드는 예시 중 하나인 계좌이체로 예시를 들겠습니다. 계좌이체는 성공할 수도, 실패할 수도 있지만 보내는 쪽에서 돈을 빼오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안됩니다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것입니다. 즉, 트랜잭션의 작업들이 데이터베이스에 모두 반영되던가 아니면 아예 반영이 안된다는 뜻입니다. C : 일관성(Consistency) 트랜잭션이 성공적으로 완료되면 언제나 일관성있는 ..

✔️ Transaction 데이터를 다루는 데 있어 꼭 알아야 할 트랜잭션입니다. 트랜잭션이란 일련의 작업들을 하나의 단위로 실행하는 것을 뜻합니다. 일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 실패하게 됩니다. 오늘은 Commit과 Rollback에 대해 알아본 뒤, 내일 트랜잭션의 가장 큰 4가지 특징인 ACID에 대해 포스팅 하겠습니다. ✔️ Commit & Rollback 트랜잭션 상의 모든 작업이 문제없이 성공하면 Commit이 됩니다. 즉, 데이터베이스에 실제로 반영이 된다는 뜻입니다. 우리가 GitHub에 Commit을 하는 건 작업이 완료되었고 Repository에 반영하겠다는 의미입니다. 데이터베이스에 대입해보면, GitHub라는 DB에 작업을 반영하겠다는 ..

오늘은 위코드 Talk Concert가 있는 날이었습니다. Talk Concert가 어떤가냐하면.. 올해 1월에 올라온 모집글인데, 선배기수로서 알려주고 싶은 부분이 많아서 지원하게 되었습니다. 저는 개강까지 5개월 앞둔 예비기수 대상으로 하겠다고 신청했는데, 저와 똑같은 시행착오를 안 겪었으면 하는 바람이 매우 컸기 때문입니다. 그래서 한 달 동안 정말 고봉밥처럼 꾹꾹 눌러담은 내용을 제작하게 되었습니다. 1. 발표 지원하게 된 이유 2. 아직 5개월 전이면 프론트엔드/백엔드를 못 정하시는 분도 계실테니 어떠한 성향의 사람이 하면 좋은지 3. 개강까지 공부를 어떻게 하면 좋을지 4. 마지막으로 오프라인 개강 후 어떤 방향으로 공부하면 좋을지 5. Q&A 이렇게 순서를 잡았습니다. 취업 관련된 부분은 감..

Intro Django 개발자이기전에 Python을 이용하는 개발자로서, 배울 때 가장 헷갈렸던 중첩함수(Nested Function)과 decorator에 대한 포스팅을 해보겠습니다. 중첩함수 함수도 함수안에 중첩하여 사용할 수 있는데, 이를 중첩함수라고 합니다. 중첩함수(내부함수)는 상위부모 함수안에서만 호출 가능합니다. 예를 들어 def parent_function(): def child_function(): return "this is gg" return child_function() print(parent_function()) 이렇게 쓴다면, child_function에서 작성한 print문이 출력되는 것입니다. 그러면 굳이 이렇게 쓰는 이유가 무엇일까요? Why Nested Function? ..

Intro 객체지향을 공부하실 때 다형성은 많이 들어보셨을겁니다. 이 다형성이라는 단어를 영어로 바꾸면 바로 Polymorphic이 됩니다. 정확한 단어는 phism인데, 이 부분은 유도리있게 넘기도록 하겠습니다. 하나의 객체가 여러 가지 타입을 가질 수 있다는 뜻인데, 요즘 이 부분에서 문제가 생겨서 작업에 들어갈 예정입니다. 그래서 미리 공부할 겸 포스팅하게 되었습니다. 모든 출처는 공식문서입니다. Polymorphic Start! 첫 번째로, django-polymorphic을 설치해줍니다. pip install django-polymorphic 두 번째로, settings.py의 INSTALLED_APPS에 설치한 polymorphic을 추가해줍니다. INSTALLED_APPS = [ ..., "..

Intro aggregate에 이은 annotate 입니다. 둘 다 집계를 하는 건 똑같은데, 지난 포스팅의 내용을 다시 복기시켜보자면 aggregate에서는 집계한 값이 딕셔너리 형태로 출력됩니다. annotate에 대해 간단하게 먼저 말하면, SQL의 Group By 기능입니다. 정의에 대해 알아본 후, 직접 테스트를 하겠습니다. 모든 출처는 공식문서입니다. 정의 annotate의 뜻은 주석입니다. 우선, 공식문서에 나온 annotate의 정의를 보겠습니다. Annotates each object in the QuerySet with the provided list of query expressions. An expression may be a simple value, a reference to a ..

Intro 개인적으로 ORM 메소드 중 가장 헷갈렸던 annotate와 aggregate입니다. 특히 정규필드 외에도 추가로 집계하여 컬럼을 표기해야되는 경우가 많은데, annotate와 aggregate에 대한 이해가 없다보니 많이 애먹었습니다. 오늘 aggregate에 대해 포스팅 후 내일 annotate에 대해 포스팅해보겠습니다. 모든 출처는 공식문서입니다. aggregate Returns a dictionary of aggregate values (averages, sums, etc.) calculated over the QuerySet 공식문서에 나와있는 aggregate의 설명입니다. QuerySet에 대해 계산된 집계 값(평균, 합계 등)을 딕서너리 형태로 리턴합니다. 테스트를 위해 모델링을..