[항해99] 1주차 WIL (2021.09.13~2021.09.19)
1. 미니 웹 프로젝트
1-1. 프로젝트 필수 포함 요소
- Jinja2 템플릿 엔진을 이용한 서버 사이드 렌더링
- 서버 사이드 렌더링 장점 : 웹페이지에 표현될 데이터를 서버에서 미리 처리한 후 브라우저로 보내주기 때문에 클라이언트 사이드 렌더링과 달리 유저는 웹페이지를 진입했을 때 이미 완성된 화면을 볼 수 있음.
- JWT 인증 방식으로 로그인 구현
- 쿠키/세션 대비, JWT 인증 방식으로 로그인을 구현했을 때의 장점: 요청 인증시 암호화된 토큰의 유효성을 검사하여 인증하기 때문에 서버 세션에 발급한 토큰과 인증 정보를 저장할 필요가 없어 서버의 리소스 소모가 훨씬 적음. 또한 토큰의 만료 시간을 설정함으로써 유저가 로그아웃을 잊어버림으로써 발생할 수 있는 보안의 위험을 대비할 수 있음.
1-2. 결과물
- 서비스 제목: MEAT-UP
- 서비스 소개: 다양한 맛집들에서 새로운 사람들과 모임 가질 수 있도록 모임을 생성하고 참가할 수 있는 웹서비스
- 주요 기능 소개:
- a. 로그인/로그아웃 기능: 아이디 중복 검사 및 정규표현식을 이용한 아이디와 비밀번호 형식 검사
- b. 모임 생성 기능: 모임 생성 버튼 클릭시 나타나는 모달 팝업에 모임에 대한 정보 기입 가능 (제목, 일자, 설명, 최대인원, 장소, 식당 및 음식)
- c. 모임 리스팅 기능: 모임이 생성된 역순으로 메인 페이지에서 참가 가능한 모임들 리스팅
- d. 주최자 및 참가자별 인터페이스 구분: 주최자는 자신이 만든 모임들에 대해 수정 및 후기를 작성 가능. 참가자는 모임 참석 및 참석 취소 가능.
- e. 모임 후기 작성: 1~5까지의 만족도 선택과 텍스트로 후기 작성 가능
- 동작 영상: https://youtu.be/8SDGsYM4nNM
1-3. API 리스트
- 로그인 페이지 호출 API (GET)
- 로그인 API (POST)
- 회원가입 API (POST)
- 아이디 중복 여부 판별 API (POST)
- 메인 페이지 호출 API (GET)
- 모임 생성 API (POST)
- 모임 참여 및 취소 신청 API (POST)
- 모임 수정 API (POST)
- 모임 삭제 API (POST)
- 후기 모음 페이지 호출 API (GET)
- 후기 작성 API (POST)
2. 느낀 점
- 기능별로 최대한 세분화하여 API를 설계하는 것이 효율적이라는 것을 배웠음.
- 예기치 못한 데이터의 유입으로 인한 오류를 방지하고자 서비스의 안정성과 완성도를 위해 예외 처리가 중요하다는 것을 경험할 수 있었음.
- Git에 대한 이해가 없어서 협업을 하는데 굉장한 비효율이 발생했음. Git 공부에 대한 필요성을 느낌.
- 필요한 강의 내용들만 골라 공부하면서 내게 할당된 기능들을 구현하는 개발 방식에 낯설기도 했지만, 되돌아보니 가장 효율적인 학습 방식인 것 같음.
- 코드를 완성해가는 과정을 최대한 잘게 쪼개서 중간 과정들마다 기대되는 결과물이 나오는지, 오류의 원인은 무엇인지 파악하는 디버깅 스킬이 향상됐음.
- 필요한 부분의 코드들만 가져다 쓰는 효율성에 대해 경험할 수 있었음.
- 비록 항해99 기간동안에는 프론트엔드와 백엔드 둘 중 하나의 주특기를 선택해야 하지만 두 기술 스택의 핵심을 경험할 수 있는 프로젝트의 범위가 마음에 들었음. 하나의 웹서비스가 최소한의 범위에서 어떻게 구현되고 작동되는지를 경험할 수 있었음. 나의 경우 역시나 유저와 밀접하게 소통하며 원하는 데이터를 수집할 수 있는 채널을 만드는 프론트엔드가 더 관심이 감.