코드를 작성하면서
test-board 브랜치에서 게시판 테스트코드를 작성하고
swagger 브랜치에서 swagger와 관련된 코드를 작성했다
test-board에서 swagger로 이동할 때
git stash
명령어로
지금까지 짰던 코드들을 임시저장해놓았다
swager브랜치에서 작업한 뒤 다시 test-board로 이동해야 하기 때문에 또 git stash 명령어를 썼다
test-board로 이동 후 이전에 임시저장해놓았던 것을 불러와야 했다
어떻게 불러오는 지 몰라서 검색해봤다
https://helloinyong.tistory.com/202
git stash list
명령어로 지금까지 저장했던 리스트를 볼 수 있었다
여기서 저장 기록에 대한 stash ID를 알아내고(stash@{1})
git stash apply 'stash ID'
명령어를 입력해 test-board에서 stash한 기록을 꺼내왔다
어제 팀원분께서 잡아주신 흐름에 대해 이해 안갔던 부분을 이해할 수 있었따
1. dto 유닛테스트
2. 엔티티 유닛테스트
3. 서비스에 있는 메소드 테스트
4. 컨트롤러-서비스-리포지토리 통합테스트
dto 유닛테스트와 엔티티 유닛테스트의 차이점을 몰랐다
팀원분께서 설명해주셨는데
dto 유닛 테스트는 사용자가 입력한 값들을 받아오는 순간
사용자가 입력 조건을 모두 충족했는지 테스트를 해야하는 것이고
엔티티 유닛 테스트는 Service단을 거쳐와 데이터들이 가공된 후
DB에 Insert가 될 조건 && 화면에서 정의한 입력 조건을 모두 충족했는지 테스트를 해야하는 것이라고 하셨다
내가 테스트코드에 대한 지식이 적어서 그런지
팀원분이 왜 이렇게 고민하고 있는 것인지 이해하지 못했다
이젠 이해할 수 있게 되었다..ㅎ
Controller 테스트에서 Dto 테스트도 같이 하는거다
왜냐하면 컨트롤러에서는 사용자가 입력한 값들을 가지고 response가 제대로 오는지 아닌지에 대해 판단만 하는 로직이 있어서
어차피 Dto에 있는 값들로 인해 response가 정해지기 때문에
Controller테스트에서 Dto 테스트도 같이 한다
requestDto는 사용자가 화면에서 입력한 값들이 백엔드 로직으로 전달되어 requestDto가 만들어진 상태(값이 들어있는 상태)로 시작한다
값이 들어있는 requestDto는 가장 먼저 Controller에서 시작하기 때문에
Controller테스트에서 Dto 테스트도 같이 한다
게시판쪽을 다루다보니, 제목과 내용을 입력받을 때 글자수 제한에 대해 신경써야 했다
DB(MySQL8.0)에 들어가야하기 때문에 Byte 제한이 넘어버리면 DB에 들어가지 않기 때문이다
프론트와 얘기를 해서 제목 최대 100, 내용 최대 1000으로 마무리지었다
근데 100과 1000이 Byte기준인지, 글자 수 기준인지 모르겠더라..!
일단 js에서 length 함수를 쓴 기준으로 100과 1000으로 얘기를 끝냈다
그래서 js에서 length함수가 byte기준인지, 글자수 기준인지 알아봐야 했다
https://www.codingfactory.net/10895
ㅋㅋㅋㅋㅋ아 내가 기초가 잘 잡혀있지 않았던건가
위의 상황에서 순간 헷갈렸을 뿐이다...ㅎ
js에서 length()는 글자 개수다
띄어쓰기든, 한글이든, 알파벳 하나이던, 숫자 하나든 무조건 1이다
그 다음 MySQL에서 varchar(숫자)의 '숫자'는 byte기준인지 글자수 기준인지 알아봐야 한다
https://dung-beetle.tistory.com/26
그 전에 한글은 2bytes나 3bytes라는 정도는 알고 있었다
근데 왜 한글 = 2바이트 라는 말도 있고 한글 = 3바이트 라는 말이 있는거지? 라는 의문점이 들었다
위의 글을 보니까 encoding type에 따라 바이트수가 달랐던 것이었다!
결론은 MySQL에서 varchar(숫자)의 '숫자'는 한글이던 숫자던 영어던 글자 수였던 거였다
Java에서도 문자열의 length 함수가 글자수인지 확인해봤다
https://dion-ko.tistory.com/67
역시나 글자수 였다
결론은 프론트에서도 백엔드에서도 DB에서도 글자수만 신경쓰면 된다
'항해99 3기' 카테고리의 다른 글
[TIL] 2021.11.13 최종 프로젝트 진행중 - 피드백 받기 (2) | 2021.11.13 |
---|---|
[TIL] 2021.11.11 최종 프로젝트 진행중 - 브랜치 다루는 방법 (0) | 2021.11.13 |
[TIL] 2021.11.09 최종 프로젝트 진행중 (0) | 2021.11.09 |
[TIL] 2021.11.06 최종 프로젝트 진행중 (0) | 2021.11.06 |
[TIL] 2021.11.04 최종 프로젝트 진행중 (0) | 2021.11.04 |