본문 바로가기

전체 글

(18)
[WIL] 항해99 5주차 프로젝트 회고(10월 18일 ~ 23일) 이해했다면 기록하자. 익숙해지는 건 그다음이다. 1. 이슈가 발생했다면 [ 원인 분석 > 시도한 방법 > 해결방법 ] 세 단계로 정리해둔다. 2. 새로운 개념이나 툴을 이해했다면 다시 처음부터 기록한다. 나만의 치팅 시트를 만든다. 3. 대단한 것이 아니어도 괜찮다. 기록을 습관화하자. 프로젝트를 진행할 때마다 "이거 봤던 오류인데 어떻게 처리했더라?" 혹은 "어떻게 구현했더라?" 하며 분명 이전에 해결했던 문제를 다시 해결하는 수고를 겪으며 시간을 보내는 경우가 있었다. 다행히 꾸준히 기록을 해왔던 터라 그나마 빠르게 처리할 수는 있었지만 내용이 상세하게 정리되어있지 않다 보니 다시 기록을 읽으며 이해하는데 시간이 걸렸다. 기록을 하는 것도 좋지만 내가 이슈가 발생한 맥락을 완전히 잊고 다시 봐도 이해..
[WIL] 항해99 4주차 팀 프로젝트 회고(10월 11일 ~ 15일) 이번 주차에는.. 이번 4주차에는 프론트앤드와 백앤드 개발자가 팀을 이뤄 웹서비스를 개발하고 배포하는 프로젝트를 진행했다. 처음으로 프론트와 백을 나눠서 프로젝트를 진행하였는데 서로 알고 있는 내용이 다르다보니 소통하는 것이 만만치 않았고 진행하면서 계속 논의하며 방향을 잡아나갔다. 협업에 있어서 아쉬웠던 점.. 와이어프레임을 그리고 API와 DB구조를 잡을 때는 프론트앤드 개발자분들과 충분히 싱크를 맞췄다고 생각했는데, 유효성체크 또는 데이터를 헤더로 받을지 바디로 받을지 등 세부적인 사항들을 공유하지 않아서 작업이 중복되거나 의도와 다르게 구현된 경우들이 발생했다. 시작 전에 모든 경우들을 고려할 수는 없지만 진행하는 과정에서 프론트와 백이 각각 작업을 진행하고 서로가 어떤 개발을 진행하고있고 어떤 ..
JOI 를 활용한 유효성 체크 기록 (middleware로 확장성있게 활용하자) 목표 회원가입 시 아이디, 패스워드, 닉네임 등을 입력할 때 입력된 값을 유효성을 체크하는 기능을 구현 이전에는.. 아래와 같이 각각 체크해야 하는 요소마다 함수를 구현해서 체크했었다. 이렇게 구현하면 router 내 체크해야 할 요소가 많아질수록 코드가 복잡해진다. //router_register_sample.js 이전에는 이렇게 구현했었다. const valCheckId = function (target_nickname) { const regex_nick = /([a-z]|[A-Z]|[0-9]){3,}/g; const nicknameCheckResult = target_nickname.match(regex_nick); return nicknameCheckResult == target_nickname;..