
워밍업 클럽 3기 BE 클린코드&테스트 - 3주차 발자국
📖 강의 요약
통합 테스트
여러 모듈이 협력하는 기능을 통합적으로 검증하는 테스트
일반적으로 작은 범위의 단위 테스트만으로는 기능 전체의 신뢰성을 보장 할 수 없다,
풍부한 단위테스트 & 큰 기능 단위를 검증하는 통합 테스트
ORM
객체 지향 패러다임과 관계형 DB 패러다임의 불일치
ORM을 사용함으로써 개발자는 단순 작업을 줄이고, 비즈니스 로직에 집중할 수 있다.
Persistence Layer
Data Access의 역할
비즈니스 가공 로직이 포함 되어서는 안된다. Data에 대한 CRUD에만 집중한 레이어
Business Layer
비즈니스 로직을 구현하는 역할
Persistence Layer와의 상호 작용 (Data를 읽고 쓰는 행위)을 통해 비즈니스 로직을 전개 시킨다.
트랜잭션을 보장해야 한다.
Presentation Layer
외부 세게의 요청을 가장 먼저 받는 계층
파라미터에 대한 최소한의 검증
!! CQRS (Command and Query Responsibility Segregation)
데이터 저장소로 부터 읽기와 업데이트 작업을 분리하는 패턴
= Command와 Query 를 분리 하기
💡 미션
[Readable Code] 강의의 두 프로젝트(지뢰찾기, 스터디카페) 중 하나를 골라, 단위 테스트를 작성해 봅시다.
미션 제출 url : https://github.com/2unmini/readable-code/tree/mission/day11
최대한 테스트 코드를 작성할때 현재 코드를 건드리지 않고 짤려고 했다 하지만 final Scanner 부분에서 문제가 발생했다 . 현재 코드는 각각의 테스트는돌아가지만 전체 테스트를 할때는 통과하지 못하지만 Scanner를 상수로 두지 않고 기존 코드를 변경한다면 테스트 코드도 성공적으로 잘 돌아갈 것이다.
💬 회고
👍 테스트에 관한 옛날에 대한 나의 생각
나에게 테스트는 란 1+1 =2 처럼 이미 결과가 도출 되어있는 상황인데 테스트 코드를 작성 할 필요가 있을 까? 라는 의문 투성이 밖에 없었다. 정답은 아닐지는 모르지만 강의와 스터디를 통해 왜 테스트 코드를 작성해야 하는가를 어느 정도 이해를 하게 되는 것 같았다. 나만 1+1 =2 라고는 생각해도 이걸 뒤 받침해 줄 근거 및 신뢰성을 높이려면 테스트 코드가 필요해야 겠다.
📎출처
Practical Testing: 실용적인 테스트 가이
댓글을 작성해보세요.