금요일까지 일정 관련 답장이 오지 않을 경우 확인을 해야 했기 때문에
해당 키워드로 전체 메일을 확인해서 분류해둔 다음 테스트코드를 미리 정리하기로 했다.
엄청 많이 나왔지만 그나마 클래스와 트리거는 17개로
17개에 맞는 테스트코드 매칭 작업을 시작했다.
5개정도는 이미 테스트코드가 존재했기 떄문에 퍼세트를 기록하는 정도에서 넘어갔고
나머지 2개는 필드 변경으로 인해 작동 자체가 되지 않았기 떄문에
필드 수정 및 추가된 트리거 또는 함수의 테스트를 진행해서 기준치 75%를 넘겼다.
남은 12개의 테스트코드를 하나씩 작성하는데
생각보다 순조롭게 테스트코드를 해결할 수 있었지만
마지막 하나의 테스트에서 문제가 발생했다.
다른 테스트코드 또는 코드에서는 전혀 상관없이 사용하던 특정 상태값에서
상태값 api를 입력했음에도 값이 들어가지 않았다.
생각해보면 테스트코드 외에서만 사용했고 테스트코드 내부에서는 api 코드르 사용하지 않았기 때문에
테스트코드는 pickList에 있는 api를 인식하지 못한다는 의심이 들기 시작했고
대부분의 팁들도 필드 내부에 있는 “선택 목록을 값 세트에 정의된 값으로 제한합니다.”를 끄고 진행하기를 권장했다.
api가 아닌 value를 넣어보기도 하고 하나씩 뺴보기도 했지만
확실히 테스트에서는 api값을 넣어도 pickList가 되지 않는다는 확인만 하게 된 후
필드 내부에 가서 “선택 목록을 값 세트에 정의된 값으로 제한합니다.”를 해제하니
해당 부분은 정상 처리되었지만 에러가 다시 발생했다.
에러의 원인을 보니 다른분이 만든 pdf 생성까지 트리거로 엮여있었기 때문에
특정 상태값이 되면 만들게 되는 것이었고
결국 해당 상태값만 테스트를 제외하니 99%로 통과할 수 있었다.
sfdc에서 home, end 키를 통해서 개체나 필드, 클래스 등을 대량으로 확인해야 빠르게 로딩이 되는데
언제부턴가 home, end 키가 되지 않아서 답답하면서도 그냥 사용하고 있었는데
오늘 참지 못하고 인터넷에 검색해보니 캐럿브라우징이라는 기능이 멋대로 켜져서 그런 것이었다.
캐럿브라우징은 마우스가 없는 환경에서 웹서핑을 할 수 있게 돕는 보조적인 기능이라고 하는데
F7을 눌러서 끌 수 있기 때문에 당장 꺼버리고 home, end 키를 정상 사용했다.
테스트코드를 모두 작성했기 때문에
남은 업무는 PDF 생성(전달 아직 못받음), 인터페이스 오류 탐색(회신 대기), 요청사항 수정(완료 후 연구실 회신 대기) 등 전부 회신 대기 상태였기 때문에
기본 sfdc 개발에도 필수적이면서 인터페이스팀으로서 정말 중요한 SQL 학습을 하기로 했다.
SQL 학습을 시작하면서 충격적인 것을 발견했는데
ORDER BY a , b 형태로 두가지 정렬을 할 수 있는 것이었다.
SFDC의 정렬은 멍청해서 하나로 밖에 되지 않고
두개로 하려면 해당 필드를 다시 재조회 하라는 등의 답변만 봤기 때문에
이런건 처음 알았다고 동기분과 대화하던 중
어? 그거 세일즈포스에서 안돼요?? 안해봐서 모르겠네 라고 하셔서
직접 안되는 모습을 보여드렸는데 황당하게도 잘 됐다.
저번에 자바스크립트로 5~10분이면 해결할 수 있는 것을 apex로 3시간이 걸렸다고 했었는데
이것만 알았어도 apex로도 10분이면 해결할 수 있었는데 확실히 아는 것이 힘인 것 같다.
sql을 학습하는게 오히려 업무시간 효율성이 더 빠르게 증가한다는 사실을 바로 체감할 수 있었기 때문에 조금 더 집중해서 sql 학습을 할 수 있을 것 같다.
sql 학습 게임 같은게 없냐고 하시긴 했는데
학습이라도 게임으로 하고 있는건 조금 눈치가 보일 것 같아서
그냥 프로그래머스의 sql 문제를 쉬운 것 부터 차근차근 풀기로 했다.
1.fieldName as changeName 형태로 출력 필드명을 변경할 수 있다
2.Count(fieldName) as ChangeName 형태로 출력 숫자 이름을 변경할 수 있다.
3.Like로 검색을 할 때는 중간일 경우 ‘%a%’형태로 해야 앞뒤 공백까지 검색이 된다.
4.IFNULL(fieldName, value)로 할 경우 해당 필드가 null인 경우 value로 변하게 된다.
5.IFNULL 형태로 할 경우 해당 값이 그대로 필드명이 되기 때문에 AS newFieldName으로 변경해줘야한다.
6.ORDER BY 로 진행할 경우 ORDER BY a ASC, b DESC 처럼 여러개를 지정할 수 있으며 앞순번부터 진행된다.
7.날짜 포맷을 지정할 경우 DATE_FORMAT(fieldName, '%Y-%m-%d') AS fieldName 형태로 한다.
4시쯤 다시 한번 문의를 했는데 해당 부분에 대해 확인을 할 수 있었고
고객사의 요구사항을 드디어 만족시킬 수 있었기 때문에
해당 리스트의 권한 체크를 각 프로필 계정으로 로그인해서 진행한 다음
고객 요청사항이 끝났기 때문에 내용을 정리해서 메일을 보냈다.
이번에는 조금 더 가독성이 좋게 하기 위해서
대제목은 bold로 크기를 키웠고
알 수 없지만 n번 밑에 n번이 있는 구조인 것은
중간에 위치한 n번은 사이즈를 조금만 더 키우고 bold 처리했다.
그리고 처리가 불가능한 부분이거나 처리는 됐지만 주의사항이 있는 부분들은 빨간색 처리했고
담당자에게 전달한 부분은 노란색으로 처리했다.
SQL은 2시간도 못했는데
진작 2시간치만 학습했어도 벌써 3시간은 절약할 수 있었을 것 같다.
원래는 자바스크립트 자격증이나 dp2를 취득하려고 생각했는데
이사님이 신기하게 마구 사용하시면서 쿼리만으로 데이터 정보를 취합하는 모습을 보고
저런 사용법도 있구나 하면서 맛만 봤는데
쿼리 실력도 세일즈포스에 적용이 생각보다는 많이 될 것 같아서
내일도 시간이 남으면 sql 학습을 같이 해야겠다.

(1).백준 15178번 Angles는 주어진 각들을 체크해서
합이 180도가 되는지 확인하고 출력해야 하는 문제였다.
number type으로 변경해야 하기 때문에 가져온 값을 구조분해할당으로 가져오고
합이 180도인지 확인해서 check / OK인지 기존 input값에 더해줬다.
const input = `10
59 60 60
42 68 70
65 65 50
120 31 28
61 61 58
78 61 41
85 85 9
64 82 35
29 102 49
120 30 30`.split('\n')
const result = []
for(let i = 1 ; i < input.length ; i++){
const [a, b, c] = input[i].split(' ').map(Number)
result.push(input[i] + ' ' +((a + b + c) === 180 ? 'Seems OK' : 'Check'))
}
console.log(result.join('\n'))'회고' 카테고리의 다른 글
| [개발일지] - 78(주말) (0) | 2023.09.16 |
|---|---|
| [개발일지] - 77 (0) | 2023.09.15 |
| [개발일지] - 75 (0) | 2023.09.13 |
| [개발일지] - 74 (0) | 2023.09.12 |
| [개발일지] - 73 (0) | 2023.09.11 |
