프로젝트
-
테스트코드 작성하기Project 2021. 8. 8. 04:55
그동안 미루고 미뤄왔던; 테스트코드를 작성했다. 나에게 엄청난 장벽이 느껴졌던 테스트코드인데, 직접 작성해보니 또 그렇게 엄청난!! 어려움을 가진 무언가는 아닌듯도 하고..?(경거망동) 또, 테스트코드는 내 코드의 결함을 보여준다는 의미라고하는데 사실 아직 무슨 말인지 잘 와닿지 않았었는데, 아니 이걸 보면 내 코드의 결함이 보인다고?..하는 의구심을 품었지만 역시 백문의불여일타라고, 직접 해보니까 알겠다. 내 코드의 이상한 부분을;; 테스트코드를 짜다보면 안보려고해도 ... 보일 것 같다. ((그리고 고치지 못해 괴로운 나.. 보인다..보여..)) 오늘은 auth-middleware에 대해서만 테스트코드를 작성했지만, 앞으로 점점 테스트코드를 많이 써보려고한다. 이전에 했던 프로젝트에 테스트코드를 덧입..
-
[리팩토링] 유저 가입 코드 수정Project 2021. 7. 15. 23:34
오쿠 프로젝트의 코드를 리팩토링 중이다. 자바스크립트도 공부하고, CS공부도 하고있는데 배운걸 진짜 그냥 코드에 한번 발라보고싶었다.. 배운건 짧아도 다 써먹어보고싶은것이 자연의 이치이다. 분명 내가 짰는데 동작을 헷갈려서 엉뚱한 코드를 짰다. .... 내가 나 자신에게 당하다니.. 똑같이 userEmail, userNickname의 중복 여부를 체크하는 코드였지만, 하나는 클라이언트쪽에서 입력받자마자 확인할 수 있는 api였고 나머지 하나는 회원가입하면서 밸리데이션하는 코드였다. 그런데 이름을 둘 다 checkEmail,checkNickname으로 해놔서.. 한 번 엉뚱하게 코드를 작성해서 시간 버리기..! 취미이자 특기이다. userController.js파일이 너무 방대해졌다. 그래서 클라이언트쪽에..
-
채팅 생성하기Project 2021. 5. 27. 18:36
거래가 성사되면, 사이트 내에서 유저들간에 소통을 할 수 있도록 채팅방을 제공했다. 개개인마다 채팅방 목록이 다 다를것이기때문에 어떻게 응답을 해줘야할 지가 참 고민이었고, 또, 어디서 어떻게 데이터를 가져와서 내려줘야할 지도 고민이었는데, 이 때 디비 수정이 용이한 몽고디비를 쓰고있어서 다행히 해결할 수 있었다. 처음에는 거래 성사 이후 낙찰정보에 대한 DB를 따로 생성해야되는것인가? 라고 생각했는데, 그렇게하면 제품명, 판매자 등 이미 오쿠 제품 DB에 있는 정보를 중복으로 저장한다는점을 알게됐다. 그래서 제품DB에 낙찰자 정보를 추가하고, 제품 기준으로 제품명, 판매자, 낙찰자 등의 정보를 이용해서 채팅방을 생성하도록하였다. 정확하게는 채팅 목록을 json 형식으로 응답해주었다.
-
오쿠 기술 소개Project 2021. 5. 26. 12:33
악의적 사용자가 즉시낙찰 기능을 사용할 경우, 제품의 판매상태가 바뀜 -> 즉시낙찰의 경우, 최고가 낙찰의 기능으로 바꿨다. -> 즉시낙찰가에 입찰 한 유저가 있을 경우, 거래대기중 상태로 변경되고 -> 판매자가 거래하기 버튼을 눌러야만 판매상태로 변경되도록 수정했다. 사이트 내 알림 시스템이 있으나, 이용자가 자주 확인하지 않음 -> 문의댓글이나, 거래가 성사될 경우 이용자에게 메일을 보내서 사이트에 자주 들어올 수 있도록하자 입/낙찰 -> 언제 실행시켜야 할 지, 어디서 실행시켜야 할 지 고민 -> MVP단계에선, 글쓰기를 할 때 node-schedule을 이용해서 마감시간이 되면 낙찰 로직을 실행 -> 글쓰기 자체의 로딩시간이 길어지고, 서버가 꺼졌다 켜지면 예약되었던 기능이 사라지는 등 (모듈 자..
-
node-schedule, node-cron 이용하기Project 2021. 5. 19. 11:01
오쿠는 경매사이트다. 마감시간 이후 낙찰자를 지정해줘야하는데, 이 때 node-schedule 모듈을 이용했다. Note that Node Schedule is designed for in-process scheduling, i.e. scheduled jobs will only fire as long as your script is running, and the schedule will disappear when execution completes. If you need to schedule jobs that will persist even when your script isn't running, consider using actual cron. 공식문서에서도 볼 수 있듯이, node-schedule은 ..