220422 Today I learned!
- 관통프로젝트
- 스터디 발표
- 백준 문제 풀이
1. Fact
(1) 관통프로젝트
- DB 설계를 활용한 REST API 설계
- 배우, 영화, 리뷰 데이터를 활용하여 REST API를 설계한다
- 배우: 영화 (M:N 관계) / 영화:리뷰(1:N 관계)
- 배우 데이터 조회
- 배우 전체 데이터 조회 (id, name)
- 특정 배우 조회 (id, name, movies-title)
- 영화 데이터 조회
- 영화 전체 데이터 조회 (title, overview)
- 특정 영화 조회 (id, title, overview, release_data, actors-name, review-title, review-content)
- 리뷰 데이터 조회, 생서, 수정, 삭제
- 리뷰 전체 데이터 조회 (title, content)
- 특정 리뷰 조회 (id, title, content, movie-title)
- 리뷰 추가
- 리뷰 삭제
- 리뷰 수정
(2) 스터디 발표
- 리액트를 활용한 토이프로젝트
- 노마드 코더 리액트 강의에서 학습한 내용을 활용하여 웹사이트 제작
- 프로젝트 주제 선정 이유, 기능 소개 등
(3) 백준 문제 풀이
- 1197 최소 스패닝 트리
- 문제풀이
2. Feeling
오늘도 즐겁게 관통프로젝트에 참여했다. 이번에는 Navigator
와 Driver
의 역할을 잘 나눠서 진행한 것 같다.
스터디 발표에서 좋은 피드백을 많이 받을 수 있었다. 또한, 다른 사람들의 주제를 보면서 나도 많이 배울 수 있었다..(●’◡’●) 하지만 리액트로 내가 생각했던 것을 구현할 수 있을까에 대한 불안감이 한 켠에 있다. 일단 내일부터 조금씩 해야지..
3. Finding
원하는 데이터를 출력하기 위해 클래스 내부에 새로운 클래스를 정의한다.
1:N, N:M 관계의 데이터를 불러올 때 원하는 필드만 적용하기 위해서 클래스 내부에 새로운 클래스를 정의해야 한다. (오버라이드).
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
# moveis/serializers/actor.py
from rest_framework import serializers
from ..models import Actor,Movie
from .movie import MovieSerializer
class ActorListSerializer(serializers.ModelSerializer):
class Meta:
model = Actor
fields = ('id','name',)
class ActorSerializer(serializers.ModelSerializer):
# title만 출력하기 위해 내부에 새로운 클래스 정의
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
fields = ('title',)
# 필드 재정의(override)
movies = MovieSerializer(many=True, read_only=True)
class Meta:
model = Actor
fields = '__all__'
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
# moveis/serializers/movie.py
from rest_framework import serializers
from ..models import Movie,Actor, Review
class MovieListSerializer(serializers.ModelSerializer):
class Meta:
model=Movie
fields=('title','overview',)
class MovieSerializer(serializers.ModelSerializer):
class ActorSerializer(serializers.ModelSerializer):
class Meta:
model = Actor
fields = ('name',)
class ReviewSerializer(serializers.ModelSerializer):
class Meta:
model = Review
fields = ('title', 'content',)
# 필드 재정의(override)
actors = ActorSerializer(many=True, read_only=True)
review_set = ReviewSerializer(many=True, read_only=True)
class Meta:
model=Movie
fields='__all__'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# moveis/serializers/review.py
from rest_framework import serializers
from ..models import Review, Movie
class ReviewSerializer(serializers.ModelSerializer):
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
fields = ('title',)
movie = MovieSerializer(read_only=True)
class Meta:
model = Review
fields = '__all__'
read_only_fields = ('movie',)
4. Future Action & Feedback
Future Action | 진행 상황 | Feedback |
---|---|---|
DOM을 깨우치다 | in progress 🚀 | |
강의에서 학습한 flex-website 혼자 제작하기 | not start | |
1일 1알고! 🔥 |