본문 바로가기

WIL

정글 Week00 미니프로젝트

728x90

정글 Week00 미니프로젝트


2023.02.27 - [project] - 정글 Week00 4조 프로젝트 개요


피드백을 받은 후, 프로젝트 주제 수정!

기능을 많이 넣고자 노력했다.

 

구현 목표로 하는 기능들은 많았지만, 구현한 기능은 적다.

 

✏️ 목표기능들

  1. 날짜(ok)
  2. list jinja python 카드적용(ok) 2-1. 등록하면 list페이지로 가는거 구현(ok) 2-2. 등록 페이지에 취미 목록 체크드 되어 있는 거 수정.(ok)
  3. 참여버튼누르면 인원 카운트-초과하면 카드 어떻게 할껀지...(ok) 3-1. 인원이 다차거나 기간이 지나버린거.... 분류 어떻게 할껀지..
  4. pagination(ok)
  5. 리스트 우선순위
  6. 즐겨찾기-상단에 정렬. 6-1. 내가 좋아요 한 목록만 보기
  7. 뒤로가기-홈버튼 추가(ok)
  8. 취미에 따른 이미지(url) 지정!
  9. 내가 좋아요 한 목록만 보기
  10. 방장이 오픈채팅방 등록할 수 있는 링크 첨부라든가, 서로 소통할 수 있는 그런 요소 추가. 참여 인원의 정보를 어느정도 선에서 공유할지...고민해봐야할듯... 채팅방을 만드는 거.

사실 생각난대로 이야기 나누면서 적었다.

피드백 받은 대로 시간을 정말 작은 단위로 쪼개서 최대한 많은 대화를 나눴다.

확실히 조원들과 이야기를 나누는 시간이 많으니 욕심도 생기고 프로젝트 진행도 빠르게 된 느낌!

 

다들 열정이 넘쳐서 많은 걸 구현할 수 있었다.


 

✏️ 문제 이슈

소모임 리스트

소모임 방을 생성해 방을 만든 사람의 userid값이 agroup 테이블에 들어가는 것 까진 구현했으나,

설정한 모집인원을 초과하지 않도록 해야 했다.

또한 방을 생성한 사람 & 이미 모임에 참가한 사람이 또 참가하는 불사상을 막아야 했다.

이를 어떻게 구현해야 할지 막막....

 

✏️ 분석

일단 방을 만들때 고유값을 줘야 했다.

time 모듈을 사용해 고유값을 주려 했으나, 값의 범위가 너무 커 지수형태로 저장되었다.

이로써, time 모듈 값을 이용해 고유값을 주는건 활용하기 힘들 듯 하다.

팀원분의 아이디어로, 방을 생성할때마다 1씩 증가하는 auto increment값을 고유값으로 주기로!

그리고 그 방이 생성되면 방고유값을 붙여 참가인원을 넣어줄 테이블 생성하기로!

 

✏️ 근복적인 원인 분석(이유)

전역함수를 이용해 auto increment값을 주는 건 해결.

하지만, 이 값(변수)을 mogodb table명으로 입력하는것부터 난제 발생.

머리로 떠오른 생각이 실제 구현되는지 기술적인 부분을 잘 모르니... 이를 찾아봐야 했다.

 

✏️ 개선방향

global num
num = 0

@app.route('/register', methods=['POST'])
def postgroup():
    global num
    	...(생략)
        num += 1

        doc = {
			...(생략)
            'nickname': num,
        }
        db.agroup.insert_one(doc)

        doc2 = {
            'userid': target_id, # 방 참가인원
        }
        db['g'+str(num)].insert_one(doc2)
	...(생략)

변수명 포함된 table생성

아주 성공적으로 mogodb에 변수가 포함된 테이블이 생성된걸 확인할 수 있었다.

 

✏️ 실질적 개선이 어떻게 되었는지

time모듈을 이용하면, 사실 1초단위까지 일치하는 순간에 방을 생성되면 고유값이라 하기 어렵다.

또한 고유값 자체가 너무 길어, 데이터를 주고 받을때 지수로 표현되기도 했다가 아니기도 했다가...

활용하기 매우 어려웠다.

방이 생성될때마다 1씩 증가하는 autoincrement 값 역시 방이 동시에 생성된다면 문제가 될 수 있으나,

고유값 자체 크기가 크지 않아 값을 주고 받을 때 변형이 되지 않고 유용했다.

 

✏️ 개선 방향

예외처리에 유의 해야 할 듯 하다.

또한 aws배포하니 로그인시 cookie가 생성되지 않아. 당황스러웠다.

이를 해결하기 위해 밤을 샜지만, 해결하지 못했다.

다른 조도 같은 문제가 있었지만, aws배포 과정 처음부터 다시 시도하니 해결되었다고 전해들었다.

aws 설정 & 도메인 설정 등을 공부해야 할 듯 하다.


✏️ 느낀점

 

몰입할 수 있는 환경이다 보니, 짧다면 짧고 길다면 긴 3일간의 프로젝트.

이왕 프로젝트하는 김에 평소에 구현하고 싶었던 또는 공부했던 내용을 최대한 써두었다.

그리고 이를 최대한 공부하고 구현하기 위해 노력했더니 결과로 나온 것 같아 뿌듯했다.

하나가 해결되면 또 다른 문제가 생기고..

문제가 생길때마다 같이 고민하고 해결하려고 노력했다.

잠을 아껴가며 프로젝트를 구현했더니, 결과물에 더욱 애정이 가는 것 같다.