오자마자 일정 정리를 했는데

남은 업무가 거의 없기 때문에 테스트케이스 작성 및 주석처리를 하기로 했다.

 

작업에 들어가기 전 에러메일을 확인했는데

어제 퇴근 전에 보냈던 요청사항 수정사항을 보시고

수정되었는지 일부러 테스트를 해보셔서 Validaion 오류가 발생한 것 같다.

 

가독성이 괜찮은지 어제 작성한 요청사항 처리사항을 다시 읽어보고

테스트클래스 상단 주석처리에 들어갔다.

 

파일명, 테스트클래스, 작성자, 버전, Description 등을 작성하는데

대부분 작성은 되어있는게 기본이지만

테스트클래스를 작성하기 전에 만들었기 때문에 테스트클래스 등이 비어있었고

매칭되는 클래스를 찾아서 넣어줬다.

 

어제 하나 빼먹은 인터페이스 테스트클래스도 작성했는데

하다보니 점점 익숙해져서 테스트클래스 수정도 진행했다.

 

운영에 바로 반영하기 위해 75%가 필요한데

당일 처리하다보니 76%로 마감된 테스트케이스 또한 100%로 증가시켰고

테스트케이스 내부에 들어갈 데이터 생성에도 익숙해졌다.

 

연구실에서 ListBuilder 관련 테스트 문의가 들어왔기 때문에

해당 부분에 대해 시연을 진행했는데 첫번째 문의는 정상적으로 변경이 완료되었다.

 

다른 연구실분이 오셔서 테스트를 해달라고 하셔서 진행했는데

기존에 고객사에서 테스트할 수 있도록 권한부여까지 끝난 탭을 지워달라고 하셨기 때문에

슬프지만 이미 권한부여가 끝났다는 사족 없이 바로 지우고 새로 생성해봤는데

이전과 동일한 에러가 발생해서 아쉽지만 권한만 새로 작성해야 했다.

 

그래도 의미있는게 이전에 발생한 에러는 중복 명칭 때문이었고

그 문제를 해결하시고 나서도 처음에 보였던 에러코드가 발견된 것이기 때문에

이번에는 해당 앱 이름과 문제를 이슈로 작성해달라고 하셔서 연구실에 이슈를 남겼다.

 

도중에 고객 요청사항 중 개선사항이 생각나서 연구실분에게 질문드리니

그게 왜 안되요? 하시면서 보시다가 원래는 지원하는 기능인데

패키지를 업그레이드하면서 문제가 발생한 것 같아서 이것도 이슈로 올려달라고 하셨다.

 

클래스 상단의 Title 느낌의 주석이 아닌

각 메서드별로 넣어주는 주석을 진행했는데

인터페이스팀에는 특성상 메서드가 아닌 Wrapper 클래스들과

get, post등의 이름만 봐도 기능을 알 수 있는 몇개의 메서드로 이루어져있기 때문에

메서드별 주석이 달린 것을 볼 수 없었기 때문에 여태 잊고있었다.

 

클래스에서 주석을 넣는 것에 대한 의견을 점심시간에 회사분들에게 물어보니

기분이 좋으면 넣고 나쁘면 넣지 않는데 대부분 넣는게 맞다고 하셨고

다른분은 스니펫으로 편하게 내용만 작성할 수 있다고 알려주셔서

스니펫 사용법을 배웠다.

 

이름부터도 Snippet인 vscode 익스텐션을 다운받고

vscode 하단의 Manage에 들어가 User Snippets를 클릭해 사용할 수 있었다.

 

처음 어떤 타입으로 할지 설정한 다음

내부에 아래처럼 JSON 형태로 처리하면 된다.

"Debug": {
	"prefix": "ddd",
	"body": [
	"System.debug('■■■■ ========== ${TM_FILENAME_BASE} :: @@@@ $1 ==> \\n' + $2);"
	],
	"description": "debug.log"
},

 

prefix를 통해서 호출할 수 있는데

좌판이 한글로 되어있는 경우 가끔 ddd 대신 ㅇㅇㅇ가 나갈 수 있기 때문에

“Debug2”, “Prefix”:”ㅇㅇㅇ” 형태로 두개를 만들어주면

한/영 신경쓰지 않고 편하게 불러올 수 있다.

 

SQL학습을 오늘도 진행하려고 했으나

개인정보보호교육 때문에 1시간 가량 교육을 받았고

그 이후 여신관련 메일을 작성한 다음 SQL을 다시 시작했다.

 

1.쿼리 내부 ROUND(NumberTypeField, 0) 형태로 반올림을 할 수 있다. 웃긴건 CEIL이나 FLOOR는 되지 않는다.

 

2.b의 특정 정보를 가져와서 비교하고 싶은 경우 WHERE 부분에서 b를 쿼리할 때 b 내부 WHERE에서 비교필드 = a.비교필드 형태로 a의 필드값을 가져올 수있다.

SELECT flavor FROM first_half WHERE total_order > 3000 AND (SELECT ingredient_type FROM icecream_info WHERE flavor = first_half.flavor) = 'fruit_based'

 

3.쿼리 내부 IF를 사용해 조건에 따라 출력 값을 변경할 수 있다. IF(end_date - start_date >= 30 , "장기 대여", "단기 대여") 날짜의 차이는 지 멋대로 진행되는 감이 있는데 자세히 결과를 비교해보니 2022-09-01이라면 20220901라는 숫자로 인식해서 10월1일이 되면 100이 증가하는 것이었다.

SELECT history_id, car_id, DATE_FORMAT(start_date, '%Y-%m-%d') AS start_date, DATE_FORMAT(end_date, '%Y-%m-%d') AS end_date, IF(end_date - start_date >= 29 , "장기 대여", "단기 대여") AS rent_type, (end_date - start_date) AS date, DATEDIFF(END_DATE, START_DATE) AS date2 FROM car_rental_company_rental_history WHERE start_date LIKE '2022-09-%' ORDER BY history_id DESC

 

 

(1) 백준 21022번 Three Points for a Win는 승리시 3점, 무승부시 1점을 얻을 수 있을 때

최종적으로 몇점을 획득하는지를 계산해야 하는 문제였다.

 

간단하게 input을 Number type으로 변경하고

해당 길이에 맞게 for문을 순회하며 비교해 점수를 result에 저장하는 방법으로 해결했다.

const input = `4
3 0 2 4
1 1 2 3`.split('\n').map(el => el.split(' ').map(Number))

let result = 0
for(let i = 0 ; i < input[1].length ; i++){
    if(input[1][i] === input[2][i]){
        result += 1
    }
    else if(input[1][i] > input[2][i]){
        result += 3
    }
}

console.log(result)

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

[개발일지] - 79(주말)  (0) 2023.09.17
[개발일지] - 78(주말)  (0) 2023.09.16
[개발일지] - 76  (0) 2023.09.14
[개발일지] - 75  (0) 2023.09.13
[개발일지] - 74  (0) 2023.09.12

+ Recent posts