의존성Dependency = couplingA는 B를 사용하기만 해도 의존한다고 할 수 있음. 의존성 주입Dependecy Injection : 의존성을 약화시키는 테크닉직접 new해서 인스턴스화하는 것이 아니라 외부에서 넣어주는 것.의존성은 완전 제거할 수 없음. (객체나 시스템 간의 협력을 부정하는 것임.)대부분의 디자인 패턴과 설계는 의존성을 낮추기 위해 고민한 결과물인 경우가 많음. 의존성 역전Dependecy Injection(DI) != Dependency Inversion(SOLID-DIP)의존성 역전은 **화살표의 방향을 바꾸는 테크닉**모듈 간의 상하 관계 같은 것도 포함하는 개념상위 모듈은 하위 모듈에 의존해서는 안됨.상위 모듈과 하위 모듈 모두 추상화에 의존해야 함.추상화는 세부 사항..
개념SUTSystem under test : 테스트 하려는 대상 BDDBehaviour driven development (given - when - then)TDD에서 추가로 하는 내용어디에 어떻게 넣을지 고민할 때 도움이 됨.3A (Arrange - Act - Assert) 와 동일시봐도 됨. Interaction Test (상호작용 테스트)대상 함수의 구현을 호출하지 않으면서 그 함수가 어떻게 후출되는지를 검증하는 기법일반적으로 메서드가 실제로 호출되었는지 검증하는 것은 좋은 방법이 아님.캡슐화에 위배됨. 상태 검증 vs 행위 검증상태 검증(state-based-verification)어떤 값을 시스템에 넣었을 때 결과값과 기댓값을 비교 행위 기반 검증(behaviour-based-verificat..
필요성테스트 코드는 왜 필요한가?레거시 코드 : 테스트 루틴이 없는 코드. 다만, 이 정의는 다소 불완전하다.Regression : 정상 동작하던 코드가 이번 배포로 동작하지 않음.수정이 무서워지게 됨.좋은 아키텍처를 유도 좋은 아키텍처란? : SOLIDSOLID와 Test는 서로 상호 보완적인 관계를 갖는다.테스트의 목적은 회귀버그 방지와 좋은 설계SOLID가 지켜지면 좋은 설계가 되고, 이로 인해 회귀 버그가 생기는 것을 막을 수 있다.단일 책임 원칙클래스 하나에 테스트 클래스 하나가 생김.테스트 작성 시 테스트가 많아져 무슨 목적의 클래스인지 눈에 안 들어옴이때가 클래스를 분할해야하는 시점자연스럽게 책임이 분배됨.개방 폐쇄 원칙테스트와 프로덕션 컴포넌트를 나눠 작업하게 되고 필요에 따라 컴포넌트를 ..
테스트란?인수 테스트 : 사람이 직접 사용해 보면서 준비된 체크리스트를 체크자동 테스트 : 미리 짜여진 코드를 돌려서 결과값과 예상값을 비교. DB를 사용하는 경우에는 H2를 활용해 RDB를 InMemory에 잠깐 띄워서 테스트함.@ExtendWith(SpringExtension.class)를 사용해서 테스트용으로 스프링을 띄움 ![img.png](img/002_Using_H2_Test.png) TDD1. RED -> 깨지는 테스트를 먼저 작성한다.일부러 실패하는 테스트를 만듦. (테스트를 돌려서 실패하는 것까지 확인하기.) 2. GREEN깨지는 테스트를 성공시킨다. 3. BLUE리팩토링한다.복잡한 코드에서는 파괴적일 수 있음. 하지만, 이전 단계에서 그린을 확인했으니 상관없음. TDD는 이 과정을 무한..
상황레거시 코드가 많음. 서비스는 운 좋게도 매년 성장했음.개발자가 2배 늘었지만, 개발 속도는 1.2배 정도에 그쳤음.(커뮤니케이션 비용 등) 서비스 장애를 우려해서 배포를 신중하게 했음.회귀 버그가 발생할 가능성이 생겼고, 이를 두려워 하게 됨.회귀 버그 : 잘 동작하는 기능이 다시 버그가 발생하는 상황테스트 자동화 도입으로 회귀 버그를 줄이고자 했음테스트 자동화로 인해 커버리지를 높일 수 있음.외부 API 연동, DB 연동 등 쉽지 않은 테스트 케이스를 마주하게 됨.mockito나 H2를 활용해서 처리함.서비스는 단순한데, 이 단순한 서비스 로직 확인을 위해 테스트를 작성하는 일로 인해 더욱 복잡하게 되어 버림.스프링 부트와 H2를 사용하니 100개가 넘는 테스트를 하는 데 2분이 넘게 걸리게 됨...
1. ❓디프만이란❓공식 카톡홈페이지ㅋㅋ 요약하면 이게 핵심이다디 자이너와프 로그래머가만 났을 때!2. ℹ️모집 정보서류24.04.27 ~ 24.05.04서류 결과24.05.15온라인 면접24.05.18 - 19최종 합격24.05.253. 📝자기소개서1) 지원동기함께 정보를 나누고 교류할 사람들을 만나고 싶었다는 내용과 열정맨들과 개발해 보고 싶다는 내용을 작성했었다.2) 가장 몰입했던 경험과 본인에게 어떤 영향을 주었는지?군대에서 진짜 몰입해서 했던 개발이 있어서 해당 내용을 작성했다. (그냥 6개월? 정도 재수생처럼 살았는데, 지금 생각하면 어떻게 그렇게 살았는지...ㅋㅋㅋㅋ)3) 프로젝트에서 실패한 경험이나 성공적인 마무리를 한 경험과 이유가 무엇이라고 생각하는지?처음 Spring Boot 개발을 ..
- Total
- Today
- Yesterday
- 글또
- 백엔드
- 스터디
- 회고
- server
- 6팀
- 연합 동아리
- 프로그래머스
- 중간발표
- python
- 디프만
- 15기
- 알고리즘
- 인프런
- test
- 육.지.행
- promethus
- 나의 지도
- 해커톤
- 리빙랩
- tdd
- spring boot
- 파이썬
- it 동아리
- 육지행
- 서버
- 10기
- 글로컬
- 후기
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |