Skip to content

ttppggnnss/BIFilms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BI Films

๐Ÿšฉ ๋ฐฐํฌ ์„œ๋ฒ„ URL

BI Films <= ํด๋ฆญํ•˜๋ฉด ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์•„์ด๋””

id : test

pw : test1234!

๐ŸŽฅ UCC

UCC<= ํด๋ฆญํ•˜๋ฉด ์œ ํŠœ๋ธŒ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿคตโ€‹ ํŒ€์› ์ •๋ณด ๋ฐ ์—…๋ฌด ๋ถ„๋‹ด ๋‚ด์—ญ

๊น€์„ฑ๋ฏผ(Bradley) - ๊ธฐ๋ณธ์ ์œผ๋กœ ์žฅ๊ณ , ๋ทฐ ํ•จ๊ป˜ ๊ตฌํ˜„ + ๋ชจ๋ธ๋ง ๊ด€๋ จ

๊น€์„ธํ›ˆ(Isaac) - ๊ธฐ๋ณธ์ ์œผ๋กœ ์žฅ๊ณ , ๋ทฐ ํ•จ๊ป˜ ๊ตฌํ˜„ + ๊ตฌํ˜„ ๊ด€๋ จ

๐Ÿ’ก ๋ชฉํ‘œ ์„œ๋น„์Šค ๊ตฌํ˜„ ๋ฐ ์‹ค์ œ ๊ตฌํ˜„ ์ •๋„

ํ•„์ˆ˜๊ธฐ๋Šฅ ์ œ์™ธํ•œ ๋ชฉํ‘œ ์„œ๋น„์Šค

โ€‹ [๊ฐœ์ธ์ ์ธ ์ ์ˆ˜]

  • [9์ ] ํŽ˜์ด์ง€๋„ค์ด์…˜

    ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•ด์„œ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„์‰ฌ์› ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค.

  • [8์ ] ํ”„๋กœํ•„ ํŽ˜์ด์ง€ ๊ตฌํ˜„

    ์œ ์ € ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ์„ ๋ฏธ๊ตฌํ˜„ ํ•œ ๊ฒƒ์ด ์•„์‰ฝ๋‹ค. ๋˜ ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€๋ฐ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•ด์•ผํ•  ์ง€ ๊ณ ๋ฏผ์ด ๋” ํ•„์š”ํ•˜๋‹ค

  • [8์ ] ์œ ์ € ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ๊ตฌํ˜„

    ๊ด€๋ฆฌ์ž๊ฐ€ ํšŒ์› ํƒˆํ‡ด ๊นŒ์ง€๋Š” ์ข‹์€๋ฐ ๋‹ค ๊ตฌํ˜„ํ•˜๊ณ  ๋‚˜์„œ ๊ฒฝ๊ณ  ์นด๋“œ (Yellow Card) ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด ์•„์‰ฌ์› ๋‹ค.

  • [8์ ] ์˜ํ™” ์ข‹์•„์š” ๊ตฌํ˜„

    ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ข‹์•„์š”๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒƒ์ด ์•„์‰ฝ๋‹ค.

๐Ÿ›  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง(ERD)

์˜ํ™” / ํ‰์  <=> ์œ ์ € <=> ๊ฒŒ์‹œ๊ธ€ / ๋Œ“๊ธ€

### movies/models.py
from django.db import models
from django.conf import settings
# Create your models here.

class Genre(models.Model):
    name = models.CharField(max_length=100)

class Movie(models.Model):
    title = models.CharField(max_length=100)
    original_title = models.CharField(max_length=100, null=True)
    release_date = models.DateField()
    popularity = models.FloatField(null=True)
    vote_count = models.IntegerField(null=True)
    vote_average = models.FloatField()
    adult = models.BooleanField(null=True)
    overview = models.TextField()
    original_language = models.CharField(max_length=100, null=True)
    poster_path = models.CharField(max_length=100, null=True)
    backdrop_path = models.CharField(max_length=100, null=True)
    genres = models.ManyToManyField(Genre, related_name = 'movies')
    like_users = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='like_movies', blank=True)

class Rank(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    movie = models.ForeignKey(Movie, related_name='ranks', on_delete = models.CASCADE)
    score = models.IntegerField()
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
## accounts/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from movies.models import Movie

class User(AbstractUser):
    rank_movie = models.ManyToManyField(
      Movie,
      related_name='rank_user',
    )
## articles/models.py
from django.db import models
from django.conf import settings


class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

class Comment(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    article = models.ForeignKey(Article, related_name='comments', on_delete = models.CASCADE)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

โš™ ํ•„์ˆ˜ ๊ธฐ๋Šฅ

1. ๊ด€๋ฆฌ์ž ๋ทฐ

๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์˜ํ™” ๋“ฑ๋ก / ์ˆ˜์ • / ์‚ญ์ œ ๋ฒ„ํŠผ์ด ๋ณด์ด๊ฒŒ ํ–ˆ๋‹ค. ๋˜ ํ‚ค๊ฐ’์„ ํ™•์ธํ•ด์„œ ๊ด€๋ฆฌ์ž ํ‚ค์ธ ๊ฒฝ์šฐ์—๋งŒ ์žฅ๊ณ ์—์„œ ์‹คํ–‰๋˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค.

๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์œ ์ € ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ ์œ ์ € ํƒˆํ‡ด ๊ถŒํ•œ์„ ๊ฐ–๋Š”๋‹ค

2. ์˜ํ™” ์ •๋ณด

djangp_pjt5 ์—์„œ ์‚ฌ์šฉํ•œ ์˜ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ 500๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค.

๋กœ๊ทธ์ธ ํ•œ ์œ ์ €๋งŒ ํ‰์  ๋“ฑ๋ก / ์ˆ˜์ • /์‚ญ์ œ ๋ฐ ์ข‹์•„์š”๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.

3. ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ‰์  ๊ธฐ๋ฐ˜์œผ๋กœ ์ž์‹ ์ด ํ‰๊ฐ€ํ•œ ํ‰๊ท  ํ‰์  ์ด์ƒ์˜ ์˜ํ™” ์ค‘ ์ข‹์•„์š”ํ•œ ์˜ํ™”์—์„œ ํ•˜๋‚˜๋ฅผ ๋ฝ‘๊ณ  ๊ทธ ์žฅ๋ฅด ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ๋ฝ‘์•„์„œ ํ‰๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์ข‹์•„์š” ํ•˜์ง€ ์•Š์€ ์˜ํ™” 5๊ฐœ๋ฅผ ๊ณจ๋ผ์ค€๋‹ค.

4. ์ปค๋ฎค๋‹ˆํ‹ฐ

๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž๋งŒ ๊ธ€์„ ์กฐํšŒ / ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณธ์ธ๋งŒ ๊ธ€์„ ์ˆ˜์ • / ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž๋งŒ ๊ฒŒ์‹œ๊ธ€์— ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  ์ž‘์„ฑ์ž ๋ณธ์ธ๋งŒ ๋Œ“๊ธ€์„ ์ˆ˜์ • / ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒ์„ฑ ๋ฐ ์ˆ˜์ • ์‹œ๊ฐ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.

๊ฒŒ์‹œ๊ธ€์—๋„ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌ์„ฑํ–ˆ๋‹ค.

5. ๊ธฐํƒ€

5๊ฐœ ๋„˜๋Š” URL ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค.

์—๋Ÿฌ ํŽ˜์ด์ง€๋Š” alert ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค.

๋น„๋™๊ธฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ 500๊ฐœ๊ฐ€ ๋„˜๊ณ  ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๋ คํ•˜๋‹ˆ ์‚ด์ง ๋ฒ„๋ฒ…๊ฑฐ๋ฆฌ๋Š” ๊ฒƒ์ด ๋А๊ปด์ง„๋‹ค.

๐ŸŒˆ ๊ธฐํƒ€ (๋А๋‚€์ )

ํฌ๊ฒŒ 3 ๊ฐ€์ง€ ์ •๋„๋กœ ๋А๋‚€์ ์„ ์š”์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

  1. ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค.

    ํ‰์†Œ์— ํ•˜๋ฃจ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์„œ ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์„ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์žฅ๊ณ ์™€ ๋ทฐ ๋ชจ๋‘ ํ•˜๋ ค๋‹ˆ ์ƒ๊ฐํ•˜์ง€๋„ ๋ชปํ•œ ์˜ค๋ฅ˜๋„ ๋งŽ์•˜๋‹ค. ์ฒ˜์Œ์—๋Š” ์š•์‹ฌ์„ ๋ถ€๋ ค์„œ ์ด๊ฒƒ๋„ ๋„ฃ์–ด๋ณด๊ณ  ์ €๊ฒƒ๋„ ๋„ฃ์–ด๋ณด๊ณ  ํ–ˆ์ง€๋งŒ ์ด๊ฑธ ๊ตฌํ˜„ํ•˜๋ฉด ์ €๊ฒŒ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๊ณ  ์ €๊ฑฐ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ์ด๊ฒŒ ๋‹ค์‹œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ƒํ™ฉ๋“ค์ด ๋งŽ์•˜๋‹ค. ๋˜ ์˜ํ™” ๋ฐ์ดํ„ฐ๋„ ์‹œ๊ฐ„ ๋‚จ์œผ๋ฉด api ํ™œ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด๋ ค ํ–ˆ์ง€๋งŒ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ๋ฐ–์— ์—†์–ด์„œ ์•„์‰ฌ์› ๋‹ค.

    ๋„๋ฉ”์ธ(bifilms.xyz)์„ ๊ตฌ๋งคํ–ˆ๋Š”๋ฐ ๋ฐฐํฌํ•  ๋•Œ ๋“ฑ๋ก๋œ ๋„๋ฉ”์ธ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์ƒ๊ฐ์ฒ˜๋Ÿผ ์ž˜ ์•ˆ๋˜์—ˆ๋‹ค ๊ฐ€๊ฒฉ์ด ์‹ธ๋‹ค๊ณ  ํ˜ธ์ด์ŠคํŒ…์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ž๋ฃŒ๊ฐ€ ๋ถ€์กฑํ–ˆ๋‹ค. ๋‹ค์Œ๋ฒˆ์—๋Š” ์ž๋ฃŒ๋ฅผ ์ฐพ๊ธฐ ์‰ฌ์šด ์‚ฌ์ดํŠธ๋ฅผ ํ™œ์šฉํ•ด๋ณด์•„์•ผ๊ฒ ๋‹ค.

  2. live share ์‚ฌ์šฉ ํ›„๊ธฐ.

    live share ๊ฐ€ ํ˜‘์—…ํ•˜๊ธฐ ์ข‹์€ ๊ฒƒ ๊ฐ™๊ธด ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋‘˜์ด ๊ฐ™์€ ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •ํ•˜๋‹ค ๋ณด๋ฉด ์•Œ ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๊ฐ€ ๊ฐ„ํ˜น ๋ฐœ์ƒํ•œ๋‹ค. ์›์ธ์„ ์ฐพ์•„์„œ ๊ณ„์† ํ•ด๊ฒฐํ•˜๋ ค ํ•ด๋„ ํ•ด๊ฒฐ ๋˜์ง€ ์•Š๋Š”๋ฐ live share ๋ฅผ ๋„๋‹ˆ ํ•ด๊ฒฐ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์—ˆ๋‹ค. ๋” ์ข‹์€ ํ˜‘์—… ํˆด์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

  3. ์–ด๋””์—๋‚˜ ๋ฐฉ๋ฒ•์€ ์žˆ๋‹ค.

    vue ์—์„œ๋Š” ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๋”ฐ๋กœ ๋ฐฐ์šฐ์ง€ ์•Š์•„์„œ ์ด๊ฑธ ํ•  ๊นŒ ๋ง๊นŒ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ vue ์—์„œ๋„ pagination ์„ ์ผ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ ์‹œ๋„ํ•ด๋ณด์•˜์ง€๋งŒ ์‹คํŒจํ•˜๋‹ค๊ฐ€ vuetify ๋ผ๋Š” ๊ฒƒ์„ ์ถ”๊ฐ€ํ•ด์„œ ์‹œ๋„ํ•˜์—ฌ ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฐฐ์šฐ์ง€ ์•Š์€ ๊ฒƒ๋“ค์„ ์ฐพ์•„์„œ ๋„์ „ํ•˜๋Š” ๊ฒฝํ—˜์ด (์‹คํŒจํ–ˆ์œผ๋ฉด ๋ณ„๋กœ์˜€๊ฒ ์ง€๋งŒ ์„ฑ๊ณตํ–ˆ์œผ๋‹ˆ๊นŒ) ์ข‹์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

git branch ๋ฅผ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด ์กฐ๊ธˆ ์•„์‰ฌ์› ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฐฐํฌ๊นŒ์ง€ ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์€ ๊ฒฝํ—˜์ด ๋œ ๊ฒƒ ๊ฐ™๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors