지난 시간 복습
지역변수와 전역변수 중 지역변수를 선호한다. 왜냐하면 전역변수를 사용하게 되면 디버깅의 어려움 생긴다. 그렇기에 전역변수의 경우 필요하지 않으면 최대한 사용하지 않는다.
개발 툴의 경우 프로젝트 크기에 따라 다르게 사용한다.
오늘은 테스트에 관련해 이야기를 해보자.
무엇을 테스트 할 것인가?
UI의 경우 테스트가 필요 없다. why? UI는 테스트하는 환경에 따라 바뀌는 부분이 많기도 하고, 다른 도구(storybook)로 테스트가 가능하다.
렌더링 순서를 고려해야 하나? 특별한 경우가 아니고서야 개발을 하면서 렌더링 순서를 고려할 필요 없다. 왜냐하면 사용자가 일반적으로 사용할 때 전체 화면에서 어떤 것이 먼저 그려지길 바라는 경우가 드물다.
그렇기에 테스트를 하는 경우, 우리가 중요하게 고려할 사항은 '사용자 시나리오'와 '기능'을 중심으로 고려하면 된다. 시나리오는 우리가 상황에 따라 어떻게 테스트를 진행할 것인지에 대한 테스트 케이스라고도 생각할 수 있다.
테스트를 고려할 때의 주의사항은 테스트를 위한 테스트는 하지 않는다.(아직 잘 이해가 부족한 부분)
프론트엔드에서 유닛테스트와 통합테스트의 경계가 모호하다(by. 강사). 왜냐하면 기능하나를 검사하기 위해서는 유닛테스트만을 진행하기가 어려운 상황이 존재하기 때문이다.
어떻게 테스트를 진행할 것인가?
테스트 코드를 작성하는 여러 조건들 이다.
- given(환경) - when(조건) - then(결과)
- true or false
- 결과값을 expectation과 비교
- 한번에 하나씩 테스트하기(로그인에도 로그인 성공, 로그인 실패를 각각)
단위 테스트 : 가장 작은 단위 테스트. ex) 컴포넌트, 함수 등의 테스트.
통합 테스트 : 여러 컴포넌트나 모듈 테스트.
위 두 테스트의 경우 jest 사용(react-testing-library와 같이 사용).
E2E 테스트 : 사용자 관점 테스트. cypress(with cypress studio).
Q. E2E테스트를 프론트에서 진행하게되면 너무 많은 테스트 케이스를 고려해야되는거 아닌가요?
A. 테스트를 위한 테스트를 제거하고 최소한으로 적절한 테스트만 진행.
mocking은 HTTP Request나 서드파티에 의존하는 경우에 주로 사용한다.
TDD의 경우 프론트 입장에서 시간을 너무 오래 사용하는 개발 방법인 듯 싶다.(by. 강사)
아하 모먼트 - 면접에 대비 조언
무엇을 공부해야 하는가?
- 채용 공고 살펴보기.
- 최신동향 파악
기술면접 대비?
- 프로그래머스
- leetcode
- 면접 스터디
+a) 깃 사용방식
-feature/login
1. 이메일 인풋 만들고 커밋
2. 비밀번호 인풋 만들고 커밋
3. 로그인 버튼 만들고 커밋
4. 리베이스 > push > pr > merge
-feature/login
다시 git pull
1. 비즈니스 로직 구현
2. 커밋 > push > pr > merge
기타
msw, playwright(다양한 브라우저 환경 테스트), nock, the vc, sentry, MVVM 모바일
https://fe-developers.kakaoent.com/2022/220505-how-page-part-use-atomic-design-system/ https://www.youtube.com/watch?v=ifGUz43GjdQ
https://github.com/sendbird/quickstart-calls-reactjs (아키텍처 참고)
학습 : 2024.01.04
느낀점 : 1월 강의는 질문이 많은 사람에게 좋은 강의였다.
'개발' 카테고리의 다른 글
프리온보딩 4회차 1월 (0) | 2024.01.12 |
---|---|
프리온보딩 3회차 1월 (0) | 2024.01.10 |
프리온보딩 1회차 1월 (0) | 2024.01.05 |
프리온보딩 프론트엔드 4회차 (0) | 2024.01.05 |
프리온보딩 프론트엔드 3회차 (0) | 2023.12.13 |