오자마자 바로 방화벽 관련 문의를 양쪽에 전달해야 했는데
둘의 에러 메세지가 차이가 나긴 했지만
일단 SFDC에서 제공하는 APNIC IP 리스트와 회사 IP를 정리해서 전달했다.
지원요청받은 프로젝트에서는 빠르게 완성은 했었지만 테스트값을 못받고 있었는데
계속 전화를 시도했지만 받지 않아서 테스트를 할 수 없었다.
방화벽 관련 통화 후 변경된 인터페이스를 수정했고 아래와 같은 에러코드를 해결할 수 있었다.
the remote host or network may be down or blocking requests from publicproxy. Please verify acls on the destination side 111.222.333.444
중간에 timeout 유지보수 문의가 들어왔지만
해당 문제는 ERP에서 서버 문제가 발생했기 때문에 발생하는 문제라 ERP로 전달해서 해결했고
두번째 프로젝트에서 조건에 따라 상태값을 분기처리해서 보내는 로직을 처리했다.
인터페이스에서 ERP로 보내는 경우 대부분 프로젝트들이 공통적으로 1회만 보내길 원하는데
그로 인해서 IsInterface같은 필드를 생성 후 1회 발송 이후에는 발송을 막는 로직을 설정해줬고
다시 첫번째 프로젝트로 돌아가 결과값을 받은 경우 ERP에서 받은 값을 없데이트해서 연결이 가능하게 했다.
첫번째 프로젝트의 경우 화이트리스트 추가로 인한 방화벽 해제로 문제가 해결되었지만
두번째 프로젝트에서는 PKIX 문제로 방화벽과는 관련이 없었는지 해결되지 않았고
검색을 통해서 해당 문제는 SSL에서 발생했다는 사실을 알아낼 수 있었다.
해당 문제가 발생한 가장 큰 원인은 https를 사용했기 때문에
SSL 인증서를 사용해서 인증을 진행해야 했지만 인증이 제대로 되지 않았기 때문이고
SSL 인증이 되지 않는 이유는 https에서 생성된 인증서가 만료되었거나
아니면 SFDC에서 확인할 수 있는 CA(공급자)에서 발급받은 인증서가 아니라 발생한 문제였다.
결국 https를 사용하는 고객사측에서 HTTPS 정의서를 정상 인증이 가능하게 변경하거나
http로 변경해서 사용하는 방법밖에 없었고
어차피 개발서버에서 인터페이스를 테스트하기 위한 목적이었기 때문에
고객사에서 https에서 http로 주소값을 바꿔서 인터페이스를 하기로 했고
원격 사이트 설정 및 사용자 정의 설정으로 주소값을 바꾸고 테스트하니 정상 처리되는 것을 볼 수 있었다.
지원요청받은 프로젝트에서 인터페이스 테스트 발송 요청을 하려고 했는데
오전부터 6번의 연락을 했지만 두번의 통화는 연결되지 않았고
세번째 통화의 경우 다른 사람 자리라고 해서 통화가 불발되었고
네번쨰 통화의 경우 본인이 담당자가 아니고 다른 직원을 배정했다고 안내를 받았고
다섯번째와 여섯번째 통화의 경우 전화를 받지 않아 진행할 수 없었다.
마지막 여섯번째 통화 끝에 문의사항은 문자로 달라는 문자를 받았고
저번주에 보낸 메일 확인 요청을 드디어 할 수 있었다.
첫번째 프로젝트에서 발송 오류가 나서 확인해보니
샘플 데이터들로 받았던 값들을 그대로 보내면 필수 필드가 없는데
결국 필수 필드에 맞는 값이 없는 경우 기본값을 하나 추가해 인터페이스 테스트를 진행했다.
여섯번째 통화와 문자 발송 끝에 전화가 온 지원 프로젝트에서
인터페이스 변경사항에 대한 정보를 들을 수 있었고
데이터의 경우에는 사이즈가 한도를 초과할 수 있을 것 같았기 때문에
1일 1회 인터페이스가 되는 대량 인터페이스의 경우에 잘라서 배치로 발송 요청으로 합의됐다.
두번째 프로젝트에서는 요청사항이 추가되었는데
특정 조건이 달성된 내용들만 인터페이스를 진행하기를 요청했고
해당 내용의 경우 여러가지 선택지를 전달한 끝에
선택 가능한 Item이 없는 경우 Object 자체 인터체이스를 하지 않고
에러메세지를 출력하는 방식으로 최종 결정이 났다.
저녁을 먹고 해당 조건에 따른 Flow 내부 처리를 진행했고
Class 내부에서도 Select 내부에 Where AND 조건을 추가해 특정 대상만 발송했다.
첫번째 프로젝트 중 두번쨰 양방향 인터페이스를 위해서
SFDC에서도 발송하는 버튼을 추가해야 했기 때문에
여기는 Flow가 아닌 페이지라 LWC 페이지와 JS 메서드들을 확인 및 수정했다.
첫번째 프로젝트 중 세번째 인터페이스에 대해서
SFDC 내부 연결을 위한 추가적인 필드 조건들에 대해 정리하고
해당 내용들에 대한 문의사항을 수신자를 나눠 발송한 다음
지원 프로젝트에서 테스트를 제대로 하지 않은건지 잘못 이해하고 토큰만 확인한건지
인터페이스 로그에는 아무 값도 찍혀있지 않았기 때문에 재발송 요청 메일을 작성했고
양방향으로 작성해야 하기 때문에 세번쨰 양방향 인터페이스의 틀이 될 클래스를 확인했다.
결국 10시가 넘어서 퇴근하게 되었지만 마감일에 비해 해야 할 일들이 아직도 많은 편인데
이번주에 어느정도 해결이 됐으면 좋겠다.
(1).백준 16427번 Time Limits는 시간제한이라는 내용과 다르게 가장 오래 걸린 시간과
주어진 값을 곱한 시간에 가장 가까운 정수를 구해야 하는 문제였다.
다만 시간 이전이 아닌 이후 시간 중 가장 가까운 시간을 구해야 했기 때문에 Math.ceil을 사용했고
밀리초였기 때문에 /1000을 사용해 초로 변환했다.
const input = `3 4
47 1032 1107`.split('\n').map(el => el.split(' ').map(Number))
console.log(Math.ceil(Math.max(...input[1]) * input[0][1] / 1000))
'회고' 카테고리의 다른 글
[개발일지] - 320 (0) | 2024.05.16 |
---|---|
[개발일지] - 319(석가탄신일) (0) | 2024.05.15 |
[개발일지] - 318 (0) | 2024.05.13 |
[개발일지] - 317(주말) (0) | 2024.05.12 |
[개발일지] - 316(주말) (0) | 2024.05.11 |