10/14 오늘의 시간표
09:00 ~ 10:00 [실시간] 프로젝트 진행방식 발제
10:00 ~ 11:00 [프로젝트] 머신러닝 프로젝트 기초
11:00 ~ 12:00 [프로젝트] 머신러닝 프로젝트 기초
12:00 ~ 13:00 [프로젝트] 머신러닝 프로젝트 기초
13:00 ~ 14:00 점심식사
14:00 ~ 15:00 [프로젝트] 머신러닝 프로젝트 기초
15:00 ~ 16:00 [프로젝트] 머신러닝 프로젝트 기초
16:00 ~ 17:00 [프로젝트] 머신러닝 프로젝트 기초
17:00 ~ 18:00 [프로젝트] 머신러닝 프로젝트 기초
18:00 ~ 19:00 저녁식사
19:00 ~ 20:00 [프로젝트] 머신러닝 프로젝트 기초
20:00 ~ 21:00 [프로젝트] 머신러닝 프로젝트 기초
프로젝트 발제
오늘부터 금요일까지 사물인식 머신러닝 팀 프로젝트가 실시된다. 새롭게 구성된 팀으로 장고를 활용해 홈페이지를 만드는 프로젝트인데 머신러닝의 사물인식 기능을 활용한 기능을 추가해 홈페이지를 만들어야하는 프로젝트이다. 발제 후 S.A를 작성하기 전 사전 미팅을 통해 팀원들과 소개시간을 가지고 팀명과 팀장을 정하는 회의가 있었는데 이번에 다시 한 번 팀장을 맡게되었다.
머신러닝 프로젝트 시작
발제 이후 바로 S.A작성을 시작해도 괜찮았지만 팀원 중 한분인 명지님이 오전 병원진료로 인해 늦게 오셔서 점심을 먹고 다시 모여서 S.A작성을 시작했다.
우리 팀의 프로젝트 내용은 구글 포토 홈페이지를 클론코딩하여 그 안에 있는 기능들 중에서 업로드된 사진의 카테고리를 분류해서 해당 카테고리별로 앨범을 정리해주는 기능, 즐겨찾기 기능, 휴지통 기능을 구현하는 것을 목표로 하고 S.A를 작성했다.
저번 프로젝트에서 배웠던 Figma로 와이어프레임 작성하기, ERDCloud로 ERD 작성하기, 노션 내 기능으로 API명세서 작성하기 등 팀원분들이 해당 사이트를 잘 다루어주셔서 원만하게 진행이 되었다.
팀원들과 함께 작업을 하기 위해서 깃허브 레포지토리를 만들고 다른 팀원들이 그 레포지토리를 포크하고 클론기능을 활용하여 작업할 환경을 조성하였다.
우리가 작업할 메인 레포지토리는 최동근님이 만들어주셨고 매번 PR신청을 수락해주시고 머지해주는 고생을 해주셨다.
처음에는 깃허브를 연동하기 위해서 가장 기본적인 환경조성만 해 둔 상태였고 본격적으로 장고 프로젝트를 시작하기 위해서 우선 S.A에서 계획한 ERD를 토대로 모델을 만드는 작업이 우선 진행되었다. 다른 분들은 머신러닝 파트의 기능을 구현하기로 하셨기 때문에 장고 파트를 담당하게된 나와 은혜님이 모델을 생성했다. 우리가 장고 내에서 사용하게 될 앱은 user와 photo 두 가지이기 때문에 각자 하나씩 담당하기로 했고 나는 photo앱의 모델을 제작하게 되었다.
user/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserModel(AbstractUser):
class Meta:
db_table = "my_user"
first_name = models.CharField(max_length=16, null=False)
last_name = models.CharField(max_length=16, null=False)
def __str__(self):
return self.username
photo/models.py
from django.db import models
from user.models import UserModel
class PhotoModel(models.Model):
class Meta:
db_table = "photo"
user_id = models.ForeignKey(UserModel, on_delete=models.CASCADE)
img = models.ImageField(upload_to='photo/', null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
favorites = models.ManyToManyField(UserModel, related_name='favorites' ,blank=True)
trash = models.ManyToManyField(UserModel, related_name='trash' ,blank=True)
def __str__(self):
return 'id : {}'.format(self.id)
모델 생성하는 작업 자체는 어려운 작업이 아니고 직접 해본 경험도 있기 때문에 오랜 시간이 걸리지는 않았다.
오늘 하루를 마치며
오늘은 프로젝트 시작 후 첫날이기 때문에 많은량의 작업을 하지는 않았다. S.A 작성이 우선시 되었기 때문에 S.A 제출을 하고보니 저녁시간이고 저녁시간 이후로는 첫날이기 때문에 벌써부터 남아서 작업을 할 필요까지는 없을 것 같아서 내일의 작업을 준비하는 정도로만 하고 일찍 해산하였다.