-
[리팩토링] 유저 가입 코드 수정Project 2021. 7. 15. 23:34
오쿠 프로젝트의 코드를 리팩토링 중이다.
자바스크립트도 공부하고, CS공부도 하고있는데
배운걸 진짜 그냥 코드에 한번 발라보고싶었다.. 배운건 짧아도 다 써먹어보고싶은것이 자연의 이치이다.
분명 내가 짰는데 동작을 헷갈려서 엉뚱한 코드를 짰다. .... 내가 나 자신에게 당하다니..
똑같이 userEmail, userNickname의 중복 여부를 체크하는 코드였지만, 하나는 클라이언트쪽에서 입력받자마자 확인할 수 있는 api였고 나머지 하나는 회원가입하면서 밸리데이션하는 코드였다. 그런데 이름을 둘 다 checkEmail,checkNickname으로 해놔서.. 한 번 엉뚱하게 코드를 작성해서 시간 버리기..! 취미이자 특기이다.
userController.js파일이 너무 방대해졌다. 그래서 클라이언트쪽에서 밸리데이션하는 코드를 분리시켰다.
이외에도 코드를 좀 더 깔끔하게 보여줄 순 없을까? 하는 고민 끝에, 마침 최근 공부하고 있는 부분에서 throw를 활용한 코드를 참고해서 좀 더 깔끔하게 보이도록 수정했다.
깔끔하게 수 많은 전역변수들을 정리하기로했다. 전역변수는 자제하는것이...그것이 '약속'이니까... 사실 여기저기서 사용하는 것 같은 변수는 (ex:DB) 남겨뒀는데, 전역변수에 대해 좀 더 찾아보니 이것마저도 지우고 지역변수로 변경하는게 나을 것 같다.
더보기전역변수를 남발하면, 프로그래머의 의도와 달리 전역변수에 의해 변수가 변경될 수도 있다. 반대로 지역변수로만 사용한다면 해당 변수는 함수 스코프로 변해서 함수의 사용이 종료되면 깔끔하게 실행컨텍스트에서도 사라지고, 따라서 의도에 벗어나지 않는 프로그래밍을 할 수 있다.
마지막으로, passport쪽 콜백 코드도 모듈화하였다.
뭔가 잘 가꾸어 나가는 느낌이라 기분이 좋다.. 잘 가꾸려면 열심히 공부해야지..
'Project' 카테고리의 다른 글
[리팩토링] socket.js 코드 분리하기 (0) 2021.08.05 [리팩토링] 챗봇 추가하기 (4) 2021.07.25 [OKU] 유효성 검사는 어디에서 발생하는가? (0) 2021.07.02 채팅 생성하기 (0) 2021.05.27 오쿠 기술 소개 (0) 2021.05.26