입소와 동시에 구성해주신 3명의 팀원과 함께 3박 4일간의 웹 사이트를 만들어오라는 미니 프로젝트 요구사항을 받게 되었다.
어떤 웹사이트를 만들지에 대한 기획 자체는 굉장히 빠르게 진행되었던것 같다. 우리 팀원은 모두 어느정도 개발 경험이 있는 상태였기 때문에, 요구사항 정리와 프로토타입을 그린 뒤 바로 개발에 착수하였다.
역할분담은 프론트1, 백엔드2로 구성하였고 백엔드는 로그인/회원가입과 그 외 기능을 구현하는것으로 나누었다.
팀원분께서 JWT를 이용한 로그인/회원가입 기능을 맡아주기로 하셨고, 해당 부분을 구현하며 생기는 문제를 함께 공유하기로 하였다.
처음에는 프론트와 백엔드를 나누어 개발에 들어갔지만, 마감시간이 다가오면서는 이러한 구분이 점점 사라졌던것 같다.
사실 우리팀은 두번째 날에 모든 기능을 구현할 수 있을 것으로 생각하였다. 그러나 항상 REST API를 이용해 요청과 응답을 주고 받았었기 때문에, SSR 방식으로 구현해본 경험이 많지 않았고 jinja2 template라는 처음 사용해보는 템플릿을 적용하려 하다보니 생각보다 시간이 더 소요되었던 것 같다.
SSR 방식으로 프로젝트를 구현하면서 느꼈던 점은 CSR과 SSR에 대한 이해가 충분하지 않았다는 것이다. 프로젝트가 끝난 지금 되돌아보니, 낯선 방식이라고 하더라도 SSR과 CSR에 대한 이해가 충분했고 jinja2 template가 해주는 역할을 잘 이해하고 있었다면 충분히 빠르게 구현할 수 있는 기능들이었던것 같다.
이 프로젝트를 진행하면서 가장 기억에 남는 개념은 CSR과 SSR이 아닐까싶다.
1주차 알고리즘은 파이썬 입문용 기초 문제를 포함하여 총 39문제로 구성되었다. 브루트포스, 정렬, 재귀함수 등등 다양한 문제 유형들이 있지만, 가장 어려우면서도 중요한 부분은 재귀함수가 아닐까 싶다.
재귀함수의 경우에는 이전에 한번 몰라서 답지를 보고 다시 풀어서 제출한 경험이 있음에도, 다시 마주하니 그 풀이가 기억이 나지 않아 문제를 푸는데 어려움이 있었다.
그래서 조금이라도 다른 사람의 코드를 내 것으로 만들어보고자 답지로 사용한 다른 사람의 코드를 직접 손으로 재귀를 따라 들어가보는 방식으로 공부를 하고 있다.
재귀를 공부하면서 중요하다고 느낀것은 단순하게 코드를 타고 들어가서 재귀함수의 끝까지 도달하는지 확인하는 것 보다는 일정하게 반복되는 규칙을 찾아내고, 해당 규칙을 재귀함수로 도출하는 것과 재귀 종료가 가능한 조건을 빠르게 찾아내는 것이 중요한 것 같다.
어려운 알고리즘 문제를 이겨내는 방법은 반복 숙달뿐인 것 같다..