getaddrinfo ENOTFOUND - 주소 참조 불가
lemmatization - 표제어추출
마이그레이션 필드 변환을 나도 모르게 먼저 하고 있다가
어제 에러 관련 문의가 들어온게 생각나서 다시 업데이트 에러 내용을 확인했다.
에러는 확인해보면 새로 추가되고 있는 트리거에서 계속 발생하고 있었고
결국 트리거를 중단하고 인터페이스를 진행하니 정상 작동하는 것이 확인됐다.
마이그레이션 부분에서 자꾸 insert를 하는데
있는 내용을 또 insert 해서 발생하는 문제 같다고 전달드렸고
soap 방식 인터페이스로 추정되는 내용을 쏴도 발송되지 않는다는 질문이 있어서
전달받은 문서를 봤지만 뭔가 많이 이상했다.
xml 전송의 경우 header에 두개의 값과 body에 블록 값을 넣었는데
방식이 맞는지는 둘째치고 서버쪽에서 timeout만 발생해서 일단 넘어가기로 했다.
Content-Type - text/xml; charset=utf-8
SOAPAction - "http://tempuri.org/xxxxxxxxxx"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<xxxxxxxxxx xmlns="http://tempuri.org/">
<UserId>xxxxx</UserId>
<FormId>yyyy</FormId>
<LegacyId>zzzzz</LegacyId>
<ReqXml>
<![CDATA[
<Root>
<DOCINFO>
<DOCTITLE>테스트</DOCTITLE>
<TITLE>인터페이스 테스트</TITLE>
<CONTENTSTYPE>HTML</CONTENTSTYPE>
<CONTENTS>
</CONTENTS>
<APPTYPE>OPEN</APPTYPE>
</DOCINFO>
<MEMBERS>
</MEMBERS>
</Root>
]]>
</ReqXml>
</CreateProcessWS>
</soap:Body>
</soap:Envelope>
일단 전달은 둘째치고 바로 에러가 발생했고
일차적으로 방화벽 문제를 의심해서 해당 회사 vpn을 실행시켰는데
그 이후에는 어떤 값을 발송하거나 post, get으로 변경해도 그냥 timeout만 발생했다.
터미널로 해당 주소에 핑도 발송했지만 4건 모두 timeout이 반환되었고
이건 저쪽에서 뭐가 문제가 있다는 결론을 내려버렸다.
마이그레이션을 하려고 하는데 불일치 내역이 많았는데
개발쪽 담당하시는분이 보시다가 해외 거래소 내역이라 제외요청을 하셨고
일단 얼추 매칭이 됐기 떄문에 마스터에 추가해야할 필드들을 생성해준 다음
마스터 데이터 마이그레이션을 마칠 수 있었다.
하위 내용 마이그레이션에서 또 문제가 발생했는데
수천건이 넘는 내용의 키값을 엑셀파일 기준으로 매칭하는 것도 문제였고
매칭 이후에도 값이 없는 문제가 있었다.
일단 매칭의 경우 엑셀에 넘긴 값을 apex에서 처리하지 못했는데
원인을 파악해보니 중복값들이 들어있었고
해당 값을 따로 처리하기 애매해서 js로 넘겨서 중복제거한 값을 사용했다.
그 이후에 나온 결과도 빈 내용들이 있어서 당황했는데
오래 유지된 시스템이라 키 형식이 멋대로인 부분이 있어서
그 부분들을 수정하고 나서 정상적으로 매칭을 마무리할 수 있었다.
이번 주 내로 마이그레이션 요청을 받았는데
일단 묵직한 자산쪽이 등록만 하면 거의 되는 상태까지 왔기 때문에
뭔가 업무가 자꾸 추가되지 않는 이상 내일 마이그레이션을 끝내둬야겠다.
(1).백준 5939번 Race Results는 빨리 들어온 순으로 출력해야 하는 문제였다.
일단 각자 배열로 처리해서 값과 시간을 담아서 시간 기준 정렬 후 출력해줬는데
이런 문제를 풀면서 각자 실전에 쓸일이 거의 없다고 생각했지만
오늘도 마이그레이션 중 apex에서는 처리되지 않는 몇천개의 데이터 키값 연결(엑셀 데이터 기준)이나
중복값 제거 및 중복값들 각각의 개수 확인 등 대규모 처리에도 사용되는 것을 보면서
타 언어로 개발하더라도 js를 손에 놓지 않으면 여러모로 쓸모가 있다는 생각이 들었다.
const input = `3
11 20 20
11 15 12
14 20 14`.split('\n')
const result = []
for(let i = 1 ; i < input.length ; i++){
const [h, m , s] = input[i].split(' ').map(Number)
result.push([input[i], h * 3600 + m * 60 + s])
}
console.log(result.sort((a,b) => a[1] - b[1]).map(el => el[0]).join('\n'))
'회고' 카테고리의 다른 글
[개발일지] - 591 (0) | 2025.02.13 |
---|---|
[개발일지] - 590 (0) | 2025.02.12 |
[개발일지] - 588 (0) | 2025.02.10 |
[개발일지] - 587(주말) (0) | 2025.02.09 |
[개발일지] - 586(주말) (0) | 2025.02.08 |