마이그레이션을 계속 시도했지만 제대로 되지 않았는데

문제가 발생한 데이터 하나를 특정할 수 있었고

해당 데이터와 통과한 정상 데이터를 특정해 문의했다.

 

문의 후 사례를 정리하려고 하는 도중 세번째 프로젝트 관련 회의에 또 참여하게 되었고

이번에는 10시부터 2시간 30분 가까이 진행해서 준비하고 나오니 1시가 거의 다 되어버렸다.

 

회의 내용을 간단하게 정리한 후 에러에 대한 원인 후보를 발견했는데

아래와 같은 방식으로 문제를 해결할 수 있을 것 같다는 조언을 받았고

해당 내용이 apex에는 맞지 않아 조금 수정을 했다.

public static String replaceStr(String str) {
            if (str != null) {
                List<String> regexStr = new List<String>{'&', '<', '>', '\\'', '\\"'};
                List<String> replacementStr = new List<String>{'&amp;', '&lt;', '&gt;', '&apos;', '&quot;'};
                    for (Integer i = 0 ; i < regexStr.size() ; i++) {
                        if (str.indexOf(regexStr[i]) != -1) {
                            str = str.replaceAll(regexStr[i], replacementStr[i]);
                        }
                }
            }
            return str;
       }

 

if문보다는 각각의 처리 replace를 5회 진행해도 될 것 같기는 하지만

이것 또한 나쁘지는 않은 것 같아서 그대로 진행하기로 했다.

 

이 부분도 xml과 연결되는 부분에서 확인해야 하는 것 아닌가 싶기는 했지만

중간 xml 데이터를 주고받지 않는 끝점에서 서로 해결하는 부분도 재미있었다.

 

해당 부분을 모두 수정한 다음 또 운영서버에 배포하고

테스트를 진행한 다음 부하에 대한 확인 메일을 발송했고

그 사이 추가로 들어온 두번째 프로젝트 문의와 화상회의 요청으로

내일 오후에 회의를 잡아두고 어떤 내용인지 확인했다.

 

아직도 일은 쌓여있지만 그나마 더 긴급한게 어제 오후에 들어온 자동화 관련이라

자동화 테스트를 다시 한번 진행했는데

이번에는 폴더를 이탈하는 문제는 발생하지 않았지만

폴더에 일부 데이터가 부족한 경우가 발생했기 때문에

해당 내용에 대해 정리해서 다시 전달했다.

 

자동화까지만 끝내도 첫번째 프로젝트 배포 등을 하러 갈 수 있을 것 같았지만

두번째 프로젝트도 계속 요청과 회의가 잡히고 있고

세번째 프로젝트도 오늘 추가 업무가 배정될뻔 했지만

팀장님이 첫번째 일정이 진행되지 않고 있다고 막아주셨다.

 

마이그레이션을 업무시간대에 부하가 걸리지 않게

새벽에 돌릴 수 있게 스케줄을 확인하는데

스케줄은 다시 또 코드를 짜야 해당 스케줄에서 배치를 호출하는 방식이고

1회 마이그레이션 후 사용하지 않을 데이터라 좀 애매하다는 생각을 했는데

마이그레이션 관련 내일 진행해도 된다는 말과

딱히 부하에 대한 언급이 없으셔서 그냥 진행하라고 알아듣고

내일 오전 출근하자마자 마이그레이션을 전체 돌려버리기로 했다.

 

사실 텍스트로 따지면 다 합쳐서 몇메가도 되지 않는 양이기 때문에

이정도로도 부하가 크게 걸리면 실제 운영은 진행되지 않을 것이라고 생각하며

그나마 고객 등이 사용하지 않을 시간대인 9시 이전으로 임의로 결정했다.

 

두번째 프로젝트에서는 실시간으로 문제가 발생해서 문의가 들어왔는데

저번 회의 때 State 관련 변경 요청이 있어서 2개를 변경 및 추가했는데

해당 상태 변경이 기존 팀장님이 작성하신 코드의 api 상태가 섞여있어서

해당 상태가 에러가 난 것이었는데

다음부터는 상태명을 변경할 때는 label만 변경하고 api는 그대로 둬야 할 것 같다.

 

팀장님이 해당 에러를 복구하기 위해 api를 원래대로 변경하시고 label만 유지하셨는데

그렇게 되니 다시 변경 상태에서 요청사항을 작성했던 코드들이 어디에서 문제가 발생할지 몰라

전체 코드를 다시 확인해야 했다.

 

flow에서는 변경 한건과 확인 한건이 문제가 있었고

class에서는 변경 한건의 문제가 발생했는데

다행히 전체 내용을 확인했지만 그 외에 문제가 발생할 일은 없을 것 같다.

 

드디어 첫번째 프로젝트의 배포 관련해서 착수를 시작했는데

코파도라는 배포 방법에 대해 배우고

해당 방식으로 개체, 필드를 생성하면 프로필, 권한 등을 다시 할당해야 하기 때문에

수동으로 만드는게 더 편하다고 해서 준비를 하던 도중

다시 테스트 요청이 와서 테스트를 진행했다.

 

 

(1).백준 18301번 Rats는 일정 규칙에 의해 쥐의 숫자를 파악하는 통계 기법?으로

첫날에 잡은 쥐의 숫자 +1과 둘째 날에 잡은 쥐의 숫자 +1을

첫날에 잡았다 풀어줬던 쥐의 숫자 +1로 나눈 다음 1을 뺀 floor값을 구해야 하는 문제였다.

 

간단하게 Math.floor를 통해 사칙연산으로 문제를 해결했다.

const [a,b,c] = `15 18 11`.split(' ').map(Number)
console.log(Math.floor((a+1)*(b+1)/(c+1))-1)

'회고' 카테고리의 다른 글

[개발일지] - 134(주말)  (0) 2023.11.11
[개발일지] - 133  (0) 2023.11.10
[개발일지] - 131  (0) 2023.11.08
[개발일지] - 130  (0) 2023.11.07
[개발일지] - 129  (0) 2023.11.06

+ Recent posts