apex에서 자꾸 탭이 2줄로 변경되는 문제가 있지만 그냥 스페이스바나 탭 두번으로 처리했는데
Indent Using Spaces를 통해서 탭 변경이 가능해서 다시 정상적으로 작업할 수 있었다.
비활성 유저 관련 중단 사태 문의를 다시 확인해줬는데
결론적으로 여러 채널에서 어드민쪽에 flow 등 요청이 들어갔고
특정 조건일 때 상태값이 초안에서 승인됨으로 변경되고
승인됨인 경우 알림이 날아가야 하는데 비활성이라 에러가 발생한 상태고
비활성 여부와 관련없이 알림을 일단 발송 시도하는 로직도 최근에 추가되었기 때문에
연쇄적으로 발생한 결과에 따라 결국 발송 시도 부분에서 에러가 발생해서 인터페이스에 영향이 온 것이었다.
여기서 중요한 부분은 초안에서 승인됨으로 자동 변경되는 부분이라고 추측하고
초안에서 승인됨이 변경될 때
만약 기존에 SAP 전송으로 인해 키값이 넘어온 적 있다면 승인됨 변경 로직을 진행되지 않게 했다.
어차피 초안으로 변경 후 이후 단계 변경이 되기 때문에 승인됨이 필요 없어 보였고
로직 적용 이후 인터페이스 재발송을 하니 정상적으로 처리되었기 때문에
해당 로직 원인과 처리한 내용에 대한 로직을 정리해서 고객사에 전달했다.
엑셀로 파일 다운롣 ㅡ마이그레이션 페이지 관련해서 개선을 진행하는데
이전에 언급했던 apex 연결을 대체하는 부분들을 처리하는데 생각보다 오래 걸렸다.
일단 lwc 내부에서 metadata를 가져오는 방법에 대해서는
url과 session을 가져오는 것이었기 때문에 session은 직접 토큰을 넣게 input을 넣어줬고
url 부분은 lwc에서 window.page? 같은 방식으로 처리해줬지만 계속해서 에러가 발생했다.
url을 가져오는 부분에서 왜 에러가 발생하는지 의아했는데
network부분을 확인하니 이상하게 3번이나 발송하는 부분이 존재했고
2번까지는 한번은 preflight라고 생각하더라도 횟수가 3번이라 뭔가 이상하고
토큰 확인도 했지만 401 에러가 발생하고 있기 때문에 조금 더 자세히 확인해봤다.
확인 결과 token은 두번째 발송에만 존재했고 나머지 발송에는 존재하지 않았는데
token이 누락된 원인을 찾기 어려웠고 3회 발송이라는 부분은 더 이해가 되지 않았고
url이 도대체 뭐가 문제가 있는지 요청을 발송하기 전 console을 찍어도 확실히 보이지 않았다.
더 정확하게 하기 위해 postman에서 복사한 링크 주소를 하드코딩하니 정상 발송되었는데
그 상태에서 console에 찍힌 url을 하드코딩 값과 같이 출력하니 드디어 아래처럼 확인이 가능했다.
<https://xxxxxxxxxx.sandbox.lightning.force.com/services/data/v60.0/sobjects>
GET <https://xxxxxxxxxx.sandbox.my.salesforce.com/services/data/v60.0/sobjects> 401 (Unauthorized)
문제는 lightning.force.com으로 발송하지만
언제부턴가 인터페이스의 경우 my.salesforce.com으로 발송해야 했기 때문에
일반적인 주소로 api 요청을 보내면 아래 주소인 my.으로 redirect가 되어버렸고
redirect가 되기 전 요청에 이미 Header로 넣어준 token값은 유실되어버리고
그 이후 발송되는 redirect된 인터페이스 요청에서는 token없이 발송되어 401에러가 발생한 것이었다.
결국 기존 주소값에서 lightning.force를 my.salesforce로 교체한 다음
정상적으로 인터페이스 처리가 되는 것을 확인했는데
이 부분까지가 겨우 metadata를 가져와서 처리하는 부분이라 상당히 지쳤다.
이후 ObjectList를 가져와서 어떤 Org에서든 아무 개체나 정확히 매칭할 수 있게 했던 부분도 수정했는데
이 부분은 위에서 언급된 services/data/v60.0/sobjects api를 사용한 다음
해당 값을 기존에 apex에서 받아서 처리한 것처럼 진행해서 빠르게 마무리할 수 있었고
엑셀로 정리해서 어떤 객체든 키값에 따른 리스트를 전송하는 부분은 진행 중 퇴근이슈로 멈춰버렸다.
설날이라 붐빌 것 같아서 최대한 빨리 마무리하고 퇴근해야 해서 아쉬웠는데
어쨌거나 이 부분은 api 부분의 객체명칭에 선택된 값을 넣어주고
Select 부분에 Where 조건에 Id 리스트를 넣어주면 될 것 같지만
이게 몇천건이 되어버리거나 하면 에러가 발생할 것 같기도 하고
url 뒤에 붙어서 가는 경우 링크 길이 초과로 인해 수천개의 key값을 넣기도 애매하고
문제가 발생하면 이것 또한 배치처럼 분할해서 하나하나 처리하게 로직을 짜야 하는데
apex 배제 마지막 단계가 제일 큰 난관일 것 같았다.
(1).백준 27219번 Робинзон Крузо는 주어진 숫자에 따라 V와 I로 숫자를 표기해야 하는 문제였다.
간단하게 Math.floor로 5의 배수를 구해주고
나머지는 %로 구해서 구분한 다음 각자의 V와 I의 갯수는 .repeat으로 표현했다.
const input = 13
let result = 'V'.repeat(Math.floor(input/5)) + 'I'.repeat(input%5)
console.log(result)
'회고' 카테고리의 다른 글
[개발일지] - 573(주말) (0) | 2025.01.26 |
---|---|
[개발일지] - 572(주말) (0) | 2025.01.25 |
[개발일지] - 570 (1) | 2025.01.23 |
[개발일지] - 569 (0) | 2025.01.22 |
[개발일지] - 568 (0) | 2025.01.21 |