ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Week01. Chapter01: 웹개발 미니 프로젝트
    HangHae99/WIL-hanghae99 2021. 3. 8. 00:58

    Week01: 03/01(Mon) ~ 03/05(Fri)

    Weekly Goal: 사전준비 지식을 바탕으로, 첫번째 팀 프로젝트를 완성해보기

     

    🚢 배운 것

    . JWT 인증 방식으로 로그인 구현하기

    Jinja2 템플릿 엔진을 이용한 서버사이드 렌더링

    . 팀프로젝트를 다른 사람에게 소개하는 방법

     

     

    🚩 느낀 것

    JWT 인증 방식으로 로그인을 구현하기에 앞서 JWT가 뭔지, 쿠키/세션 방식으로 로그인 하는 것과는 무슨 차이가 있는지, 왜 등장하게 됐는지를 구글링 하고, 유튜브 영상을 찾아보면서 프로젝트를 진행했다.

    Jinja2 템플릿 엔진이라는 게 뭔지, 또 서버사이드 렌더링이라는 건 뭔지 개념 자체가 생소한 것 투성이었기에 구글링 하고 또 하고 또 하고 자료들을 찾아보면서, 프로젝트를 동시에 진행했다.

     

    아직은 잘 모르겠다.

    프로젝트를 만들어 나가면서 그 순간 이해하고, 코드를 짜서 테스트 해보고 오류 없이 잘 넘어 가는지, 오류를 만났을 땐 이게 무슨 오륜지, 어떨 때 생기는 오륜지 단계적으로 하나씩 만들어 나갔다.

    만들어 나가면서도 JWT 방식을, Jinja2를 개념적으로는 이해 하겠는데, 이게 뭐가 그렇게 이점이 있는 건지는 크게 와닿지 않았다.

     

    하지만 1주차에서 배운 것이 하나 있다.

    나는 이제 스스로 공부하는 방법을 알게 됐다. 항해99에서 공부하기 전에 나는, 강의 들으면서 진도 나가는 방식으로 공부를 했었다. 그날 들어야 하는 강의 할당량을 채우면 플래너에 체크 표시를 했다. 들었으니까.

    그거면 됐었다. 들었으면 체크.

    항해99에서 제공해줬던 웹개발종합반 플러스 강의도 원래 하던식으로 공부했다.

    그리고 프로젝트를 만들면서 알게 됐다. 내가 만드려는 기능의 전후 관계 맥락 파악을 못하는 것을, 설계가 안된다는 것을.

     

    구글링하면서, 다른 사람의 코드를 분석하면서, 왜 이 코드가 여기에 있는 건지, 왜 이걸 저기에 넘겨줘야 하는 건지 하나하나 찾아보면서 스스로 알아냈고, 마침내 이해를 하고 코드를 짜기 시작했을 때 느꼈다. 스스로 공부하는 게 어떤 건지.

     

    첫주차의 미니 프로젝트는 나에겐 전혀 미니가 아니었지만... 진짜 하면서 너무 막막하고, 답답하고, 어려웠고, 조급하고, 마감 기한 내에 끝낼 수 있을지 불안했지만............ 공부하는 방법을 바꾼 것 하나만으로 충분한 의미가 있었다.

     

     

    아쉬웠던 것

    1) 오류메세지 간과하기

    로그인 기능을 만들면서 token을 반환할 때 타입 오류가 났었다. 

    오류 찾아내느라 3시간을 썼는데... 오류 메세지만 잘 읽었었더라면 금방 찾아 낼 수 있는 문제였다.

     

    오류 메세지에 떡하니 타입오류이고, json 반환 형식이 잘못됐다고 적혀 있었는데(byte타입이라 json형식으로 반환 할 수 없다), 오류 메세지를 간과했다.

    오류 메세지를 무시하는 바람에 새벽 4시에 잘 수 있었다.

     

    2) 설계를 신중하게 하지 못한 것

    우리 팀은 택배 송장 번호를 등록하면 실시간으로 내 택배 상태를 확인할 수 있게 하는 기능을 구현하려고 했다.

    등록 버튼을 누르면 username(id), 택배사, 송장번호, 위치, 상태, 기타 정보들을 db에 저장하게 했다.

     

    그리고 db에 저장된 데이터들을 내 택배 조회 페이지에 뿌려주는 걸 구현하고 있었는데, 마감 날 저녁 먹으면서 조회 페이지에 데이터 뿌려주는 로직을 생각하다보니, 'db에 저장 될 때 그때 택배 상태가 저장이 되는데, 그렇다면 조회 페이지에는 그 상태 그대로 출력이 될테고, 그럼 그게 실시간이 아니지 않나? 등록 버튼 눌렀을 때 택배 상태를 표시 해주는 거지, 그 뒤의 진행 상황은 표시가 안될텐데....?' 라는 생각이 들면서, 혹시 내가 놓친 게 있나, 잘못 이해한 건가싶어 팀원들에게 의견을 구했고, 우리는 깨닫게 되었다. 설계가 잘못됐다는 걸.

    마감 날이었고, 시간은 저녁이었고, 우리에겐 선택권이 없었다. 일단 늦었는데 할 수 있는 기능까지 만들자.

     

    조회 페이지도 완성했고, 전부 구현 했는데, 업데이트 버튼 (실시간 조회)은 구현하지 못했고 추후에 아이디어를 합쳐서 만들어보기로 했다.

     

    3) AWS EC2에 업로드하는 법을 다 까먹은 것

    ... 프로젝트 다 만들어 놓고, 서버에 올리는 방법을 까먹어서 이것도 한 2시간 걸렸나.

    하다가 오류 나고, 충돌 나고 그래서 결국 인스턴스 종료하고 다시 생성해서 항해99에서 사전과제로 제공해준 웹개발종합반 강의 따라하면서 만들었다.

    Filezilla 실행하는데,너무나 낯설었다. 사전과제 제출할 때 사용한 건데, 이미 써본 건데 처음보는 것마냥...

    리눅스 명령어 같은 것들은 미리 문서화 해서 정리를 해놓아야 한다!

    블로그도 만들었으니, 여기 정리해서 올려야겠다.

    댓글