본문 바로가기

code-states

[code-states][we-win] 14, 15일차 - testbuild, chai, mocha

 

배운것은 세 가지

1. 내 JS code 들이 잘 돌아가는가

2. 그 code 에 해당하는 test-case 를 dev tool console 을 통해 확인할 수 있는가

3. 그 test case checking 과정을 chai 나 mocha 가 제공하는 testing 기능으로 진행할 수 있는가

였다

물론 볼드 처리 한 3번이 가장 새로운 지식이었고, 오늘의 포인트라고도 생각한다

 

 

 


 

 

 

mocha, chai 로 구현해 본 test case validity checking system

문제의 주제를 대략 적자면

우리가 일상 속에서 흔히 접하는 그 문제

카드 체킹 이다

쿠팡이든, 위메프든, 뱅크 샐러드든, 토스든 간에

우리가 카드 번호를 입력하면

서비스 제공자 측에선 '이 카드가 맞으신가요?' 라고 자동으로 체크해 주는 그 기능

개인적으로 우리에게 와닿을 수 있는 예제이면서도

여태껏 배운 내용 + 추가로 배운 내용을 시험해 볼 수 있는 예제

학습을 돕는 적절한 예제라고 생각했다

 

 

 


 

 

 

 

개괄적인 문제 해결 과정

 

여담인데, 강사님들이 보고 쓰는 웹 기반 화이트보드 프로그램 ZiteBoard(링크, 클릭)

이거도 상당히 쓸만한 물건인 거 같다

먼저 카드사의 규칙을 인지하고, 그 규칙에 따라 함수를 만들었다

그리고 그 함수를 재료로 삼아, chai 와 mocha 를 활용, validity checking system 을 만들었다

 

 

 


 

 

 

 

 

작업 과정, 중간 결과물

 

코드스테이츠 측 의 인강과, chai 의 공식 문서(링크, 클릭), mocha 의 공식 문서(링크, 클릭)

개발하는데 직접적으로 기여한 당사자들이 적은 문서라 신뢰성이 좋다

official documents 를 읽어보는 훈련이 반드시 필요하다고 해서

코드스테이츠 측의 설명을 들어도 이해는 안 가는 부분들을 해결하기 위해

나는 웬만해선 이 내용을 통해서만 해결하려고 노력했다

+

방금 구글링을 해 봤는데, 한국어로 정리한 블로그는 감성 프로그래밍의 Mocha 사용법(링크, 클릭) 이 좋은거같다

이전부터 참 zerocho 블로그와 쌍두마차 격으로 괜찮다는 생각을 해온 블로그였는데

이번 김에 링크를 걸어보려고 한다

저 공식 문서에서 부드럽게 이해가 안가는 부분은

저 감성 프로그래밍 블로그의 포스팅을 정독하고 해결하면 좋지 않을까 한다

 

 

 


 

 

 

 

내가 직접 만들어 본 test case

 

이런 식으로 작성한다

 

 

 

 


 

 

 

 

오늘은 너무 피곤해서 이 정도로 끝내려고 한다...

기본 문제는 애진작에 다 풀었는데

추가로 주어진 심화 문제를 페어와 도전하고 80% 정도 완료 하였다가

그냥 퓨즈가 끊긴것처럼 쓰러져 자 버렸다

추가로, 리팩토링 전이나, 리팩토링 후나, 코드가 너무 스파게티 수준이었다

'이거 Functional programming, 혹은 Array 를 이용하면 더 깔끔하게 풀릴 수 있을 거 같은데!' 라는 생각이 들었으나

왜 그 어줍잖게 복싱이나 그런 것들 배운 사람 실제 길거리 개싸움 가면 머리끄뎅이 잡고 그러는거처럼

나도 막상 같이 코드를 짜보니 개싸움 하는 거마냥 조건문만 죽죽 붙였다

이전 코드, 케이스를 명확하게 나눠놓은 것이 아닌, 조건 안의 조건 식으로 해서 케이스가 마구잡이로 섞여있다

 

이후 코드, 케이스를 명확하게 나눠놓는 것은 성공했으나, 가독성이 심각한 것은 마찬가지이다

 

이런 걸 깔끔하게 써 먹으라고 functional programming 이 있고

array 가 있는 건데

써먹어 보지 않아 아쉽다

주말에 리팩토링 하면서 해당 개념들을 써먹어 보도록 해야겠다

당연히 잘 하고 싶으면, 써 봐야 늘지 않겠는가!

14, 15일차 개발일지, 끝!