파일 자동화 코드를 작성하던 중

Input, Ouput에 대해서 살짝 혼란스러워졌다.

 

Request가 Output, Response가 Input이라고 생각하고 작성했다가

내가 데이터를 받는 입장이 되니 Input이 상대방의 request였고

request라고 담긴 wrapper로 넘어오기 때문에

나도 기준에 맞춰서 request라고 작성해야 했고

결국 작성된 Wrapper들을 거꾸로 뒤집을 수밖에 없었다.

 

요청 셀프 테스트는 잘 진행되었지만

통합된 부분은 실제로 주고 받아야 진행이 가능해서 테스트가 불가능했는데

이걸 임의로 하려면 주고 받는 가상 서버(?)를 만들어야 해서 상당히 부담스러웠다.

 

결국 기존 테스트를 처음부터 한번씩 작동하기로 했는데

어차피 전체 기능이 돌아가야 하기 때문에 큰 부담 없이 데이터 삭제 후 다시 시도했다.

 

하지만 첫번째, 두번째 모두 정상적으로 작동하지 않았는데

추측되는건 저기에서도 테스트를 한다고 데이터를 오염시켰던 것 같고

중간 부분에서도 코드가 수정된건지 뭔가 상당히 이상했다.

 

일단 확실한건 하나의 요청에 같은 데이터가 두세개씩도 중복해서 넘어온다는 것이고

처음에 생성되었던 개수보다 확연히 적은 결과값이 넘어온다는 부분을 볼 수 있었다.

없는 부분은 삭제되었다면 당연히 이해되는 부분이지만

같은 데이터가 몇개씩 넘어오는 것은 상당히 황당했는데

같은 파일명을 물리적으로 여러개 보유할 수 있는지도 의문이었다.

 

그 외에 파일은 정상적으로 들어갔는지 확인했지만

중복을 제외하고서도 필요한 파일이 부족하게 중개서버에 들어있는 것을 확인했고

이런저런 문제가 상당히 많았다.

 

그 외에 추가적인 테스트를 진행했는데

생성요청에서 제대로 생성하지 않고 첫번째 시도에만 성공했는데

알고보니 파일생성을 한번 시도하면 무조건 폴더를 지워버렸다.

 

상당히 특이한 방법 같지만 삭제 방식으로만 가능하다고 하니

다시 또 새로운 방식으로 자동화를 진행해야 하는데

엔드포인트 전달 후에 재설계 이후 세번째 재설계였다.

 

이번에는 폴더단위로 요청을 보내야 해서 더 혼란스러웠는데

이걸 구분할 방법을 찾다가 팀장님이 Group by를 폴더명으로 기준을 잡으라고 알려주셨고

배치를 돌릴 때 하나의 그룹을 기준으로 돌아가며

내부에서 그 그룹들을 다시 호출해서 작동하는 방법으로 진행했다.

 

중간에는 마이그레이션 관련 회의도 진행했는데

이것도 추가 업무가 생겨서 쉽지 않을 것 같았다.

 

개발서버에서는 편하게 수정하며 진행할 수 있지만

운영서버에서는 코드을 하려면 다시 짜서 보내야 하기 때문에

일단 자동화부터 처리하기로 했다.

 

테스트를 진행하는데 오히려 다른 부분에서 에러가 발생하면서

내가 진행하는 것은 중단되고 해당 테스트를 위해 요청을 보내주다가

결국 저쪽에서 테스트를 진행할 수 있게 설정해서 보내줬다.

 

마이그레이션 시도는 진행했지만

404 에러가 또 출력되는 것을 보고 중단하고 회식에 참여했다.

 

너무 바빠서 코드적인 이야기보다는 간신히 업무의 흐름만 언급되는 것 같은데

이제 업무가 조금 밀리더라도 일단 정리는 하면서 진행해야겠다.

 

같은 에러가 발생했을 때 

분명 작성했을 것이라고 생각하고 검색했지만 나오지 않았을 떄의 허탈함도 있고

실제로 다시 찾는 시간보다 정리하는 것이 업무 효율성도 증가하기 때문에

회사 업무능률로만 봐도 정리하는 것이 좋을 것 같다.

 

 

(1).백준 24783번 Number Fun은 주어진 두 숫자를 사칙연산을 통해서 세번째 숫자를 만들 수 있는지를 묻는 문제로

간단하게 덧셈, 곱셈, 뺄셈, 역순뺄셈, 나눗셈, 역순나눗셈을 모두 진행하며 세번째 숫자와 비교한 다음

조건에 하나라도 걸릴 경우 Possible을 출력하고 불가능하면 Impossible을 출력했다.

const input = `6
1 2 3
2 24 12
5 3 1
9 16 7
7 2 14
12 4 2`.split('\n')

const result = []

for(let i = 1 ; i < input.length ; i++){
    const [a, b, c] = input[i].split(' ').map(Number)
    if(a-b == c || b-a == c || a/b == c || b/a == c || a*b == c || a+b == c){
        result.push('Possible')
    }
    else{
        result.push('Impossible')
    }
}

console.log(result.join('\n'))

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

[개발일지] - 132  (0) 2023.11.09
[개발일지] - 131  (0) 2023.11.08
[개발일지] - 129  (0) 2023.11.06
[개발일지] - 128(주말)  (0) 2023.11.05
[개발일지] - 127(주말)  (0) 2023.11.04

+ Recent posts