입소와 동시에 주어진 프로젝트
입소 첫날 학습 자료로 공부한 것들을 토대로, 3인 1조로 3박 4일간 웹사이트 서비스를 개발하는 일이 주어졌다. 가자마자 개발 프로젝트를 한다는 것은 알았지만, 처음 보는 사람들과 한 팀이 되어 개발을 한다는 것은 막상 직접 닥치니 고민이 이만저만이 아니었다. jinja2를 사용하라 등의 지시사항과 기존 학습 자료를 기반으로 하라는 점에서 flask를 사용하고, ajax를 사용한다 등의 최소한의 기술적 방향성은 있었으나, 팀원들의 역량을 일체 모르는 상황이었기 때문이다. 그래서 처음 보는 사람들과 함께 의논하여 주제를 정하고, 하루만에 기획 발표를 준비하고, 약 2~3일만에 개발을 완료하려니 이게 가능한 일일까 하는 생각부터 들었지만 일을 시작하니 생각보다 괜찮았다. 갑작스레 닥친 시련을 함께 이겨내려 머리를 굴리고, 시간을 아끼기 위해 함께 움직여 밥을 먹고 일하다 보니 처음 만난 사람들간의 어색함 따위를 느끼고 있을 때가 아니게 되었다.
프로젝트 내용
우리 조는 5개월 동안 매주 팀이 바뀐다는 점에서 우리의 기록이 한 곳이 아닌 여러 곳에 파편화될 현상에 주목했다. 그렇다면 정글러들만을 위한 웹사이트, 5개월간 내가 속한/속했던 팀의 일정 및개인 업무 일정 등을 기록하여 열람할 수 있는 사이트가 있다면 어떨까. 시간은 부족했고 지금까지 짜낸 아이디어 중 중복될 확률이 높은 것을 제하다 보니 이 주제를 택하게 되었다.
프로젝트 내용: 기술
나는 이 프로젝트가 학습자들에게 서버사이드 랜더링에 대한 학습과 JWT에 대한 학습을 요구한다고 생각했다. Jinja2는 사용시 특정 탬플릿 안에 있는 html 파일 내에서 파이썬 문법을 사용할 수 있게 변환하고, 문서를 랜더링할 때 데이터를 내려주는 탬플릿 엔진이기 때문에 요구받은 웹사이트는 자동적으로 서버사이드 랜더링으로 구현해야 했다. 또한 JWT는 쿠키와 세션을 활용한 로그인 방법 다음으로 등장한 안전한 인증 방식이고, 현재 개발자로 취업하려면 이건 꼭 알아야 한다는 이야기들을 많이 들었기 때문이었다.
나는 이번 프로젝트에서 로그인 및 아이디/패스워드 찾기 화면과 기능을 구현했다. 즉, 서버사이드 랜더링을 약간만 찍어 먹어보고, JWT에 좀 더 집중한 학습 후 기능 구현에 들어갔는데, 여기서 아쉬움이 많이 발생했다.
프로젝트 : 아쉬움
첫번째로는 공부해야 하는 건 알았으나 서버사이드 랜더링의 구현에 대한 이해가 부족했다. 서버에서 html을 전부 그려 클라이언트에게 보낸다 정도의 개념을 미리 알고 있었고 추가적으로 조금 더 알아보긴 알았으나 이를 어떻게 구현하는지에 대한 경험치가 너무 낮았고 개념을 완전히 숙지하지 못해 이건 아닌 것 같은데 하는 느낌은 있었으나 무엇이 문제인지 정확히 파악하진 못하였다. 그래서 로그인한 정보를 넘길 때, 반은 SSR, 반은 CSR로 구현한 것 같다. 페이지를 먼저 랜더링하고(그리고), Ajax POST로 로컬스토리지의 JWT를 보내 인증하여 정보를 받은 뒤에야 나머지 html들을 그렸기 때문이다. (지금 쓰고 보니 서버사이드랜더링이 반도 아닌 것 같다.)
두번째 문제점으로는 쿠키와 세션에 대한 사전 지식 부족으로 첫번째 문제점을 스스로 만들고 말았다! 프로젝트의 시간적 여유나 학습 후 테스트 등을 할 시간이 없어 일단 JWT의 보관을 localStroage에 하였는데, 이렇게 하고보니 유저의 접근권한을 판별하기 위해서는 서버에서 토큰에 접근하려면 무조권 랜더링 한 다음에 post를 쏴주어야 했으니 서버사이드 랜더링을 하기에 어려움이 컸다. 다른 조의 정글러분이 쿠키는 request header에 들어가 있기에 서버에서 접근 가능하다 는 발표와 찾아가 추가적으로 설명을 듣고 보니 쿠키를 이용했더라면 순도 100%에 가까운 서버사이드 랜더링이 가능했을 거란 아쉬움, 쿠키와 세션에 대한 학습을 충분히 하고 그 특징들을 알고 진행했더라면 이런 일은 없었을 텐데 하는 아쉬움이 있었다.
UX적인 측면에 대한 고려가 좀 더 필요해보였다. 처음 기획설명을 통해 와이어프레임을 코치님들과 정글러들 앞에서 발표했을 때 부가 설명 없이도 쓸 수 있는 UX가 아니라는 피드백에 수정하였음에도 조금 더 나은 UI가 무엇일까 하는 생각이 든다.
발표에 대해서도 여러가지로 아쉬움이 많았다. 난 기획발표를 하였는데 기획발표시 자신감을 가질 수 있을 만큼의 리허설을 하지 못했고 대본도 미진하였으며 설명을 할 수 있을 만큼 사용한 기술에 대한 숙지가 부족했다. 한마디로 줄여서 문제투성이였다.
회고를 적다보니 생각난 것이지만, 이 서비스의 확장성에 대해 아쉬움이 생겼다. 변경 주기를 설정한다면 확장할 수 있을까 생각하였으나 이런 서비스는 Jira, notion 등의 협업툴이 워낙 월등한 기능을 제공한만큼 일반 사용자들에게 제공할만큼의 메리트를 느끼지 못할 것 같았다. 차후 다른 프로젝트를 진행하게 된다면 아무리 미니 프로젝트라 해도 정글러 뿐만이 아니라 일반 사용자들로의 확장에 대한 가능성도 함께 고려하여 주제를 정하는 것이 좋겠다.
우리 팀 및 다른 팀에 대해 여러 피드백을 많이 들었는데, 회고에 적은 아쉬움과 피드백 모두를 소화해서 다음 프로젝트 및 발표에서는 만족할 만큼 이루어 내고 싶다.
'개발일기 > Krafton Jungle 기록' 카테고리의 다른 글
비전공자가 왜 개발자가 되고 싶은가요? (0) | 2024.01.01 |
---|---|
Jungle Essay 01 (0) | 2023.10.13 |