2차 프로젝트 8일차

1. 스탠딩 미팅

[공통 특이사항]

  • 17~19시 기업협업 QnA + 이력서 보내기
    공통 목표는 ‘상호 통신’

[프론트] 진행상황
1. 크리에이터 지원 보강 및 문제 해결(내부바 문제+데이터 송수신 등)
2. 내부바 리펙토링 로그인 연결(함수형.. 컴포넌트 공부 블로킹)
3. 무한스크롤(라이브러리 or 안 쓸지 확인 ; 블로킹) 완성하기+필터 먼저 하기 ; 백엔드와 맞추기(어떻게 맞출지 ; 페이지네이션으로 무한스크롤 구현이 필요하지만 일단 모달부터 진행하는 것이 좋을 것. ; 페이지네이션은 추가 구현)
4. 크리에이터지원 컴포넌트 등 진행

[백엔드] 진행상황
1. RDS + CSV 이용한 데이터베이스 입력(jpg, gif…)
2. 1071에러 해결중(아마 데이터 CharField가 2000으로 되어 있는게 있어서 그런 듯) ; 머지 후 확인 예정
-> 결론 : 해결 완료
3. 모델 일부 수정
4. 데이터베이스 입력되는데로 모달 view 로직 구현한거 통신 예정

추후 예정

  1. 각자한 것 유닛테스트 진행
  2. 크리에이터 지원 views.py 진행(왕록, 다민) ; 역할 분담 완료
  3. 블로킹
  • 데이터베이스 캐릭터값(1071에러의 원인으로 파악중)
  1. 공유사항
  • 토큰 키값 공유
  • 프론트 통신 상황 공유(모달)

2. 블로킹 해결

접근 : 1071 Error의 근본적인 원인은 텍스트 스트링 길이의 문제.

  1. UrlField -> CharField로 변경 : 실패
  2. 500 이상의 모든 CharField 값 수정 : 실패
  3. 하다가 migration 일그러짐 현상 -> RDS 내 데이터베이서 2~3회 정도 초기화 실시
  • password 컬럼 빼다가 발생한 에러
  1. 중간 중간 migrations 파일 팀원과 공동으로 맞추기

멘토님 조언 : RDS 생성 시 collate 문제가 있는 것 같음

  • why? : 팀원들이 모두 로컬 DB로 돌렸을 때 이상 없이 돌아갔음.
  • 확인 결과 : 이상 없었음
  1. 그래서 찾은 힌트 : (공식문서 참고) unique=True를 건 컬럼의 경우 Charfield던 어떻던 글자수 제한이 생긴다

  2. 확인 결과 : Introduction 필드에 unique_together를 건 필드가 수상했음.

  • 시도 : 유니크 투게더를 지우고 글자수도 제한에 맞게 고쳐 봄
  • 첫 시도는 마이그레이션 문제로 인해 실패. 다시 파일 정리 후 시도해보니 정리 완료

결과 : 성공

교훈 : 함부로 unique=True 등을 걸지 않고 글자수 제한에 대해서 다시 한 번 생각해보자.

3. 소셜 로그인 유닛 테스트 시작

1. 시도 : 로그인 및 로그인 실패-> 성공

2. 막히는 부분

response = client.post('/user/signin', **{"HTTP_AUTHORIZATION" : "1234", "content_type" : "application/json"})

서칭 후 고친 코드

import json

from django.test    import TransactionTestCase, Client

from unittest.mock  import patch, MagicMock

from user.models import User


class KakaoLoginTest(TransactionTestCase):    
    def setUp(self):
        User.objects.create(
            username = '안다민',
            kakao_id = '1234567890',
            email = 'damin0320@kakao.com'
        )
        
    def tearDown(self):
        User.objects.all().delete()
        
    @patch('user.views.requests')
    def test_kakao_login_success(self, mocked_requests):
        client = Client()
        class MockedResponse:
            def json(self):
                return {
                    "id" : "1234567890",
                    "properties" : {
                        "nickname" : "안다민"
                    },
                    "kakao_account" : {
                        "email" : "damin0320@kakao.com"
                    }
                }
        mocked_requests.get = MagicMock(return_value=MockedResponse())
        
        header = {'HTTP_Authorization' : 'access_token'}
        response = client.post('/user/signin', content_type='application/json', **header)
        self.assertEqual(response.status_code, 200)
        
   
    def test_kakao_login_fail(self):
        client   = Client()
        header   = {'No_Authorizaeion' : '1234'}
        response = client.post('/user/signin', content_type='application/json', **header)
        self.assertEqual(response.status_code, 400)        

추가로 할 것 : 피드백 받고 정리된 코드로 마저 이론 정리하기

4. 익일 할 것

  1. 소셜 로그인 유닛 테스트 피드백 받기
  2. 트렐로 계획에 맞는 크리에이터 지원 views.py 구현 시작
  3. 프론트엔드와 로그아웃 맞춰보기
profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

1개의 댓글