Java PlayGround NEXTSTEP 자바 플레이그라운드 with TDD, 클린 코드에서 새롭게 배우고 깨닫게 된 내용들을 기록한 글입니다. . Part01. 단위테스트, TDD . 시작 소트웍스 앤솔러지에서 말하는 객체 지향 프로그래밍을 잘하기 위한 9가지 원칙 한 메서드에서 오직 한 단계의 들여쓰기만 허용하자 else 예약어를 사용하지 말자. 모든 원시 값과 문자열을 포장하자. 한 줄에 점을 하나만 찍자. 축약과 같이 줄여 사용하지 말자. 모든 엔티티를 작게 유지하자. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 말자. 일급 컬렉션을 사용하자. getter/setter/프로퍼티를 사용하지 말자. 단위 테스트 JUnit는 프로덕션 코드를 편리하게 테스트할 수 있도록 도와준다. JUnit 5...
JUnit 5 Parameterized Tests Guide to JUnit 5 Parameterized Tests를 통해 Parameterized Test를 학습하며 정리한 글입니다. . 테스트 코드는 만들었는데 여러 값으로 테스트를 해보고 싶은 적이 있지 않은가?! 😯 코드가 중복되는 건 싫은데.. . 그렇다면 Parameterized Test를 사용해볼 때이다.🕵 Parameterized Test는 서로 다른 인수로 동일한 테스트를 여러 번 실행해볼 수 있는 유용한 기능이다. 일반 테스트와 다른 점은 @ParameterizedTest를 사용하는 것과 @ValueSource에 인수를 정의해주는 것뿐! Dependencies pom.xml org.junit.jupiter junit-jupiter-par..
Java Code Conventions 코드를 작성하면서 대부분 이런 고민을 해보았을 것이다. "여기를 띄어 써야 깔끔할까?", "여기는 줄 바꿈을 해야 깔끔할까?" 등등.. 맞춤법이 틀린 것 처럼 코드가 찝찝하게 느껴진 적이 있지 않은가!! . 그렇다면.. 코우드 컨붼션(Code Conventions)이 필요한 때이다. ✏✏✏ . Google Java Style Guide 를 읽어보면서 참고할만한 내용만 간략하게 정리해 보았다. 캠퍼스 핵데이 Java 코딩 컨벤션 도 참고해보면 좋을 듯하다. . 추가로 Code Convention에 참고가 될만한 Clean Code 내용들을 간략하게 남겨보았다. Source File 모든 소스 파일은 UTF-8로 인코딩하기 Unix는 새 줄 문자를 LF(Line Fee..
Introduction to AssertJ dependencies dependencies { testImplementation "org.junit.jupiter:junit-jupiter" testImplementation "org.assertj:assertj-core" } single static import를 통해 test class를 쉽게 추가할 수 있다. import static org.assertj.core.api.Assertions.*; 참고로, assertThat() 메서드만으로는 아무것도 증명할 수 없다. 증명의 대상을 설정하는 정도로 생각하면 좋을 것 같다. assertThat(anything); Object isEqualTo() 메서드는 객체의 참조를 비교한다. 따라서, 객체의 필드를 비..
[우아한 Tech] 우아한 ATDD 2021년 3월에 진행된 우아한 테크 세미나에서 류성현님의 '우아한 ATDD' 스트리밍 영상을 보고 정리한 내용입니다. ATDD(인수 테스트 주도 개발)는 요구사항에 대한 인수 테스트를 이용하여 요구사항을 명확히 하고 모든 팀원이 요구사항에 대한 공통의 이해를 바탕으로 개발을 진행하는 방법. TEST vs TDD TEST : 구현 -> 테스트(검증) like 일기 TDD : 테스트(요구사항) -> 구현 + @ like TODO List BDD : 행위(요구사항) -> 구현 ATDD : 인수 테스트(요구사항) -> 인수 테스트 -> 구현 ...(요구사항) - User Story 1. 논의 - Discuss - 기획/개발/QA 함께 인수 조건 회의 참여 - ..
| Spring Boot Project 시작 전에..\sts-bundle\sts-3.9.14.RELEASE\STS.ini 파일을 열고하단에 인코딩 설정을 추가해주자. -Dfile.encoding=utf-8 // 대략적인 순서(?)는1. 프로젝트 생성2. DTO 생성3. mybatis 설정파일 배치3-1. type alias 및 mapper 설정 추가4. mapper scan 처리5. mapper xml 파일 편집5-1. name space는 Repo Interface 활용6. 테스트 실행7. 서비스 생성 및 테스트8. Controller 생성 || Lombok Setting DTO 자동완성.[Spring-Boot] Lombok을 사용해보자. || Spring Boot Setting [Spring-Boot..
| REST API 문서화? FE 개발자의 경우 화면과 로직에 집중하고,BE 개발자가 만든 무서 API를 보며 데이터 처리를 하게 되는데... 이때 개발 상황의 변화에 따른 API의 추가 or 변경할 때마다문서에 적용하는 불편함을 해결하기 위해 Swagger를 사용 Swagger ??는 API 목록을 웹에서 확인 및 테스트할 수 있게 도와주는 Library이다.Controller에 정의된 모든 URL을 확인할 뿐만 아니라목록, 명세 및 설명, 테스트까지 가능하다. || Swagger 적용 Swagger를 사용하기 위해먼저 pom.xml 에 springfox-swagger2springfox-swagger-uidependency를 추가해주어야 한다. /pom.xml123456789101112 io.sprin..
.입출력 .입출력- BufferedReader1234567BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int T = Integer.parseInt(br.readLine()); // intString str = br.readLine(); // string StringTokenizer st = new StringTokenizer(br.readLine());int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); Colored by Color Scriptercs - Scanner123Scanner sc = new Scanner(Sys..