본문 바로가기

학습/Java15

[java] 테스트를 도와주는 JUnit / assertJ / h2 책1을 실습하는 스프링 부트 프로젝트에선 Spring Boot 2.1.7 버전을 사용했다. JUnit 1. 자바의 대표적인 Testing Framework (Mocha나 Jest 생각하면 될 듯) 2. 다양한 언어를 지원하는 xUnit의 자바 버전 3. JUnit5까지 나왔지만, 대부분의 회사에서 JUnit4로 테스트 4. spring-boot-starter-test를 의존성에 추가하면 JUnit을 사용할 수 있다. -> Before 2.2.0: JUnit 4 포함 -> From 2.2.0: JUnit 5 포함 JUnit의 유용한 메소드 및 어노테이션 setUp() - 테스트 대상 클래스 실행 전, 가장 먼저 setUp()을 실행한다. (네트워크 연결, DB 커넥션 등) tearDown() - 테스트 대.. 2020. 2. 9.
[java] @Entity와 @Builder Entity와 Repository - ★ Entity클래스와 Entity Repository는 같은 패키지에 위치해야 함! - Entity: @Entity를 선언해서 생성 - Repository: public interface PostsRepository extends JpaRepository{ } Entity 클래스는 Setter를 만들지 않는다 - @Getter만 선언 - @Setter 선언 시, 해당 Entity 클래스의 인스턴스 값들이 언제, 어디서 변하는지 명확히 나타나지 않음 ex) 목적과 의도를 명확히 나타내는 메소드를 추가해야 함 public class Order { private boolean status; public void cancleOrder() { this.status = fal.. 2020. 2. 5.
[java] Shy Code를 깨트리는 Lombok의 @Data 어노테이션 디미터의 법칙 = 최소 지식의 원칙(principle of least knowledge) = 클래스 간의 결합도를 줄이기 위한 원칙 더보기 해석본 1. 객체 O 자신의 메서드는 호출할 수 있다 2. 메서드 m의 매개 변수들의 메서드는 호출할 수 있다. 3. 메서드 m 안에서 생성/초기화 한 객체들의 메서드는 호출할 수 있다. 4. 호출을 위한 메서드 또는 속성으로서 같은 클래스 안에서 선언된 객체의 메서드는 호출할 수 있다. 5. 객체 O가 접근할 수 있고, 메서드 m의 스코프에 있는 전역 객체의 메서드는 호출할 수 있다. Lombok의 @Data 1. @ToString, @EqualsAndHashCode, @Getter / @Setter and @RequiredArgsConstructor 를 한 번에 .. 2020. 1. 23.
[java] war파일 import하여 코드 수정한 뒤, 다시 export하기 문제 1. 프로젝트를 war파일로 export 2. 코드 수정을 위해 war파일 import하여 수정한 뒤, 다시 export하면 의존관계 오류 발생 원인 & 해결 1. 원인 처음에 maven project를 생성할 시, maven을 통해 라이브러리가 정상적으로 패키징됨 그러나 export했던 war파일을 import하여 수정한 뒤, 그대로 export하면 라이브러리가 포함되지 않음 2. 해결법 war파일 import [프로젝트 우클릭 - Configure - Convert to Maven Project] [프로젝트 내의 WebContent - META-INF - maven - 패키지디렉토리 - pom.xml 의 내용을 복사] 이를 프로젝트 폴더 바깥의 pom.xml에 붙여넣기하면 완료! 출처 http:.. 2019. 5. 29.
[java] 객체지향 프로그래밍의 4가지 특징 특징 1. 추상화 (Abstraction) 불필요한 정보는 숨기고, 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것 현실의 사물들은 다양한 정보를 가지고 있다. 구체적인 사물들로부터 공통적인 특징을 뽑아낸다. 우리에게 쓸모있는 정보만을 추출하고 나머지는 생략한다. 추상화를 통해 정의된 자료형을 추상 자료형이라고 한다. 추상 자료형은 자료형의 data와 operation을 캡슐화한 것으로, 접근 제어를 통해 이를 은닉할 수 있다. 추상 자료형 = class class를 실제로 구현한 것 = instance class 내의 data = member variable class 내의 operation (function) = method 2. 캡슐화 (Encapsulation) class의 data와 o.. 2019. 5. 25.