티스토리 뷰
1. TDD&클린아키텍쳐
- 5주 동안 진행
2. 대용량 트래픽 & 데이터 처리
3. 장애 대응
프로젝트를 보내줄 거고,
그걸 진행하면 됌
서버는 직접 구축해서 진행하게 될 것 이다.
------
TDD는 왜 중요한가
- 이 전에는 완벽한 설계를 통해서 피처개발에 집중했다면, 장애가 날 수 있음을 인정하고
장애를 허용하는 방법론이 제시가 된다. 유지보수시 대응이 가능할 방법
- 프로그램이 복잡해짐으로 디도스공격, 유저가 어떻게 사용할지가 예측이 안되기 때문
- 기존 찍어내기 식의 개발로는 소프트웨어의 품질을 올릴 수 없다.
- 장애의 시그널을 찍을 수 없었기 때문에, 테스트가 필요해 진다.
- 테스트코드와 테스트드리븐는 다른 것
- 현업에서 TDD란?
-백엔드 개발자로서 요구사항을 분석하고 올바르게 완성하기 위한 TC를 작성하는 방법을 익힌다.
- TC가 뭐지 테스트 케이스?
End-to-end testing
- API 부터 DB까지 테스트
Intergration testing
- 서로 다른 모듈의 상호작용을 테스트 함,
Unit testing - 하나의 클래스를 테스트
- 단일 기능, 행위에 대한 테스트
- 가벼운 비용, 함수/객체 등
Test Double (대역 개념)
- 실제 컴포넌트에 대해 행동을 모방하고, 이를 통해 기존의 강한 결합도를 낮추고 테스트 중 제어 가능하도록함
ㄴMock
>테스트를 위해 특정 기능에 대해 정해진 응답을 제공하는 객체
ㄴStub
> 테스트에 필요한 호출에 대해 미리 준비된 응답을 제공하는 객체
> 입력에 대해 어떤 상태를 반영하는 지에 초점을 맞춘 객체
- Testable Code
> 모든 코드를 테스트 가능하게 구현하는 것을 목표로 진행합니다.
> private..
given
when
then 형태로 쓰는 것이 좋다.
클린 아키텍처
coupling이라는게 있다.
tight와 Loose Coupling가 있다.
우리는
controller - DTO
Service - Domin
repository - Entity
레이어 별로 진행해야 한다.
레이어아키텍처의 핵심은 단방향 참조이다.
4L
//controller layer
UserController.java(kt, ts)
//application layer
UserService.java(kt, ts)
//domain layer
User(userEntity).java(kt, ts)
// infra layer
UserRepository.java(interface)
UserRepositoryImple.java
//왜 서비스는 임플이 아닐까
과제 제출은 pr 형태로 한다. (코치 분들이 코드리뷰 예정)
pr을 만드실 때 어떤 부분들이 고민되고 봐줬으면 좋겠는지 작성하기
PR내용에 비지니스 로직 이외의 프로젝트 init이라든가..포함x (핵심 로직만 PR로 만들어 주세요.)
E2E <- 필수까진 아니지만, 컨트롤러 테스트를 작성하라는 의미
컨ㅌ롤러 테스트 하기
동시성 처리**** 필수
- Total
- Today
- Yesterday
- 향해플러스
- React
- react실행
- 스프링부트
- 로그인
- jpa api
- SpringBoot
- thymleaf
- HTTP
- filter
- 항해99
- 백엔드 개발자 역량
- exception
- 예외처리
- BindingResult
- hypertexttransferprotocol
- 리터럴
- 스프링공부
- 컨트
- 향해99
- 항해플러스
- reject
- 백엔드 개발자 공부
- JPA
- Intercepter
- ArgumentResolver
- 인터셉터
- rejectValue
- Java
- 향해플러스백엔드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |