[개발일지] - 42
오늘은 라이센스 답변을 위해
커스텀 개체를 사용할 것 같은 분들에게서 답변이 왔는데
해당 개체를 정리하고 실제 운영 서버에서 관련 프로필에서 사용되는 커스텀 개체의 수를 비교한 결과 10개가 넘었던 것을 확인할 수 있었다.
하지만 이번에 추가되는 부분만 담당하는 유저들은 10개 미만의 개체를 사용하는 것으로 확인되었기 때문에
해당 필드들의 레이블, api명을 작성해 이런 개체들이 사용됨을 정리했다.
중간 과정에서 추가해야 하는 부분들도 내가 감당할 수는 없는 부분이지만
내용을 확인하고 보고해서 메일들이 처리될 수 있도록 조금이나마 도움이 되려고 노력했고
배치 스케쥴링 프로세스를 위한 작업을 하던 중 연관 회사에서 페이지네이션이 되지 않는 api를 보내줘서
해당 부분의 수정본을 받았지만 알고보니 api의 페이지 처리가 어긋나있었다.
그 부분은 총 데이터와 현재 페이지를 가지고 처리할 수 있기 때문에 상관은 없었기 때문에 넘어갔고
배치를 돌리는데 굳이 페이지를 쪼개서 받을 이유가 있는지에 대한 의문이 생겼는데
팀장님이 실제로 수백만개의 데이터가 넘어올 경우 받을 수가 없는 문제가 발생하지만
필드 숫자가 적고 하루 처리 숫자가 소수인 경우에는 전체 페이지를 받는 구조로 해도
오히려 쪼개서 하는 것 보다 안정적일 수 있다고 해주셔서 생각한대로 1회 request에 전체 데이터를 받아오기로 했다.
단순 배치 작업이 아닌 마이그레이션, 스케쥴, 배치, 조회 등 여러가지를 한번에 할 수 있으면서도
나중에 유지보수를 위해 확정성까지 남겨둔 코드를 보고
하나의 기능만 간신히 해서 나중에 뜯어고쳐야 하는 내 코드를 보다 보니
자꾸 왜 저렇게 돌아가는지 공부하게 된다.
하지만 두세개의 기능이 아닌 동시에 연관된 개체들까지도 업데이트하는 복잡한 부분이었기 때문에
현재 위치의 코드는 이해했지만 다른 곳 까지 넘어가면서 학습하기에는 현재 일처리를 해야 해서 넘어가기로 했다.
오늘은 메일 답변도 하고 배치 학습도 했지만
실제 코드작성은 많이 하지 못해서 아쉬웠다.
(1).백준 23802번 골뱅이 찍기 - 뒤집힌 ㄱ은 @를 ㄱ 모양으로 찍어야 하는 문제였다.
글자의 사이즈가 커진 것 처럼 두께가 가로, 세로로 두꺼워져야 했기 때문에
줄 숫자를 표현할 때는 각 줄마다 input의 길이만큼 추가했으며
하나의 @였던 길이의 확장을 나타내기 위해서 repeat을 사용했다.
const input = 1
const result = []
for(let i = 0 ; i < input ; i++){
result.push('@@@@@'.repeat(input))
}
for(let i = 0 ; i < input * 4 ; i++){
result.push('@'.repeat(input))
}
console.log(result.join('\n'))