분류 전체보기692 [서평] 테스트 주도 개발 - 켄트 벡 저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다. 테스트 주도 개발 테스트 주도 개발은 테스트가 개발을 주도하는 방법이다. 테스트가 개발을 주도한다는 것은 테스트가 코딩의 방향을 이끌어 간다는 말이다. 테스트를 실패하는 코드가 없으면 코딩을 하지 않고 book.naver.com 2022/07/01 ~ 2022/07/20 (예전에 2장까지 읽다 포기한 적이 있었습니다 ㅎㅎ) 1) 책의 표지 2) 단원별 구성 3) 내용 4) 읽은 소감 우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다. Q 이 책을 읽기 전에 필요한 수준/ 지식은? => 일단 TDD 초보자에게는 추천하지 않는다... Life/Book Record 2022. 7. 22. [Spring] 스프링의 3대 요소 (IoC/DI, PSA, AOP) Spring의 핵심적인 요소 3가지가 있다. 이에 대하여 잘 알고 있다 생각했는데, 막상 대답해주려니 생각보다 나의 생각을 전달하기가 어려웠다. 이번 기회에 3대 요소에 대하여 간단하게나마 정리를 해볼까 한다. IoC/DI PSA AOP 1. 공통 프로그래밍 모델 Application을 구성하는 객체(Bean)가 생성되고 동작하는 틀을 제공해줄 뿐만 아니라, 애플리케이션 코드를 어떻게 작성해야 하는지에 대한 기준도 제공한다. 이를 일반적으로 프로그래밍 모델이라고 부르는데, 스프링에서는 크게 3가지 핵심 프로그래밍 모델을 지원한다. 1-1) IoC/DI (제어의 역전/ 의존성 주입) IoC/DI는 객체의 생명주기와 의존 관계를 관리하기 위한 모델이다. ▶ 제어의 역전 IoC(Inversion of Cont.. BackEnd/Spring 2022. 7. 22. [Review] ATDD 2주차 2차 PR 권승철 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 1-1) 일급 컬렉션에 대한 재질문 지난번 대화를 통해 sections을 방어적 복사를 해도, sections에 담긴 원소인 section은 변경의 위험이 있음을 인지하게 되었습니다. 따라서 리뷰어님의 의견을 수용하여 Sections.getSections() 메서드는 제거하였지만, "순서대로 역을 조회하는 기능" 때문에 어차피 역들은 변경의 위험에 있을 수 밖에 없지 않나? 란 생각이 들었습니다. 일급컬렉션은 컬렉션의 불변성만 보장하면 됐던 것 아닐까? 란 생각도 들구요 ㅎㅎ 변경 위험의 노출 정도를 줄였다 생각하면 될까요? 이에 대한 의견이 궁금합니다!! 답변: 1-2) 구간 길이 검증의 불가능 미션의 요구사항 중 다음과 같은 사항이 있습니다... NEXT STEP/Review 정리 2022. 7. 22. [TIL] 일일 회고 2022/07/20 요즘 한 일 1. ATDD 학습 정리하기 https://blogshine.tistory.com/473 [ATDD] 인수 테스트 격리하기 이번 시간 들었던 재미있었던 내용 중 하나로 인수 테스트의 격리 에 대한 내용이 있었다. 재미있었던 내용이기에 간략하게 정리해본다. 1. 인수 테스트의 격리 1-1) Transactional 의 사용? 사실 내가 blogshine.tistory.com https://blogshine.tistory.com/474 [ATDD] 단위 테스트 이번 글에서는 단위 테스트에 대하여 고민해보는 시간이다. 1. 단위 테스트 보통 단위 테스트라는 단어를 들으면 다음과 같은 그림이 떠오른다. 각각의 테스트가 Production Code의 부분 부분들을 검 blogshine.tistory... NEXT STEP/회고록 2022. 7. 20. [Review] ATDD 2주차 1차 PR 권승청 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 1-1) Section의 생성을 어디서? 예를 들어 다음과 같이 section을 추가하는 메서드가 있다고 해봅시다! LineService 내부 @Transactional public void addSection(Long lineId, SectionRequest sectionRequest) { Station upStation = stationService.findById(sectionRequest.getUpStationId()); Station downStation = stationService.findById(sectionRequest.getDownStationId()); Line line = lineRepository.findById(lineI.. NEXT STEP/Review 정리 2022. 7. 19. [백준][C++] 1541번: 잃어버린 괄호 <235> 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 일단 생각보다 잘 안풀렸던 문제... 문자열 파싱이야 쉬운데... 최소의 값을 어떤 방식으로 만들것인가? 이걸 생각 못해서... 다른 블로그의 글을 참고하였다. 생각보다 간단하다, - (음수) 부호 뒤의 모든 수.. Algorithm/백준 2022. 7. 18. [JPA] 일급 컬렉션 1. 일급 컬렉션? 일급 컬렉션은 Collection객체를 감싸면서 다른 필드가 없는 클래스를 의미합니다. 특정 클래스에 List나 Set 같은 Collection 필드로 가지고 있을 때, 이들을 하나의 클래스로 만들어서 사용할 수 있습니다! 일급 컬렉션이라는 단어는 소트웍스 엔소롤지의 객체지향 생활체조 파트에서 언급이 되었습니다. 규칙 8: 일급 콜렉션 사용 이 규칙의 적용은 간단하다. 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 컬렉션과 관련된 동작은 근거지가 마련된 셈이다. 필터가 이 새 클래스의 일부가 됨을 알 수 있다. 필터는 또한 스스로 함수 객체가 될 수 있다. 또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙.. BackEnd/JPA 2022. 7. 17. [ATDD] 단위 테스트 이번 글에서는 단위 테스트에 대하여 고민해보는 시간이다. 1. 단위 테스트 보통 단위 테스트라는 단어를 들으면 다음과 같은 그림이 떠오른다. 각각의 테스트가 Production Code의 부분 부분들을 검증하고 있다. 1) 작은 코드 단위를 검증하며 2) 빠르게 수행 가능하고 3) 격리된 방식으로 처리된다면 단위테스트라 할 수 있을 것이다. (여기서 격리된 방식의 의미가 중요한데, 이는 뒤에서 알아보자!) 이쯤 되서 다음 코드를 살펴보자! 위 테스트는 단위 테스트 일까? 아닐까? 2가지 생각이 가능하다. 1) Station과 Line의 기능 모두를 검증하는 테스트는 단위 테스트가 아니라 통합 테스트 아닌가? 2) 여러 객체가 사용되었지만 구간 추가라는 하나의 기능을 검증하는 테스트이니 단위 테스트 아닌가.. NEXT STEP/ATDD, 클린 코드 with Spring 5기 2022. 7. 16. [ATDD] 인수 테스트 격리하기 이번 시간 들었던 재미있었던 내용 중 하나로 인수 테스트의 격리 에 대한 내용이 있었다. 재미있었던 내용이기에 간략하게 정리해본다. 1. 인수 테스트의 격리 1-1) Transactional 의 사용? 사실 내가 떠오른 맨 처음 방식이기도 하다. 어떤 테스트 코드 A, B, C 가 있을 때, 각각의 테스트 코드가 다른 테스트의 영향을 받지 않으려면 DB 또한 각각이 clean한 상태에서 실행되어야 한다. 하지만 우리의 인수테스트에서는 Transactional을 사용할 수가 없다... 아니, 정확히는 사용할 수 없는것은 아니지만 사용해봤자 의미가 없다. 모든 인수테스트에서 공통적으로 상속하는 Acceptance Class는 다음과 같다. @SpringBootTest(webEnvironment = Sprin.. NEXT STEP/ATDD, 클린 코드 with Spring 5기 2022. 7. 16. [TIL] 일일 회고 2022/07/15 요즘 한 일 1. JUnit 구현하기 요즘 테스트 코드를 작성할 일이 많은 상황인데, 예전에 읽다가 못읽은 켄트 백의 "테스트 주도 개발" 책을 다시 읽을 여유가 생겼다. 따라서 1장과 2장까지 최근 읽게 되었다. 1장의 환율 계산 내용은 TDD의 사상을 알려주려 하는 부분은데, 몸에 적응된 방식의 진행이라 큰 어려움이 없었지만, 2장 xUnit 을 Python으로 구현하는 단원은 진짜 어렵다 생각되었다. 처음에는 단순하게 Python 코드만 읽어가면서 넘어갔는데, 이게 코드만 보면서 하다보니 어느순간부터 이해가 되지 않았다... 따라서 그냥 "Java로 구현해버리자!" 라는 원대한 뜻을 가지고 직접 구현하게 되었다. https://blogshine.tistory.com/469 [TDD] JUnit 만들.. NEXT STEP/회고록 2022. 7. 15. [Review] ATDD 1주차 3차 PR 송용주 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 @BeforeEach void init() { upStationId = 지하철역_생성("강남역").jsonPath().getLong("id"); downStationId = 지하철역_생성("건대입구역").jsonPath().getLong("id"); } @Test @DisplayName("정상적으로 역을 생성하여 기존 노선 끝에 구간을 추가한다") public void addSection() { // given Long lineId = 지하철_노선_생성("2호선", "bg-blue-600", upStationId, downStationId, 10).jsonPath().getLong("id"); Long stationId = 지하철역_생성("성수역.. NEXT STEP/Review 정리 2022. 7. 15. [TDD] JUnit 만들기 - 2 해당 글은 TDD: By Example 책의 2부 내용인 Python으로 xUnit 만들기를 Java 코드로 변경하여 스스로 만든 내용입니다. 총 2개의 글로 작성될 예정입니다. 1. Junit 만들기 1부 2. Junit 만들기 2부 코드 또한 Github에 올려두었으니 확인 가능하십니다! https://github.com/zbqmgldjfh/xUnit GitHub - zbqmgldjfh/xUnit: JUnit 직접 구현하기 JUnit 직접 구현하기. Contribute to zbqmgldjfh/xUnit development by creating an account on GitHub. github.com 이전까지 작성한 TODO list를 보면 다음과 같다. - [x] 테스트 메서드 호출하기 - [x.. BackEnd/TDD 2022. 7. 15. 이전 1 ··· 16 17 18 19 20 21 22 ··· 58 다음