[10번째 이야기] 항해 4일차

jae_s_a·2022년 9월 22일
0

항해99

목록 보기
7/15

오늘의 배운점

해결하지 못한 문제

  1. $.removeCookie is not a function

어제와 마찬가지로 이 부분은 해결되지 않았고, 이상하게 메인페이지인 index.html에서만 정상 동작되지 않았다.
로그인한 사용자는 마이페이지, 상세페이지, 메인페이지에 접근이 가능한데, 메인페이지가 아닌 나머지 페이지에서는 정상 동작이 되는데 메인페이지에서만 동작이 되지 않았다.

  1. 토큰이 만료가 되고 /로 이동 시 토큰이 만료되었습니다 가 유지되는 에러

새로고침이 아닌 URL에 직접 메인페이지의 위치로 이동해도 해결되지 않았고, 이 부분도 1번처럼 쿠키/토큰의 문제로 보이는데 이것과 관련해서도 해결하지 못했다 :(

해결한 문제

  1. auto_increment

자동 증분과 관련해서는 사전프로젝트때부터 고민했던 것이다.

제일 베스트인 방법은 _id로 접근하여 자바의 객체의 주소(?)처럼 구현하는 것 같았는데 시간적인 부분이나 mongoDB에 대해 기본지식이 부족하다고여겨서 결국 항해 3일차에 적은 것처럼 메서드나 컬렉션으로 구현하는 방법을 생각하고 있었다.

cmt = list(db.comment.find({}, {'_id': False}).sort('cmtId', -1).limit(1))

    if(len(cmt) == 0):
        cmt = 0
    else:
        cmt = cmt[0]['cmtId']

    doc = {
        'reviewId': reviewId,
        'cmtId': cmt + 1,

내가 생각해낸 건 고유한 값인 cmtId를 내림차순으로 정렬한 후에 처리하는 방법이었다.

처음에 if(len(cmt) == 0):은 생각하지 않고 구현을 했는데 처음 구현했을 당시 데이터베이스가 빈 상태가 아니였고 이때는 정상적으로 동작했지만, 프로젝트 발표를 위해 미리 데이터베이스를 drop시키고 테스트 겸 데이터를 새로 넣은 경우에 에러가 발생했다. (이 에러는 팀원덕에 알게됐다... 멋지다 7조!)
원래 if문없이 cmt=cmt[0]['cmtId']로 처리를 해줬는데 데이터베이스가 비어있는 경우에는 당연히 cmtId를 읽어오지 못하기에 오류가 났던 것이었다.
len으로 데이터가 없을 경우에는 cmt값을 0으로 설정해주어 해결했다.

  1. url_for

어제도 이 부분에 대해 적긴했지만 commit안하고 pull했다가 작업한 내역들을 날려서 제대로 쓰지 못해서 다시 써본다.
이 에러는 매니저님이 보내주신 포스팅과 추가적인 설명으로 해결했다.

https://scribblinganything.tistory.com/391

단순히 url_for 링크의 매개변수에 따른 사용법?이지만 url_for의 첫 번째 매개변수로 url에 연결된 함수명 이 들어가야 하는데 이 부분이 제대로 매핑되지 않아서 발생한 에러였다.

내가 생각했던 건 첫 번째 매개변수가 /login처럼 요청하는 방식인줄 알았는데 함수명을 적어줬어야 했다.

근데 생각해보면 웹종합 플러스의 예시에서도 '/login'이 아닌 'login'이었기에 "메서드를 나타내는건가?" 라는 의심을 해봤어야 했다.

return redirect(url_for('getLogin', msg='로그인 정보가 존재하지 않습니다.'))

부끄럽지만 매니저님이 처음에 링크를 보내주셨을 때 msg를 잘못 처리해줘서 에러가 난 줄 알았다.

단순히 관련된 자료를 던져주고 알아서 하라고 하는게 아닌 잘 이해했는지 되물어주신덕에 해결한 것 같다.

회고

오늘은 간만에 회고라고 할 수 있을 내용들을 써보려한다.

항해 시작하고 OT이후에 바로 시작된 미니프로젝트가 09.22(목) 18:00까지 구현완료해서 양식에 맞춰서 제출이었고 대략 5분전에 제출 완료했다.

처음이라는 거에 많은 어려움이 있었던 것 같다.
사전프로젝트와 달리 반드시 제출을 해야했고, 최대한 git을 사용해보자고 팀원간 다짐도 했기에 많은 어려움이 있었다.
팀원 모두가 git에 익숙치 않았기에 pull, push, merge등에서 정말 많은 conflict가 있었는데 서로 같이 머리 맞대고 해결한 덕분에 무사히 프로젝트 최종까지 merge를 잘 한 것 같다.
프로젝트 회고 발표에서 매니저님이 "git을 잘 사용했고,,,,"라는 말에 그간의 답답함이 눈 녹듯 사라진 것 같다.

뿐만 아니라 서로 모르는 건 질문하고 답해주고 최대한 소통하려고 노력했던 것 같다.
소통없이 git을 각자 했다면 아마 지금만큼 익숙해졌을까 하는 생각도 들었고, 프로젝트를 완벽히 구현해내지는 못했지만 이만큼까지 했을까 하는 생각도 들었다.

끝까지 소통을 잘 해주고 기분좋게 마무리한 팀원들에게 정말 정말 고맙다. 그리고 프로젝트가 발표가 끝난 이후에는 그간 시작이 없어서 못 나눈 사담도 나누고 조금 더 가까워진 것 같고, 단톡방도 만들었다...! +_+

파이썬, flask, mongoDB를 사전프로젝트에서 거의 처음 쓰다싶이해서 기본적인 것에 많은 어려움을 겪었던 것 같다.
코드의 중복도 많고 좋은 코드도 아닌 걸 알지만 아래는 우리가 진행한 미니프로젝트의 결과물이다.

https://github.com/K-SIIK/WECHELIN

fork를 했지만.. 최신화하는 걸 몰라서 임시로(?) repo의 주인인 팀장님의 GIT 주소를 남긴다.

-

이제 8시간이 지난 오전 9시에는 2주차에 대한 발제가 있을 예정이다. 이번부터 커리큘럼이 약간 바뀐듯 하다.
기존에는 프로그래머스 2,3단계를 풀면서 코딩테스트 위주의 커리큘럼이었다면 이번 기수부터는 프로그래머스 1단계정도를 풀면서 사용할 언어에 익숙해지는 커리큘럼으로 변경된 것 같다.

달리기 반과 걷기 반이 있는데 난 달리기반을 선택해서 하루에 얼마나 많은 시간을 과제 수행에 할애할지는 모르겠지만 시간이 나는대로 1주차에 계획했던 목표들부터 하나씩 지워나갈 예정이다.

Feedback

오늘은 📌 Self Feedback이 아닌 Feedback인 이유는 미니프로젝트에 대한 매니저님들의 피드백을 적어보려고 한다. 따로 녹화나 기록해두지 않아서 기억에 의존하기에 빠진 부분이 있겠지만,

  1. 회원가입이나 로그인 시 형식에 맞지 않거나 검증에 실패한 경우 alert가 아닌 사용자의 편의를 위해 입력창 아래에 힌트를 보여주기
  2. 지금은 로그인하지 않은 사용자가 아닌 상세페이지로 이동(요청)할 경우 alert로 '로그인 후 이용 가능합니다.'와 함께 로그인페이지로 이동하지만 이 방법말고 상세페이지도 볼 수 있게 할 수 있는 대신 수정/삭제 버튼을 감춘다던가 하는 등 상세페이지까지 조회를 할 수 있도록 구현

당장에 프로젝트에 대한 피드백으로 기억나는 건 두 가지였고, 잘했다고 했던 건

  1. GIT 사용도 꾸준히 했고 merge도 잘했다. 또, commit 메시지도 의미있게 적었다.
  2. auto_increment에 대해 잘 고민을 했다. ~~~(기억안남..)할때 중복데이터는 반드시 피해야 한다.
  3. 전반적으로 자연스러운 흐름으로 구성이 되었다.
  4. 주제를 바꿨음에도 데드라인안에 잘 구현한 것 같다.

발표를 마치고 피드백과 다른 조들의 발표까지 보고난 후에 우리 조의 팀플방으로 와서 팀원들에게 '칭찬은 언제 들어도 좋다..'라고 했더니 다들 피식했다.

결론적으로 사전스터디도,,, 1주차 미니프로젝트도,,, 좋은 사람들을 만나 너무너무 좋다.
내일부터는 새로운 조가 구성이 된다는데 이번에도 좋은 사람들을 만나면 좋겠다.

다시 또 힘찬 한 주가 되기길 🤜🤛

profile
if not now, when

0개의 댓글