프로젝트/Kidsping

Overviewpublic void updateMbtiScore(BookMBTI bookMBTI, LikeMbti like) { int multiplier = (like.getLikeStatus() == LikeStatus.DISLIKE) ? 2 : 1; this.eScore += multiplier * bookMBTI.getEScore(); this.iScore += multiplier * bookMBTI.getIScore(); this.sScore += multiplier * bookMBTI.getSScore(); this.nScore += multiplier * bookMBTI.getNScore(); this.tScore += multiplier * bookMBTI...
Overview키즈핑 프로젝트를 진행하면서 제가 맡았던 부분중에 하나는 자녀 성향 진단이였습니다.이번 글에서는 자녀 성향 진단 로직을 구현하면서 겪었던 고민과, 이를 해결하기 위해 시도한 리팩터링 과정에 대해 이야기해보려 합니다.로직 설계자녀 성향 진단프론트가 보낸 자녀의 id 값으로 자녀를 조회한다.프론트로부터 받은 점수를 유저의 MBTI 설문 조사에 저장한다.받은 점수를 통해 자녀의 MBTI(성향)를 계산하고 정한다.자녀 성향에 MBTI 점수와 정해진 성향을 저장한다.자녀 성향 히스토리에도 저장한다.우선 위와 같이 자녀 성향 진단 로직을 정리 했습니다.간단하게 정리하면 우선 서버에서 프론트로 자녀 성향을 진단하는 질문 목록을 보냅니다.자녀는 본인에게 맞는 성향을 체크하면 프론트에서 한번에 자녀의 ..
Overview키즈핑 프로젝트를 진행하면서 REST API를 테스트하다가 이상한 이슈에 직면했습니다.컨트롤러 단에서 @RequestBody를 사용해 클라이언트의 요청 값을 받기 위한 DTO 클래스를 만들었습니다. 포스트맨으로 테스트를 해서 제가 만든 API로 요청을 보냈는데 DTO 클래스의 필드에 값이 안 들어오는 겁니다. 아래는 제가 만든 컨트롤러와 DTO 클래스입니다.컨트롤러@RestController@RequiredArgsConstructor@RequestMapping("/api/kid")public class KidController { ... @PostMapping("/mbti") public void diagnoseKidMBTI(@RequestBody KidMBTIDReque..