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..

가상 메모리 컨트롤이 가지는 의미(이거 왜 하는가) Hepap 생성 왜 하는가 MMF가 제공해 주는 장점이 뭔가를 아는 게 가장 중요하다. 언제 활용하고 어떤 의미인지를 파악하는 게 중요하다.가상 메모리 컨트롤CPU나 개발자나 메모리를 바라보는 관점은 동일하다.둘 다 32bit 시스템에서는 메모리가 4GB 공간이 할당된다고 바라본다.실제 물리적 메모리는 별도로 존재하고 가상 메모리가 물리 메모리에 매핑되는 구조를 가지고 있다.이번 시간에 얘기할 부분은 가상 메모리인데 이 가상 메모리를 컨트롤한다는 게 어떤 의미를 지니는지 이해하는 게 중요하다.가상 메모리의 Commit, Free와 물리 메모리의 관계가상 메모리는 페이지 단위로 나눠진다.4GB의 가상 메모리 공간이 있다고 하면 4GB / 페이지 크기를 하..

비동기 I/O와 APC비동기 I/OI/O와 시스템 클럭의 관계CPU 클럭이 높아지면 높은 퍼포먼스를 보여준다.여기서 얘기하는 시스템 클럭은 CPU 클럭과 I/O 클럭을 포함한다.시스템 클럭이 I/O와 어떤 관계를 가지는지 알아보자.두 개의 시스템이 존재한다. 시스템은 데이터를 가공해서 목적지로 보내야 한다.A 시스템은 클럭이 100이고 B 시스템은 클럭이 200이다.보통 클럭이 높으면 I/O가 빠르다고 생각하지만 반드시 그렇지는 않다.보편적으로 시스템 클럭이 높으면 I/O도 빠르지만 그러지 않은 경우도 있다는 소리다.보통 I/O를 한다면 그 대상이 파일이건 네트워크이건 반드시 버퍼링을 한다.버퍼링을 한다는 것은 버퍼가 있다는 소리다. 버퍼를 둔 이유는 데이터를 한 번에 모아서 보내면 훨씬 더 빠른 시간에..