본문 바로가기

생존신고 하기/위코드 프리온보딩

위코드 프리온보딩 백엔드 과정 - 회고 3주차 1회 (휴먼스케이프)

개발 요구사항

다음 사항들을 충족하는 서비스를 구현해주세요.

  • 배포하여 웹에서 사용 할 수 있도록 제공
  • 임상정보 검색 API 제공
  • 임상정보를 수집하는 batch task
  • 수집한 임상정보에 대한 API
  • 수집한 임상정보 리스트 API
    • 최근 일주일내에 업데이트(변경사항이 있는) 된 임상정보 리스트
      • pagination 기능
  • Test 구현시 가산점

개발과정

- 이번 과제도 저번과 비슷하게 api는 간단하고 OpenApi에서 데이터를 가져오는 BatchTask가 중심인듯 보였다.

해당 BatchTask 부분을 내가 담당했는데 언제나처럼 백엔드 모듈의 강력함에 감탄하는 하루였다. 1시간만에 완성하고 Documentation을 하고있을줄이야...

 

- 사소하지만 데이터를 업데이트 하는 부분에 약간의 변수를 줬는데, hash값을 같이 저장해서 hash가 다르면 업데이트를 하도록 구현했다. 본래는 upsert를 사용하려했지만 이는 내용이 같아도 무조건 업데이트를 하고, sequelize의 updatedAt을 변경하기 때문에 이 방식을 택했다. Attribute 전체를 비교하는것 보다는 빠르리라 예상한다.

 

- 테스트코드는 jest를 이용해 만들었는데, 이번이 jest를 쓴지 2번째지만 확실히 mock함수 및 module 전체를 모킹하는 기능덕에 테스트코드간의 의존성을 없앨 수 있었다. spyOn 기능도 유용해보이는데 다음에 활용해 볼 수 있기를...