오늘은 DataCloud와 AWS 연동 부분에서

배치로 DataCloud 내부 값을 처리하는 것을 진행해보려고 했는데

논리적인 부분에는 문제없이 이제 다 처리가 잘 되었지만

일부 데이터만 수정되고 일부 데이터는 되지 않는 이상한 일이 있어서 확인해보니

내부 배치로 스테이징처리된 데이터 원본 합산, 그 이전에 원본 백업 등 처리 작업이 되는지 확인하느라

더미 데이터로 했던 내용이 반영되었기 때문에 실제 값이 아닌 필드도 포함되어 있어서

해당 값을 기준으로 정렬하기 때문에 일부 값들은 누락되었고

또 일부 값들은 없는 필드를 추가했기 때문에 반영 자체가 되지 않았다.

 

어쨌거나 증분식 반영 테스트까지는 거의 다 마무리되어가고 있는데

'조회'만 한다고 했던 DataCloud 데이터 또한 알고보면 추후에 다시 '조회'가 가능한 데이터를 추가로 넣어줘야 하기 때문에

생성 로직은 필수적이라

기존에 하나만 해야 한다고 했던 'CRUD' 기능과 별 다를 것 없이

배치로 스테이징 처리 후 upsert 및 DataCloud 증분처리도 해야 해서 구조적으로도 다 구분하고

개체별로 또 수신 로직을 나눠줘야 하기 때문에 또 다시 내부 로직 확인이 필요헀고

모두 통일할 키, update 기준, 삭제 기준 등 아직 SFDC에 반영되지 않은 데이터도 통합 가능한 키 설정 등

괜히 parquet가 20배 가량 압축효율이 좋아서 시키지도 않은 일까지 했더니

내부 데이터 확인도 어려워서 athena를 또 거쳐서 SQL 조회도 해보면서 내부 값 비교가 가능했고

어쨌거나 계속 알아가는 것들은 많지만 야근을 계속 하게 되니 상당히 피곤하다.

 

 

(1).백준 32642번 당구 좀 치자 제발은 비가 오면 당구를 치지 못해서 화가 쌓이고 

비가 안오면 화가 풀리는 구조로 축적된다고 할 때 총 분노의 수치를 구해줘야 하는 문제였다.

 

특이하게도 분노수치는 누적식이 아니고

그날의 분노수치가 계속 증감하며 그 분노가 결과에 가산되어야 하기 때문에

분노 수치를 먼저 비가 오는지 여부에 따라 변경한 다음 결과값에 더하는 방식으로 해결했다.

const input = `5
0 0 0 0 0`.split('\n')[1].split(' ').map(Number)

let result = 0
let anger = 0

for(let i = 0 ; i < input.length ; i++){
    if(input[i]){
        anger++
    }
    else{
        anger--
    }
    result += anger
}

console.log(result)

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

[개발일지] - 814  (0) 2025.09.25
[개발일지] - 813  (0) 2025.09.24
[개발일지] - 811  (0) 2025.09.23
[개발일지] - 810(주말)  (0) 2025.09.21
[개발일지] - 809(주말)  (0) 2025.09.20

+ Recent posts