일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- web
- js
- django rest framework
- react
- 알고리즘 풀이
- c++
- es6
- 알고리즘 문제
- 파이썬
- django widget
- Django
- 장고
- javascript
- django ORM
- DRF
- 알고리즘 연습
- HTML
- AWS
- java
- PYTHON
- 알고리즘
- Git
- Baekjoon
- MAC
- API
- CSS
- 백준
- form
- 파이썬 알고리즘
- Algorithm
- Today
- Total
목록2020/08 (21)
수학과의 좌충우돌 프로그래밍
아는 지인들이 운영하고 있는 팟캐스트에 참여했습니다! http://www.podbbang.com/ch/1772616 byebug - 우리들의 개발 이야기 힙스터 개발자 영슨, 모범생 개발자 마루, TMI 개발자 원노와 함께 스타트업, 개발자들에 대한 우리들의 개발 이야기를 합니다. www.podbbang.com 팟캐스트 채널에 대해서 간단히 소개를 하자면 힙스터 개발자 영슨, 모범생 개발자 마루, TMI 개발자 원노 세 명의 개성 넘치는 개발자들과 함께 개발과 관련된 여러 소식을 들을 수 있는 유익한 채널입니다. 최신 이슈들이나 공부법, 스타트업 이야기 등 재미난 이야기도 많이 있으니 한 번 들어보시는 걸 추천드립니다. 그러면 다들 관심 없으시겠지만! 제가 출연한 #025 [세나개] 추월보다 초월을 꿈꾸..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 질의 횟수 확인 Django 단위 테스트 클래스에 assertNumQueries() 메서드를 사용하여 데이터베이스에 발생하는 질의 횟수를 검증할 수 있습니다. def test_number_of_queries(self): User.objects.create(username='testuser1') # 위 ORM 명령으로 질의 횟수가 1 번 일어나야 한다. self.assertNumQueries(1) User.objects.filter(username='testuser').update(username='test1user') # 질의 횟수가 한 번 증가해야 한..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 자기 참조 외래 키 자기 자신을 참조하는 자기 참조 외래 키를 정의할 수 있습니다. class Employee(models.Model): manager = models.ForeignKey('self', on_delete=models.CASCADE) class Employee(models.Model): manager = models.ForeignKey("Employee", on_delete=models.CASCADE) 2. 기존 DB를 django Model로 옮기기 Django에서 models.py를 통해 DB를 생성할 수 도 있지만 경우에 따라 기존의..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. QuerySet 정렬 Django에서는 order_by 메서드를 사용하여 QuerySet을 정렬할 수 있습니다. 여러 필드에 대해서도 가능하며 - 를 사용하여 내림차순으로 정렬도 가능합니다. Post.objects.all().order_by('created_at', '-updated_at') SELECT `post_post`.`id`, `post_post`.`user_id`, `post_post`.`title`, `post_post`.`content`, `post_post`.`created_at`, `post_post`.`updated_at` FROM ..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 여러 개의 행을 한 번에 생성하기 여러 개의 데이터를 저장하기 위해서 create() 함수를 여러 번 쓰는 것은 비효율적입니다. DB와 연결 후 저장을 하고 연결을 끊게 되는데 쿼리가 여러 개면 이 과정을 무의미하게 반복됩니다. 따라서 저장할 데이터가 많을 경우 한 번에 저장하는게 좋습니다. Django에서는 bulk_create 를 제공해줍니다. 이 함수는 아직 저장되지 않은 객체를 담은 리스트를 인자로 받습니다. categories = [Category(name='a'), Category(name='b')] category = Category.obj..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 14. Q 객체 앞서서 Q 객체에 대해 다루었다시피 이를 통해 SQL 질의의 WHERE 절을 수행할 수 있습니다. queryset = User.objects.filter( Q(first_name__startswith='R') & ~Q(last_name__startswith='Z') ) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."first_name", "auth_user"."last_name" FROM "auth_user" WHERE ("auth_user"."first_name"::text L..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 10. JOIN SQL에서는 JOIN문을 이용해 동일한 값을 가진 열을 기준으로 두 테이블을 결합할 수 있습니다. django에서도 JOIN을 할 수 있는 방법이 존재합니다. select_related 모든 Post를 가져오는 간단한 쿼리를 살펴봅시다. post_all = Post.objects.all() 이에 대한 SQL 질의문입니다. 놀랍게도 Post에 대한 질의문과 Post와 OneToOne으로 연결되어 있는 User에 대한 질의가 함께 이루어집니다. Post가 N개 있다면 각 Post에 해당하는 User를 조회하기 위해 N번의 추가적인 질의가 이루어집..
해당 포스팅은 Django ORM CookBook 을 공부하며 새로 알게된 사실이나 더 나아가 추가적으로 같이 알면 좋을 내용을 정리하고 있습니다. 1. 장고 ORM이 실행하는 실제 SQL 질의문 확인 ORM에 대응되는 SQL 질의문을 확인하기 위해서는 다음과 같이 확인할 수 있습니다. queryset = Post.objects.all() str(queryset.query) ''' 'SELECT `post_post`.`id`, `post_post`.`user_id`, `post_post`.`title`, `post_post`.`content`, `post_post`.`kind`, `post_post`.`image`, `post_post`.`created_at`, `post_post`.`updated_at..
위상정렬이란? 위상 정렬은 순서가 정해져있는 작업 차례로 수행해야 할 때, 그 순서를 결정해주는 알고리즘입니다. 그림을 보며 이해해봅시다. 다음과 같은 그래프에서 앞선 작업 2,3이 끝나야 뒤 작업 4가 이루어질 수 있으며 이 때 둘 중 무엇을 먼저 끝내던 규칙에 위배 되지 않기 때문에 경로는 여러 개가 나올 수 있습니다. 단 위상정렬이 성립하기 위해서는 DAG여야 합니다. DAG란? Directed Acyclic Graph의 줄임말로 사이클이 존재하지 않는 방향 그래프입니다. 만일 위 그림에서 5이 1에 연결되었다면 시작점이 존재하지 않기 때문에 위상정렬이 성립할 수 없습니다. 위상 정렬 원리 위상 정렬이 어떤 원리로 동작하는지 살펴봅시다. 위상 정렬을 스택이나 큐를 사용하여 구현할 수 있지만 큐를 사..
https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 문제는 아주 간단합니다. Combination을 계산하는 문제로, 파스칼 삼각형을 이용하여 문제를 해결하려 하였습니다. 그런데 n, m의 값이 커지면 unsigned long long으로도 데이터를 전부 표현할 수 가 없어 덧셈을 문자열로 구현하였습니다. #include #include using namespace std; // nCm : pascal[i][j] string pascal[101][101]; string add_string_num(string a, string b) { int aidx = a.siz..