프로젝트가 종료되었기 때문에 프로젝트 개발일지를 공식 종료일까지 유지해야 하는지는 모르겠지만 중간에 리팩토링을 할 수 있기 때문에 일단은 개발일지를 유지해본다.

오늘은 카카오 2차 시험을 보는 날이었는데
api를 다루는 것은 알았지만 api를 호출하고 axios같은 비동기 과정을 동기적으로 처리하는 법은 전혀 몰랐고 js를 사용하기보다는 react로만 axios를 다뤘기 때문에 문제 자체가 당황스러웠다.

어제 시도한 재작년 트럭 과제에서는 결국 api와 토큰만 받고 멍 때리다가 시간이 전부 가버렸었는데 오늘은 다행히 api를 받아 과제를 진행 하기는 할 수 있었다.

api를 제대로 받아서 한바퀴 사이클을 돌려보기만 하는 것만 2시간 30분 가량 걸렸는데 제일 큰 문제는 "X-Auth-Token"을 헤더에 넣어줘야 하는데 멍청한 자동완성을 사용해서 x_auth_token을 키로 넣고 처리를 해서 진행이 되지 않는 것을 알 수 없었다.

아무리 찾아봐도 토큰값이 문제가 있는 것이 아니라면 일단 시작 부분의 Authorization token을 받는 곳 까지는 무리없이 진행되어야 하는데  자꾸만 "적절한 X-Auth-Token이 아닙니다."라는 오류메세지만 보였다.

여러 검색어로 검색도 해보고 params 변경도 해보고 진짜 이상한 짓을 1시간 넘게 하다가
공식적으로 토큰이 잘못된 것 같다는 질문도 해봤다.
당연히 카카오에서 그런 실수를 할리가 없었기 때문에 제대로 된 토큰이었고
공식적으로 답변을 해줄 수 없다는 답변만 받았다.

오류가 있다면 당연히 오류가 있다고 답변해줄 것이라고 믿었기 때문에
내가 뭔가 실수했다는 확신을 다시 얻고 맨 위에서부터 천천히 api를 잘 읽어보니
x_auth_token이 아니라 X-Auth-Token을 넣어야 했다.
???? 왜 이거 뭐 다른거지? 하고 넣는 순간 제대로 된 Authorization token을 받을 수 있었다.

그 뒤로는 뭔가 막힌게 뚫린 것 처럼 나머지 요청들도 잘 해결되었고 
2시간 30분만에 요청 한바퀴를 다 돌리고 감격의 0점을 받을 수 있었다.

다시 순서에 맞춰서 구현을 하기 시작했다.
수도코드만 4~5번 작성해가며 체크리스트를 지워서 완료를 하고나니
131.57점을 받을 수 있었다.
일단 들어갈 수 있는 애들은 전부 수락하고 넣었다고 생각했는데
뭔가 조각모음마냥 이쁘게 정리해서 넣어줘야 하는건지 감점이 458점으로 생각보다 많았다.
물론 그 전에 처리 없이 순환시킬 땐 마이너스 9천점이 넘었기 때문에(Max처리라 어차피 0점) 총점 131점만 해도 괜찮은 점수같이 느껴지긴 했다.

여기서 최적화를 해야 할 것 같은데 돌아가는 시간이 너무 오래 걸려서 최적화를 하고 테스트를 하기 전에 끝날 가능성이 높아보였다.
혹시 모를 시나리오2에서의 득점(1점이라도...)을 위해 시나리오 2를 돌려보는데
실수로 시나리오1의 api를 받아와서 다시 감점 1900점을 받았다.
800일치 거절을 다 해버렸다는 의미인데 신기하게도 감점이 1900점밖에 되지 않는다.

어찌됐건 다시 수정하고 제출하니 정말로 안타까운 결과가 나왔는데 
500점+정확+효율 - 패널티로 처리가 되는 점수인데 590 - 607.7점이 나왔다...
정말 한끗차이로 득점이 없는 0점처리가 되어버렸다.

제대로 되지 않은 코드는 감점이 수천점이 훅 넘어가버리기 때문에 뭔가 동작은 크게 나쁘지 않은 것 같은데 여기서 몇점이라도 건졌으면 헀지만 0점이라 마음이 아프다.

종료 30분 전 시점에서 이제 점수는 공개되지 않고
100위의 점수가 900.6점으로 137점은 비교도 할 수 없는 차이를 보였다.

효율성 및 검색최적화 등 보다는 문제풀이에 급급헀기 때문에
이렇게 백엔드스러운 최적화 문제에는 조금 약한 것 같다.

초반에는 너무 요청을 많이 해서 초당 10회가 확 넘어가서 불안헀다면
종료 50분 전쯤 되니 3배 이상 느려져서 처리 되는 과정이 눈으로 보였고
종료 30분전이 되니 거의 초당 3회(1사이클)밖에 가지 않았다.
1day가 3회정도 처리가 필요했기 때문에 최적화를 제대로 도전하는 사람이라면 시나리오 2 도전도 못해보고 종료될 수 있는 그런 느낌이었다.(시나리오2 필요 요청 횟수 1000번 16분40초...)

욕심에 시나리오2를 다시 돌리며 내용을 정리하고 있었지만 아까와 같은 -17.7점(0)으로 처리되었고 효율적으로 처리가 안된 부분을 고쳤어야 했다는 생각이 들었지만 이미 제출시간이라 제출해버렸다..

처음 목표했던 것 처럼 문제 해결은 됬는데 점수가 상당히 낮은 편이라 아쉽다.
아무래도 복잡한 구현을 하다보니 어디 숫자 비교가 < 나 <= 정도의 하나 차이가 있어서 에러난 점수같은 느낌이다..





CT(1).백준 14782 Bedtime Reading, I은 모든 약수의 합을 구하는 문제였다.
간단하게 for문으로 전체 약수체크를 한 다음 sum에 더해줬다.

let input = 1000000
let sum = 0

for(let i = 1 ; i <= input ; i++){
    if(input%i === 0){
        sum += i
    }
}
console.log(sum)

 

'회고' 카테고리의 다른 글

[Main-Project 개발일지]-33(한글날 대체휴일)  (0) 2022.10.10
[Main-Project 개발일지]-32(주말)  (2) 2022.10.09
[Main-Project 개발일지]-30  (2) 2022.10.07
[Main-Project 개발일지]-29  (0) 2022.10.06
[Main-Project 개발일지]-28  (0) 2022.10.05

+ Recent posts