개발45 준비 01 - gradle build failed (No tests found) 환경 macos catalina intellij idea ultimate gradlew 4.10.3 JUnit 5 intellij에서 테스트 코드를 실행 (cmd + R) 하였으나 테스트를 찾지 못했다는 에러가 나오는 상황 에러 Testing started at 12:25 오전 ... > Task :cleanTest > Task :compileJava NO-SOURCE > Task :processResources NO-SOURCE > Task :classes UP-TO-DATE > Task :compileTestJava UP-TO-DATE > Task :processTestResources NO-SOURCE > Task :testClasses UP-TO-DATE > Task :test FAILED FAI.. 2020. 3. 12. 토비의 스프링을 읽고 막 적어보자 (4) 191024 테스트 없이는 스프링도 없다. 스프링도 테스트를 만들어가며 개발됐다. 코드에 변경사항이 없다면 테스트도 동일한 결과를 내야 한다. DB 중복 값 에러 등 외부 상태에 따라 성공/실패하면 안 된다. 스프링의 창시자인 로드 존슨은 "항상 네거티브 테스트를 먼저 만들라"는 조언을 했다. 나는 잘 되던데? 는 변명이다. 테스트 코드는 잘 작성된 기능 정의서이다. 코드로 된 설계문서를 만든다고 생각하자. 실패하는 테스트를 먼저 만들고, 테스트를 성공하게 하는 코드를 작성하는 방식의 개발 방법을 "테스트 주도 개발, TDD, Test Driven Development"라고 한다. 실패한 테스트를 성공시키기 위한 목적이 아닌 코드는 만들지 않는다. 테스트는 작성한 후 가능한 한 빨리 실행할 수 있어야 한.. 2019. 10. 25. 토비의 스프링을 읽고 막 적어보자 (2) 191021 빈 스프링이 IoC 방식으로 관리하는 오브젝트 모든 오브젝트가 빈인건 아니다. 스프링이 관리하는 오브젝트만을 칭함 빈 팩토리 말 그대로 빈을 생성, 등록, 조회 등등의 빈 관리. 바로 사용하지 않고 이를 확장한 어플리케이션 콘텍스트를 사용 어플리케이션 콘텍스트 빈 팩토리를 확장한 IoC 컨테이너. 빈 팩토리라고 부를때는 주로 빈의 생성, 제어의 관점이고 애플리케이션 콘텍스트의 경우 스프링이 제공하는 지원 기능을 모두 포함하여 이야기하는 것. 빈팩토리를 상속함. 설정 정보 (configuration metadata) 스프링의 설정정보란 애플리케이션 컨텍스트 또는 빈팩토리가 IoC를 적용하기 위해 사용하는 메타 정보. 형상정보, 청사진. 컨테이너 (IoC 컨테이너) 컨테이너라는 말 자체가 IoC.. 2019. 10. 22. 토비의 스프링을 읽고 막 적어보자 (1) 191018 어떻게 적용할 것인가를 항상 생각하며 읽을 것. 남에게 설명할 수 있기 전까지는 안다고 할 수 없다. 스프링 부트를 맛보니 스프링 실력이 모자라다고 느꼈다. 1. 개방 폐쇄 원칙. OCP Open Close Principle 클래스나 모듈은 확장에는 열려있어야 하고 수정에는 닫혀있어야 한다. 2. 단일 책임 원칙. SRP Single Responsibility Principle 하나의 클래스는 하나의 책임만 가진다. 3. 리스코프 치환 원칙 LSP Liskov Subsitution Priciple 4. ISP Interface Segregation Principle 5. DIP Dependency Inversion Principle 전략 패턴. 스프링은 객체지향적 설계 원칙과 디자인 패턴에 .. 2019. 10. 18. Spring 자주 사용하는 유효성 검사 어노테이션 (@Valid, @NotNull, @NotEmpty, @NotBlank...) '내가' 자주 사용하는 어노테이션 이제서야 쓰기 시작했다. DTO로 request를 받을 때 귀찮게 검사하지 말고 쓰자! (docs를 잘 읽자) public class User { @Min(0) private int id; @Max(20) private int age; @NotBlank private String name; @NotNull private int level; .... ... getter ... ... setter ... } @Min, @Max 보이는 바와 같이 최소값, 최대값을 설정 @NotNull 변수가 Null이 될 수 없다. @NotEmpty 빈 값("")이 될 수 없다. @NotBlank trim했을때 Empty이면 안된다. 공백(" ")만 있는 문자열을 받지 못한다. @NotNul.. 2019. 9. 9. Spring @Valid, @Validated 결론부터 말하자면 차이가 없다고 한다. @Valid는 JSR-303, @Validated는 스프링의 어노테이션이라고 한다. @Inejct와 @Autowired같은 느낌인가? 스프링 부트 docs에 보면 @ConfigurationProperties에 @Validated 어노테이션을 추가로 작성하는데 이와 관련된 부분은 추후 확인이 필요할듯. group으로 유효성 검사를 하는 경우 @Validated를 사용해야 한다는데 잘 모르겠다. 참조 https://stackoverflow.com/questions/44051244/valid-vs-validated-in-spring-boot-rest-api-requestbody https://docs.spring.io/spring-boot/docs/2.1.8.RELEAS.. 2019. 9. 9. 찰떡이 되고싶다 개떡같이 말해도 찰떡같이 알아듣고 찰떡같이 말하고 싶다. 2019. 9. 5. Intellij IDEA에서 Spring Legacy 프로젝트 생성하기 Intellij IDEA Ultimate 2019.2.1 버전을 사용했음. New Project 여기까지 하면 일단 메이븐 프로젝트가 생성이 완료된다. 프로젝트 우클릭 후 add framework support 아래와 같은 구조가 자동으로 생성된다. 컨트롤러 만들어주기 package me.ps5.test; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController class TestController { @GetMapping("/") public String test() { return "HELLO"; } } appli.. 2019. 8. 27. 습관에 대해 습관을 만들고 싶다면 꾸준히 반복해야 한다. 습관을 길들이는데에 얼마나 시간이 필요한지 검색해봤다. 역시나 인생은 케바케 사바사 사람마다 다르다네. 이번이 블로그 시작 3회차이다. 세번째 도전만큼은 습관으로 만들고 지식을 쌓고 억지로 하지 말자. 한달만 잘해보자! 하다보면 잘하겠지! 2019. 8. 26. 이전 1 2 3 4 5 다음