[개발일지] - 582
파일 마이그레이션 관련 코드를 얼핏 봤는데
필요 없는 주석이나 저번에 제거처리해서 들어가지 않는 apex 호출 등을 제거했다.
파일 마이그레이션은 이제 좀 틀이 잡혔는데
sheet.js만 어떻게 처리하면 바로바로 이식해서 누구나 편하게 업로드할 수 있을 것 같지만
일단은 그건 어려울 것 같기도 하고 당장 그걸 진행할 시간은 없어서 다음 업무를 진행하기로 했다.
중간에 연말정산 등록 방법에 대해 문의가 들어왔는데
발급받아야 하는 서류들을 정리했었기 때문에 알려드리고
명명 규칙에 대해서도 전달드린 다음 마이그레이션 작업을 진행했다.
일단 크게 고민할거리 없는 마이그레이션은 무난하게 진행되었는데
Approval process가 사용된다는 부분에서 마이그레이션의 큰 문제가 발생했다.
일단 데이터가 60만건이 넘는다는 것도 문제지만
정상 인터페이스는 불가능하고 승인프로세스를 하나씩 진행해야 하는 것이 진짜 문제였다.
ProcessInstance, ProcessInstanceStep 가 생성되는 것 까지는 확인했지만
insert가 아닌 step으로 진행되어야 하는 상태도 문제였고
현재 승인 프로세스 관련 로직은 커녕 생성자체도 되지 않은 상태기 때문에
일단 이 부분은 추후 진행할 수 있으면 하기로 하고 넘어가기로 했다.
기존 진행했던 인터페이스 관련해서 마이그레이션 내용을 검토하고 있었는데
대상 개체가 변경되어버렸다는 이야기를 들을 수 있었고
마이그레이션이 아니라 인터페이스 필드 변경내역을 확인하고
수정해야 할 인터페이스들을 확인하다 퇴근했다.
(1).백준 3711번 학번은 최소값으로 주어진 숫자들의 나머지가 서로 다른 값을 구해야 한다는 문제였다.
일단 테스트케이스들을 for문으로 분리시켜주고
나머지는 각자 숫자를 1씩 증가시켜가면서 나머지를 map에 담다가
한번이라도 중복이 발생하면 flag를 false로 바꿔주고 나머지처리 순회는 중단시켰고
전체 순회 후 문제가 없는 경우 flag가 true기 때문에 해당 i값을 반환하는 방식으로 처리했다.
const input = `2
1
124866
3
124866
111111
987651`.split('\n').map(Number)
const result = []
const modCheck = (arr) => {
let map = {}
for(let i = 1 ; i < 1000000 ; i++){
map = {}
let flag = true
for(let j = 0 ; j < arr.length ; j++){
if(map[arr[j] % i]){
flag = false
break
}else{
map[arr[j] % i] = true
}
}
if(flag){
return i
}
}
}
for(let i = 1 ; i < input.length ; i++){
const arr = [...input.slice(i+1, i + input[i]+1)]
result.push(modCheck(arr))
i += input[i]
}
console.log(result.join('\n'))