부트캠프 일지

부트캠프 14일차 후기

여름하인 2023. 12. 14. 21:00

오늘로 14일차를 맞이한 부트캠프.

 

하지만, 팀원과의 개발의 경험의 차이로 인해 팀원이 공부하고 코드를 짜는 시간에 비해 내가 소비하는 시간에 간격이 생겨버려서 계속 시간이 남는다. 이 짜투리 시간을 허송세월 보낼수도 없고, 공부를 해야하는데 무엇을 해야할지가 막막하고, 개인 프로젝트라도 진행을 해보려면 아이디어가 부족해 어떻게 해볼수 없는 상태가 되어버렸다. 일단 다음 주부터 조 편성도 바뀌기에 다음 주에 동향을 살펴보고, 그때에도 시간이 남을 것 같으면, 튜터님께 상담을 해서 공부할 것을 묻거나, 아이디어를 얻어보기라도 해보자.

 

오늘 CodeKata를 5문제 풀었고, 특별히 배운 메소드는 없지만, 약수의 갯수를 비교적 빠르고 간단하게 구하는 법을 알게 되었다. 나는 약수의 갯수를 계산하는 법을 2가지를 알고 있다. 들어가기 앞서 약수의 갯수를 구하려고 하는 숫자를 N이라 가정한다는 사실을 알린다. 첫번째는 Bruteforce하게 1 부터 N까지 나머지 연산을 해서 0이 되는 값을 카운트하는 것이고, 두 번째는 에라토스테네스의 체를 활용해서 소인수분해를 하고, 각 지수의 값을 1 씩 더하고 서로 곱한다.

 

첫 번째 방법은 O(N) 정도의 시간이 걸리는 데, 내가 풀려고 했던 문제를 해결하기엔 시간이 오래걸린다. 두번째 방법은 첫 번째 방법보다 비교적 시간이 빠르지만 메모리를 잡아먹고, 이 레벨의 문제를 풀기엔 너무 윗 단계 난이도의 알고리즘이 아닌가 하는 의심이 들어서. 구글링을 통해 약수의 갯수를 쉽게 구하는 다른 알고리즘이 있는가 찾아보았다. 답은 간단했는데, sqrt(N)까지만 나머지 비교 연산을 해서 0이면 2씩 더하는 것이다. 단, 제곱이 N인 값은 1을 더한다. 이 방식은 O(sqrt(N))밖에 안될 정도로 빠르고 메모리도 많이 잡아먹지 않고 구현도 쉬워서 기억을 해둬서 사용할 일이 있으면 사용해봐야겠다.

 

프로젝트를 LV5 수준으로 완성을 하였는데, 5초씩마다 문장이 추가되니 프로그램이 산만해졌다. 특히 내가 입력하는 와중에 계속 입력값 옆에 문장이 출력되니 입력값도 헷갈리게 된다. 요구사항에 5초마다 문장을 출력하라고 하니 이걸 어찌할 방도가 없어보인다. 또다른 요구사항인 행동을 할때마다 3초마다 딜레이를 걸라는 요구사항에도 애로사항이 있는데, 3초동안 입력을 할 수 있다는 점이 걸린다. 이러면 프로그램이 지연되는 3초 동안 입력한 값이, 다음에 입력해야되는 값에 들어가버려서 프로그램이 사용자가 의도하지 않은 방향으로 흘러갈 가능성도 있고, 안그래도 산만한 프로그램이 더 산만해버려서 사용하기 불편해진다. 이것을 해결할 방법은 아직 발견하지 못해서 더 답답하다. 영어로 여러 키워드를 활용해 검색해봤지만 이렇다할 답을 찾지 못했다. 내일 한 번 튜터님께 질문을 해보든가 해보자.

 

그리고 키오스크 과제에 대해 최종적으로 팀원과 상담하고 제출하자. 사실 문제가 해결되든 아니든 프로그램은 정상적으로 작동은 되니까, 이대로 과제를 제출해도 큰 문제는 없어보이긴 하지만 혹시나 프로그램에 관해서 팀원이 모르는 것이 있을 수도 있고, 내가 놓친 요구사항이 있을 수도 있으니 팀원과 대화를 해보자.