오늘은 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 |
