오자마자 새로 왔던 청소기로 탕비실 청소를 한번 해보고

오늘 해야 할 일에 대해 우선순위를 정리하고 사례를 작성했다.

 

이제 사례 작성도 적응해서 처음 할 때의 부담은 사라졌는데

어제 정리해둔 사례 목록에 있는 내용을 옮기고 시간만 조정했기 때문에

10여분만에 사례 작성을 끝낼 수 있었다.

 

세번쨰 프로젝트의 네번째 인터페이스를 작성하려고 했는데

뭘 받을지 협의가 되지 않은 상태에서 진행하려고 하니 너무 혼란스러웠다.

 

특히 생성된 파일에 대한 정보 중 Id값이 없다면 특정해서 찾아야 했는데

해당 키값이 없는 이상 해당 파일은 찾을 수 없다고 봐야 했고

해당 부분에 대해 java sfdc insert 등의 키워드로 검색해보니

id를 리턴받는다는 이야기는 없고 성공여부만 받는 식으로 작성되어 있었기 때문에 더 불안해졌다.

 

중복 여부와 하나의 트리에서 여러개의 파일을 가질 수 있다는 점 때문에

결국 혼자서는 해결할 수 없다는 것을 확인하는 것 외에 소득이 없었고

해당 부분의 리턴값에 대해 질문드리려고 하는 사이에 글 작성중이 표기되더니

오히려 나에게 문의가 들어왔다.

 

에러메세지가 발생하는 경우에 대한 처리 방법인데

내가 정의한 방법은 문제가 없긴 했지만 팀장님과 상의된 부분인지를 물어보셔서

다시 팀장님에게 질문드리고 문제가 없다는 것을 확인받을 수 있었다.

하지만 팀장님에게 질문한게 낭비는 아니었는데

해당 부분의 데이터 없음 등의 문제가 발생할 경우

우리의 잘못은 아니기 때문에 없다고 기록만 해도 되지만

없다는 리턴이 넘어올 경우 해당 정보들을 담당자에게 알리는 등의 후속조치를 알려주셨고

내용을 하드코딩으로 특정인을 지정하는 것이 아니라

메타데이터나 커스텀셋 등을 사용해 사용자가 담당자를 변경할 수 있게 하라고 알려주셨다.

 

그리고 Id 부분에 대해서도 자바에서 어떤 값을 리턴받는지 문의드리니

Id는 원래 리턴받을 수 있다고 말씀하시긴 했는데

확실한건 아니니 직접 협의해서 할 부분이라고 하셨고

다시 담당하시는분에게 답신과 함께 질문드리니

되도록 Id가 같이 갈 수 있게 해보겠다는 답을 얻을 수 있었다.

 

생각해보면 Id가 넘어올 수 없는 구조라면 필드를 하나 생성하고

해당 필드에 지정한 양식의 키를 만들어서 그 키값을 전달받아도 되는데

너무 혼자서만 해결하려고 했던 것 같다.

 

Id 또는 키로 조회가 가능하다는 확신을 하고 나니 작성이 순조로워졌는데

내가 사용하고 싶은 것은 ContentDocumentId였지만 ContentVersion을 생성할 것 같으니

ContentVersionId를 받았다고 가정하고 작성을 시작했다.

 

중간에 특정 필드의 길이 제한을 문의하는 내용을 보고

팀장님이 바빠보이셔서 내가 답변하려고 빠르게 vpn을 키고 db에 들어가서 확인했다.

 

이제 sql도 조금 더 능숙하게 사용할 수 있었기 때문에

테이블을 빠르게 확인해서 해당하는 내용의 필드를 찾아낼 수 있었고

ORDER BY LEN(FieldName) DESC를 통해 제일 높은 값 492를 확인하고

다른 필드도 최대값을 찾아서 말씀드렸는데 

무슨 말을 하는 건지 이해가 잘 안된다고 뭐가 492냐고 하시고

와서 테이블을 보시더니 빵 터지셨다.

 

알고보니 테이블 내부 열 조회를 통해서 필드 정의를 모두 확인 가능했는데

해당 필드는 500이 최대값이고 다른 필드는 최대값을 맞추긴 했다.

 

어쨌건 테이블은 상위 1000개 뷰만 사용했었는데 또다른 사용법을 배울 수 있었고

console.log로 길이를 재려고 하는데 계속 undefinde가 출력되서 당황했지만

우측 상단 필터를 어제 스피너를 확인하느라 걸어서 문제가 있었던 것이었다.

 

그 이후 자동화를 위한 코드 작성을 시작했는데

보안 문제로 정확하게 언급하기는 좀 애매하고

생성한 파일들이 자바서버에서 또 넘어오고 그 파일들을 다시 해당하는 개체에 연결해줘야 하지만

공통된 파일들은 용량 문제상 하나만 생성하고 중복은 진행되지 않는데

해당 부분을 어떻게 처리하는지에 대한 문제였다.

 

이론적으로는 한참 전에 쉽게 해결했지만

막상 만들려고 하다보니 필드 부분에서 막혔고

어차피 테스트도 진행해야 하기 때문에 모든 데이터를 직접 만들었다.

 

해당 개체, 개체 Line Item, 파일명까지 정의하고

조건에 맞게 분기처리하며 파일의 갯수, 중복여부, 에러여부까지 구분했다.

 

다 만들고서도 코드 작성은 진행되지 않았는데

3개의 맵과 2개의 리스트를 사용해 드디어 구조를 완성할 수 있었고

코드를 작성하던 도중 시간이 늦어 퇴근했다.

 

 

(1).백준 23971번 ZOAC 4는 특정 사이즈의 강의실에서

특정 간격으로 사람들이 거리를 두고 앉아야 할 때 

이 강의실에 몇명이 앉을 수 있는지를 묻는 문제였다.

 

사람이 앉고 그 사이에 간격이 있으려면 간격+1만큼씩 증가해야 하기 때문에

기존 칸을 간격+1로 나누고 나눠지지 않더라도 한명은 앉고 시작하기 때문에 ceil을 사용했다.

const input = `5 4 1 1`.split(' ').map(Number)
console.log(Math.ceil(input[0] / (input[2] + 1)) * Math.ceil(input[1] / (input[3] + 1)))

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

[개발일지] - 118  (0) 2023.10.26
[개발일지] - 117  (2) 2023.10.25
[개발일지] - 115  (1) 2023.10.23
[개발일지] - 114(주말)  (0) 2023.10.22
[개발일지] - 113(주말)  (0) 2023.10.21

+ Recent posts