처음부터 차근차근

[TIL - 231204] 기업 면접 진행, 기업 과제 Refactoring 진행 본문

TIL

[TIL - 231204] 기업 면접 진행, 기업 과제 Refactoring 진행

HangJu_95 2023. 12. 4. 23:58
728x90

오늘 한 일

  • 회사 기술면접 진행
  • Survey-test Refactoring

기업 면접 진행

  • 기술 면접을 진행하였다.
  • NestJS에 대한 질문뿐만 아니라 DB설계와 API 설계 시 확장성에 대한 질문을 많이 받았다.
  • 또한 현재 내가 설계한 비즈니스 로직에 대해 어떤 문제점이 있는지도 한번 고민하게 되었다.

내가 설계한 DB에 대해서 확장성, 기능적인 문제에 대해 고려하여 설계하였는가??

  • Entity 설계 시 TypeORM의 강점 중 하나인 Array 타입을 적용
  • 그러나 확장성, 기능적인 문제에 대한 고려 부분에서는 미숙한 점이 있었다.

1. 설문지 답안이 제출된 상태에서 어떠한 설문지 문항의 점수가 수정되었을 경우, 제출된 답안의 점수는 어떻게 수정할 수 있을까?

2. 현재 도메인은 Survey 하나인데, 왜 Module은 두개인가요??

3. Survey가 없는 상태에서도 Question이 생성이 되나요??

4. 그렇다면 왜 CASCADE를 Question에 설정해 뒀나요??

5. 비즈니스 로직 수정이나, API 수정 없이 DB만 수정해서 이 문제를 해결할 수 있을까요??

 

다양한 질문을 받으면서 느낀 점은

어떠한 기능, 비즈니스 로직, DB를 설계하는 경우, 확장성과 기능적인 문제에 대해서 다양하게 고민해야 하고, 고민 끝에 최적의 결론을 도출하여 진행해야 한다.

 

였으며, 이번 과제에서는 그 부분이 미흡하였다.

Survey-test Refactoring

  • 기업 과제에 대해 리펙토링을 진행하였다.
  • Logger에 대한 기능 공부를 많이 하여 추가적으로 Refactoring이 수월하였다.
  • 그러나 현재 내가 설계한 비즈니스 로직에 대한 Refactoring 능력이 떨어진다.

기업 과제를 제출하면서 Refactoring을 해야하는 부분을 생각했다.

1. Logger 기능 Refactoring 진행 (완료)

2. 현재 설문지 답안은 단답형 답안만 제출할 수 있는데, 복수형 답안도 제출할 수 있도록 Refactoring 진행

3. 설문지 답안이 제출된 상태에서 어떠한 설문지 문항의 점수가 수정되었을 경우, 제출된 답안의 점수는 어떻게 수정할 수 있을까??

 

이런 부분들을 고려하면서 DB 설계나 혹은 API 비즈니스 로직을 수정해야 된다고 판단하였다.

또한 추가적인 문제점이 있을 수 있으며, 현재 GraphQL을 적극적으로 사용하고 있지 못한 점도 문제에 해당한다.