분류 전체보기
-
숫자야구게임 구현(2) - 요구사항 작성, TDD 적용공부/자바 플레이그라운드 with TDD, 클린코드 2022. 2. 16. 22:33
SI업무를 할 때 ProductionCode 를 먼저 작성하는것뿐만 아니라 TestCode는 매번 Controller 호출하기 싫어서 Service 메서드 호출하는 값만 확인하는 용도로 썼었다. 정말 우물안 개구리라는걸 절실히 느꼈다. 또한 Intellij를 사용하니 TDD방법론을 적용하면서 역으로 TestCode -> ProductionCode 만드는 것이 놀랍도록 쉬워서 이젠 Eclipse도 떠나보낼 때가 온 것같다.. github 요구사항 분석 #기능 요구 사항 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다. Ball BallPosition position BallNumber num [ ✔ ] 1 ~ 9 숫자범위 BallNumber.validateNumber Bal..
-
숫자야구게임 구현(1)공부/자바 플레이그라운드 with TDD, 클린코드 2022. 2. 13. 20:25
TDD가 익숙치 않아 프로덕션 코드를 구현하고 단위 테스트를 적용시켜 버렸다.. 숫자야구게임 피드백을 보고 다시 구현할 것이다. BaseBallGameTest public class BaseBallGameTest { @ParameterizedTest @CsvSource({ "845,낫싱", "891,1볼", "137,포볼", "123,1볼 1스트라이크", "723,2스트라이크", "713,3개의 숫자를 모두 맞히셨습니다! 게임 종료" }) void baseBallGameCoreTest(String input, String expected) throws Exception { BaseBallGameCore bbgc = new BaseBallGameCore("713"); bbgc.calc(input); ass..
-
단위 테스트 실습 - 문자열 계산기공부/자바 플레이그라운드 with TDD, 클린코드 2022. 2. 13. 17:15
github 테스트 코드 public class StringCalculatorTest { @ParameterizedTest @CsvSource({ "1 + 2,3", "3 * 5,15", "10 / 5,2", "2 + 3 * 4 / 2,10", "5,5" }) @DisplayName("문자열로 들어온 계산식 테스트") void execute(String str, int expectedResult) throws Throwable { assertThat(new StringCalculator(str).parse().calc()).isEqualTo(expectedResult); } static Stream exceptionTestParameters() { return Stream.of( Arguments.of(..
-
객체 지향 생활 체조 원칙공부/자바 플레이그라운드 with TDD, 클린코드 2022. 2. 3. 23:53
너무 혼자 구글 검색과 디버그를 통해 공부해왔다. 그로인해 시간이 너무 많이 걸리고, 혼자만의 생각에 빠지는 듯 하다. 다른사람의 지식을 돈으로사서 시간도 아끼고 다른사람의 생각도 알아보자. 독학을 통해 단편적인 지식만 가지고있어서, 제대로 한번 배워보고자 한다. 자바 플레이그라운드 with TDD, 클린코드 객체 지향 생활 체조 원칙 한 메서드에 오직 한 단계의 들여쓰기만 한다. else 예약어를 쓰지 않는다. 모든 원시 값과 문자열을 포장한다. 한 줄에 점을 하나만 찍는다. 줄여 쓰지 않는다(축약 금지). 모든 엔티티를 작게 유지한다. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다. 일급 컬렉션을 쓴다. getter/setter/프로퍼티를 쓰지 않는다.
-
[QueryDsl] QEntity 연관관계 초기화 2Depth 이상 적용시키기개발/Spring Boot 2021. 10. 1. 18:19
https://querydsl.com/static/querydsl/4.2.1/reference/html/ch03s03.html#d0e2181 3.3. Code generation The Java 6 APT annotation processing functionality is used in Querydsl for code generation in the JPA, JDO and Mongodb modules. This section describes various configuration options for the code generation and an alternative to APT usage. 3.3.1. Path initi querydsl.com By default Querydsl initializ..
-
Mybatis Interceptor 자동 Paging처리 사용방법개발/Spring Boot 2021. 4. 24. 13:53
Github 소스코드보기 Notion으로 보는것을 추천 Mybatis Interceptor 자동 Paging처리 만들기(1) 바로가기 Mybatis Interceptor 자동 Paging처리 만들기(2) 바로가기 ♣️미리보기 H2 Database Table Data HTTP GET 통신 return 값 { "list": [ { "num": 1, "id": "test1", "pw": "test1", "name": "테스트1" }, { "num": 2, "id": "test2", "pw": "test2", "name": "테스트2" } ], "pageInfo": { "page": 1, "size": 2, "totalCount": 3 } } ♦ Controller 매개변수 PageInfo 상속 @RestCon..
-
Mybatis Interceptor 자동 Paging처리 만들기(2)개발/Spring Boot 2021. 4. 20. 17:44
Github 소스코드보기 Notion으로 보는것을 추천 Mybatis Interceptor 자동 Paging처리 만들기(1) 바로가기 ⚫Interceptors PrepareInterceptor @Override public Object intercept(Invocation invocation) throws Throwable { try { StatementHandler statementHandler = (StatementHandler) invocation.getTarget(); MetaObject metaStatementHandler = MetaObject.forObject(statementHandler, DEFAULT_OBJECT_FACTORY, DEFAULT_OBJECT_WRAPPER_FACTORY, ..
-
Mybatis Interceptor 자동 Paging처리 만들기(1)개발/Spring Boot 2021. 4. 19. 17:09
Github(https://github.com/rldhks8745/spring-boot-practice) Notion(https://www.notion.so/Mybatis-Interceptor-Paging-35a3e8b167ad47eca25acb56f1fb9795) - Notion Base로 작성된 글이기 때문에 Notion으로 보시기를 추천드립니다. Mybatis Interceptor 자동 Paging처리 만들기(2) 바로가기 ♣️미리보기 H2 Database Table Data HTTP GET 통신 return 값 { "list": [ { "num": 1, "id": "test1", "pw": "test1", "name": "테스트1" }, { "num": 2, "id": "test2", "pw": ..