전체보기(316)
-
스프링 테스트 코드 전환기 근황1 (0/0) 발표 자료
https://kok202.tistory.com/331?category=979769 테스트 코드 전환기 시작 (1/3): 테스트가 필요하다 느꼈다. 트로이 목마 트로이 목마에 당했습니다. 실제 데스크탑이 트로이 목마 바이러스에 걸렸다는 의미는 아닙니다. 테스트 문화를 전파하는 너무나 강력한 트로이 목마에 걸렸습니다. 올해 초의 일 kok202.tistory.com 테스트 코드 전환을 하겠다고 말한지 두달 정도가 지났는데, 현재 상황은 어떻고 어떤식으로 진행되고있는지 글을 쓰려합니다. 그 전에 테스트 관련 공부를 하면서 느꼈던 점과, 왜 이런 프로젝트를 진행하고 있는지 회사 동료분들께 소개시켜드리고자 발표를 한번 한적이 있는데요. 이때 발표하면서 쓰였던 자료를 올려봅니다. * 파트내에 공유하는 목적으로 만..
2021.12.03 -
스프링 테스트 코드 전환기 시작 (3/3): 테스트 작성이 왜 어려웠을까
테스트 작성의 어려움 방향도 정했겠다. 단위 테스트는 어떻게 늘려가면 좋을까요? 진짜 간략하게 현재 프로젝트 코드에 대해 설명드리자면 아래와 같이 작성되어 있었습니다. @Service public class ServiceA { @Autowired private RepositoryA repositoryA; @Autowired private RepositoryB repositoryB; @Autowired private RepositoryC repositoryC; public void functionA () { A a = repositoryA.find(); B b = repositoryB.find(); C c = repositoryC.find(); // 정말 간단한 비즈니스 로직 repositoryA.save..
2021.10.10 -
스프링 테스트 코드 전환기 시작 (2/3): 테스트 코드를 어떤 방향으로 짤까
구글에서 말하는 테스트 책이 워낙 방대하니 책에서 말하는 테스트가 필요한 이유를 요약하겠습니다. 요점은 시스템이 확장하는데 테스트가 없다면 수정이 자유롭지 못하게 된다는 것입니다. 테스트 코드가 없다면 이 코드가 어디까지 영향을 줄지 예측할 수 없기 때문에, 개발자들은 코드 한번 수정하는데 소극적이게 됩니다. 그 결과 구글도 2000년대에 구글 웹서버를 확장하기 위해 수 많은 인력을 투입했으나 개발 속도에 진전이 없었다고합니다. 그리고 버그도 크게 줄어들지 않았다고 합니다. 개인적으로 올해 시스템이 커지면서 업무 상에 실수가 많았다고 생각하는데, 상황이 상황이었던지라 이런 대목을 읽으니 크게 공감하였습니다. 구글에서 정의한 테스트의 세 분류 구글에서 정의한 테스트는 크게 3가지로 분류할 수 있습니다. 소..
2021.10.10 -
스프링 테스트 코드 전환기 시작 (1/3): 테스트가 필요하다 느꼈다.
트로이 목마 트로이 목마에 당했습니다. 실제 데스크탑이 트로이 목마 바이러스에 걸렸다는 의미는 아닙니다. 테스트 문화를 전파하는 너무나 강력한 트로이 목마에 걸렸습니다. 올해 초의 일입니다. 회사에 후배님이 신규 입사하셨고, 저희 파트로 배정 받으셨습니다. 저는 후배님에게 현재 작업 중인 프로젝트에대해 설명을 드리며 개발할 내용을 나누었고 코드를 리뷰하고 있었습니다. 그러자 후배님께서 물으셨습니다. "저희는 테스트 코드가 없나요?" 네, 그렇습니다. 부끄럽게도 현재 개발 중인 프로젝트에는 테스트 코드가 거의 없습니다. 변명할 수 있는 이야기는 많지만 적지 않겠습니다. 말그대로 프로젝트 전반에 테스트 코드는 거의 없다고 봐도 무방비합니다. 처음 후배님이 이런 질문을 할 때 여러가지 이유를 들어 이렇게 된 ..
2021.10.10 -
DDD Start! (2/2)
06. 응용 서비스와 표현 영역 표현 영역의 역할 요청을 받은 표현 영역은 URL, 요청 파라미터, 쿠키, 헤더 등을 이용해서 사용자가 어떤 기능을 실행하고 싶어 하는지 판별하고 그 기능을 제공하는 응용 서비스를 실행한다. 표현 영역의 주요 목표는 아래와 같다. 1. 사용자가 시스템과 상호 작용할 수있는 흐름을 제공하고 제어한다. 2. 알맞은 응용 서비스에 전달하고 결과를 사용자에게 제공한다. 3. 세션을 관리한다. 도메인의 핵심로직이 응용 서비스 계층에 구현되어선 안된다. [사견] 현재 프로젝트의 테스트가 어려운 이유: 비즈니스 로직이 전부 서비스 레이어에 있기 때문, 서비스레이어에 있다보니 DB와 강결합 되어있다. 테스트를 위한 완전한 도메인이 어디까지인지 파악이 안되고 서비스 레이어에 있는 비즈니스..
2021.10.02 -
DDD Start! (1/2)
http://www.yes24.com/Product/Goods/27750871 DDD START! - YES24 DDD의 핵심 개념을 배우고 구현으로 익히기!이 책은 DDD(도메인 주도 설계)를 처음 접하는 개발자를 위한 책이다. DDD를 실제 업무에 적용할 수 있도록 기본적인 이론을 설명하고 이를 구현한 코드 www.yes24.com https://github.com/madvirus/ddd-start GitHub - madvirus/ddd-start Contribute to madvirus/ddd-start development by creating an account on GitHub. github.com 01. 도메인 모델 시작 도메인 모델의 아키텍처 구성 - 표현 계층: Controller - 응..
2021.10.02