프론트엔드 개발자가 되기위한 여정 -35

이정우·2022년 10월 21일
0

frontend-bootcamp

목록 보기
37/60

밸!하~

밸로그 여러분 안녕하세요!!

오늘은 테스트 코드 작성법에 대해서 이야기를 드리겠습니다

개발자가 되기 희망하신 분들이라면
한번쯤을 들어보셨을 단어 테스트 코드
과연 테스트코드가 무엇이고 어떻게 작성하는가 그리고 이것이 왜 중요한지
알아볼수있도록 하겠습니다

그럼 테스트라는것은 무엇일까요?

테스트란?

쉽게 말해

마우스로 클릭하는것을 대신 해주는것입니다!
이런 생각이 드실수도 있겠네요
마우스로 하면 되는것을 왜 궂이 코드를 작성해서 하는가?

한번 생각해봅시다
기존서비스에 업데이트를 제공한다고 했을때
어떨까요??

기존에 서비스를 하던 페이지가 있다고 해봅시다
이 서비스에 신규 기능을 한개 추가하기위해
여러 테스트를 진행했다고 가정했습니다
이후 업데이트본을 배포를 했는데
기존에 진행하던 페이지에서 에러가 발생을했다고 가정을 해보겠습니다

이유가 새로운 기능에 들어가있는 코드와 기존에 있는 코드와 충돌이 일어나서 기존에 있던 페이지가 에러가 발생을 합니다
여기서 문제!

과연 기존에 배포했던 기능한개에만 에러가있는것일까요??

처음 배포했을때 여러가지의 기능을 넣은 페이지를 배포를 했을것입니다
한개의 기능만 문제가있는것이 아니라 다른 기능들도 에러가 있을것이라는 가능성이 생기죠

이때 기존에 배포하던것 하나하나 다 확인을 해야한다는거죠
단순히 이럴떄에도 다 테스트를 돌리고 유지보수를 했다고 해봅시다
이 에러가 다 해결이 됬어요!

그런데... 새로운 기능을 또 추가 한다고 한다면 어떨까요??

한개의 기능을 추가하는데 기존에 했던 영역을 다 다시 테스트를 해봐야하는데
새로운 기능이 지속적으로 추가가 된다면 추가적으로 테스트를 사람이 하기에는 어려움이 있겠죠??

그래서 나온게 바로
테스트 코드입니다!

이러한 모든 에러들을 모아서 컴퓨터가 읽을수 있게 한다면은?
유지보수하는데 사람이 한개한개 다 볼필요 없이
에러가 발생하는 부분만 볼수 있겠죠?
그럼 훨씬 유지보수가 편리하겠죠 !

바로 이러한 의미로
테스트 코드를 작성하는 것입니다

그러면 테스트코드는 어떤 프로그램을 사용해서 만들까요??

여러가지 테스트 방법이 있습니다
1.단위테스트
2.통합테스트
3.E2E테스트 등이있습니다 (end to end)

그중 오늘 소개드릴 프로그램은
jest라는 프로그램입니다!

이 jest라는 프로그램은 단위테스트,통합테스트를 할수 있습니다
그럼 E2E 테스트는요?
이것은 브라우저에서 진행하는 Cypress를 통해서 할수가 있습니다

테스트가 나왔으니 이어서 정규표현식을 한번 봐볼까요??

정규표현식이란?

먼저 사전적인 의미부터 봐볼까요??
사전적인 의미로는
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식언어입니다!

테스트 이야기를 하는데 왜 정규표현식이 나오냐고요?

그이유는 바로 정규표현식이 검증을 할때 주로 사용되기 때문입니다
즉 어떤값을 정규표현식을 사용해서 걸러줄수 있다는것이지요

또한 어떤장점이 있을까요?
바로
정규표현식을 사용하면 길던 코드가 간단히 줄어들수도 있습니다
단점은
극명한데요
바로 정규표현식에 대해서 알지못한다면 코드의 이해가 어렵다는것입니다

그럼 이 정규표현식이 무엇인지 한번 알아볼까요?

정규표현식에는 2가지 방법이 대표적입니다
표준방법인
POSIX정규표현식과
Perl방식의 PCRE가 대표적입니다

정규표현식에서 사용하는 기호를 Meta문자라고 합니다
Meta 문자는 표현식 내부에서 특정한 의미를 갖는 문자를 의미하며 공통적인 기본 Meta의 종류가 몇가지 있는데

이것은 다른 블로그에 잘 정리된 글이 있어서 링크를 공유드리겠습니다

https://www.nextree.co.kr/p4327/

자 이렇게 대표적인 정규표현식의 사용법과 실제 적용하는 법에대해서 알아보았으니
이제는 어느정도 적용할수있겠죠?

비록 지금 당장 한번에 알기는 어렵겠지만
조금씩 공부하다보면 정규표현식도 저희가 코딩하던것처럼 능숙하게 사용할수 있겠죠??

그럼 오늘도 지식 한개 쌓아가봐요!

그럼 이만

밸!바~

profile
주니어 프론트엔드 개발자

0개의 댓글