출근하자마자 연말정산 서류를 먼저 정리해야 했는데
아래 내용과 같이 7개나 됐기 때문에 준비하는데 시간이 생각보다 오래 걸렸다.
1.소득세액공제 2.공제신고서 3.연말정산 사전질문지 4.주민등록등본 5.중기청 감면 6.월세액 임대차 사본 7.이체내역서류
중간에 특정 출고 가격 관련해서 0원이 입력되는 문제가 있다고 하고
그걸 해결하기 위해서 다른 개체에서 가져와서 처리하는 방안에 대해 논의하는데
SAP이랑 업무할 때는 그냥 재전송해라, 필드 값 없다 라고 전달하면 바로 처리해주셨지만
여기는 뭔가 처리를 잘 안해주려고 하는지 알아서 하라는 식으로 답이 왔다고 했고
회의 중 팀장님까지 오셔서 진행했지만 결론적으로는 키값이 없어서 역매칭이 안된다고 마무리됐다.
결국 다시 값이 없으면 안된다고 전달해서 정상적으로 보내준다는 마무리가 됐는데
애초에 오던 필드 값들을 본인들이 안넣어놓고
그 값을 전달하지 않으려고 하는 것에 대해서는 잘 이해가 가지 않는다.
유지보수쪽에 상태 업데이트 관련 문의가 넘어왔는데
이번엔 이전 에러와는 다르게 단순히 중복된 레코드가 존재하는 것으로
복제를 했던 아니면 수동으로 기입을 했던 비정상적으로 두개가 존재하는 상태로
복제된 데이터를 기준으로 업데이트가 안된다고 문의가 넘어왔지만
실제로는 기존 레코드에 업데이트가 정상적으로 되고 있기 때문에 해당 내용을 공유했다.
오전에 진행한 출고 관련 내용은 잘 마무리됐지만
여태 없는 값들은 우리쪽에서 수동으로 기입하라는 요청이 넘어왔고
전달받은 값을 postman으로 발송해서 정상 처리되는 것 까지 확인하고 다음 작업으로 넘어갔다.
SSO 관련 토큰 권한 확인 문제가 있었는데
분명 다른 org에서는 되는데 여기선 안되서 온갖 권한을 다 뒤져봤지만 해결되지 않았고
문득 뭔가 이상해서 site 주소를 확인하니 api를 정상적으로 주는 getSessionId의 경우
my가 들어가는 주소값이라는 것을 알 수 있었다.
SFDC에서 일반적으로 aura, vf, lwc 등은 전부 my가 없는 주소값이고
설정탭이나 개발자도구 등의 경우에는 my가 들어가는 값이라서
토큰을 화면단에서 출력되게 하면 에러가 발생하고 개발자도구에서는 정상 출력되는 것이었다.
String sessionId = UserInfo.getSessionId();
Integer mid = sessionId.length() / 2;
System.debug('First Half: ' + sessionId.substring(0, mid));
System.debug('Second Half: ' + sessionId.substring(mid));
일단 토큰 관련 자꾸 찾다보니 토큰을 찾는건 별 문제가 없어졌는데
수동 토큰 입력을 시키는 것이 좀 부담스러웠는데
관리자권한이 있는 사용자의 경우 이런 방식으로 토큰을 받으라고 하면
굳이 app manager 등에 connected app 설정 및 토큰발급이 필요 없기 때문에
팀장님에게 필요한 정보는 찾지 못했지만 개인적으로는 의미있는 확인 시간이었다.
갑작스럽게 데브옵스 관련 회의가 3분 뒤로 초대가 날아왔는데
배포 등에 깃허브가 연동되는 시스템 관련 정보로
일단 도입한다고는 하지만 계정 연동이 되지는 않은 상태기도 하고
다른 작업이 워낙 많이 밀려있어서 일단 연동되면 알아보던지 하기로 했다.
팀원분이 내가 만들었던 클래스가 테스트에 잡혀서 진행이 안된다고 문의를 주셨는데
전체 클래스가 있지 않아서 검색되지 않았던 것으로
당연하지만 trigger를 통해서 내 클래스가 호출되기 떄문에 발생한 문제였고
내 클래스 테스트클래스에 있는 입력 데이터를 넣어주는 방식으로 해결되었다고 했다.
어드민분이 단가 관련 자동승인 에러 문의를 주셨는데
다행인지는 모르겠지만 이전에도 다른 문제로 해당 flow, class를 확인한적 있기 때문에
빠르게 원인을 파악해서 해결할 수 있었다.
파일이 아니라 전체 마이그레이션 업무도 진행하려고 하는데
다른 업무들이 워낙 많았어서 그냥 개체 정보만 조금 확인하다 마무리하고 퇴근했다.
(1).백준 11256번 사탕은 여러가지 박스 사이즈들과 사탕의 수량이 제공될 때
사탕을 포장하기 위해 몇개의 박스를 최소로 소비할 수 있는지 출력해야 하는 문제였다.
박스 사이즈를 따로 배열에 담아준 다음 내림차순으로 정렬하고
박스를 하나씩 소모해서 사탕이 다 담긴 시점에 사용한 박스의 갯수를 각자 result에 담은 다음
다른 케이스를 하나씩 진행한 후 최종 결과를 출력하는 방식으로 해결했다.
const input = `2
12 3
2 7
1 5
3 2
20 3
2 7
1 5
3 2`.split('\n').map(el => el.split(' ').map(Number))
const result = []
for(let i = 1 ; i < input.length ; i++){
const [nums, box] = input[i]
const boxArr = []
let sum = 0
let count = 0
for(let j = i + 1 ; j <= i + box ; j++){
const [x, y] = input[j]
boxArr.push(x * y)
}
boxArr.sort((a,b) => b - a)
for(let j = 0 ; j < boxArr.length ; j++){
if(sum < nums){
sum += boxArr[j]
count++
}
else{
break
}
}
result.push(count)
i += box
}
console.log(result.join('\n'))