본문 바로가기

Java31

함수형 인터페이스 활용 함수형 인터페이스 오직 하나의 메서드만 가지고 있는 인터페이스 상속받은 메서드까지 포함했을 때 하나의 메서드만 가지고 있어야지만 함수형 인터페이스 예시) public interface Predicated { bollean test(T t); } public interface Comparator { int compare(T o1, T o2); } public interface Runnable { void run(); } 함수형 인터페이스 활용 → 람다 표현식을 사용하면 함수형 인터페이스의 추상 메서드 구현을 직접 전달할 수 있다. → 전체 표현식을 함수형 인터페이스의 인스턴스로 취급 예시) Runnable r1 = () -> System.out.println("hello 1"); Runnable r2 = .. 2020. 11. 16.
Mockito Mockito 모의 객체 생성 프레임워크 mock: 모조품 mockito: 모조품을 쉽게 만드는 프레임워크 협력 객체에서 반환 값이 없는 경우, 즉 간접 입력이 없는 경우 협력 객체에서 변수를 잘 받았는지 그리고 잘 처리했는 지를 검증(간접 출력) → mockito Mock 모의 객체 생성 및 모의 객체 동작 지정(Stubbing) 모의 객체가 제공하는 연산을 지닌 인터페이스 선언 @Mock과 @InjectMocks 어노테이션을 사용하여 모의 객체 생성 Mockito의 when().thenReturn()을 사용하여 동작 지정 예시) → pm은 다른 동작은 못하고 1234가 들어왔을 때 1000을 리턴해주는 모의 객체가 되었다. → cart입장에서는 간접입력을 생성한 것 ✔️ doReturn().when(.. 2020. 11. 16.
Junit5 Junit5 가장 최근에 개발된 Junit 테스트 프레임워크, 풍부한 어노테이션을 제공하여 쉽고 간결하게 테스트 코드를 작성 및 실행할 수 있다. Java 8에 기반 (Junit4는 Java 5 기반) 아키텍처 → 테스트를 발견하고 테스트 계획을 생성하는 TestEngine 인터페이스를 정의. → Platform은 TestEngine을 통해서 테스트를 발견하고, 실행하고, 결과를 보고 테스트 코드 → 테스트 메서드는 3A로 구성되어있다. (3A: Arrange, Act, Assert) @DispalyName: 메서드 설명을 넣을 때 사용 (테스트 시에 깔끔하게 볼 수 있음) Error: Assert문 이전에 문제가 발생 Failure: Assert문에서 기댓값과 결괏값이 다른 경우 발생 참고) Asser.. 2020. 11. 16.
함수형 인터페이스 모음 Function : 매개값을 리턴값으로 매핑(타입 변환)하는 역할 Consumer : 매개값을 소비하는 역할만 하며, 소비한다는 말은 사용만하고 리턴값이 없다는 뜻 Supplier : 호출한 곳으로 데이터를 리턴(공급)하는 역할, 리턴값은 있고 매개변수는 없음 Operator : Function과 동일하게 매개 변수와 리턴값이 있는 applyXXX() 메소드를 가지고 있다. 하지만 이 메소드들은 매개값을 리턴값으로 매핑(타입 변환)하는 역할보다 매개값을 이용해서 연산을 수행한 후 동일한 타입으로 리턴값을 제공하는 역할 Predicate : true 또는 false를 리턴하는 역할 Runnable : run()실행할 수 있는 인터페이스 Function 함수적 인터페이스 목록 인터페이스 명 추상 메서드 설명.. 2020. 10. 8.
Hibernate Data Persistence 객체들을 영구적으로 보관하는 것 Web Application 관점에서는 객체지만 Database에서는 이러한 객체들이 테이블로 관리된다. DB에 데이터를 유지하는 방법 JDBC ORM - 객체와 객체 사이는 의존성이 존재(의존성 주입) 객체지향 언어를 사용하면 그래프 형태로 객체를 관리할 수 있고 Relational database systems에서는 테이블 형태로 관리할 수 있다. 객체지향 언어와 DB를 같이 사용하면 객체 모델과 관계 모델에 불일치가 발생할 수 있다 그 부분을 ORM framework의 Hibernate가 해결해준다.(Framework을 사용하여 불일치를 해결) Mismatch가 발생되는 경우! 객체지향언어에서 클래스가 2개이지만 RDBMS에서는 1개인 .. 2020. 4. 10.
Apache Tiles Apache tiles를 사용하는 이유 틀(template)을 만들고 안에 contents를 채워가는 형식 layout을 바꾸고 싶을 때 한 페이지만 바꿔줘도 (template만 바꿔줘도) 다른 페이지 전부 바뀐다. ->일관성 있음 특징 Apache tiles는 MVC technology와 궁합이 잘 맞다. template에 들어갈 각 조각들만 잘 조합하면 된다.(런타임 시 완성되는 페이지) 사용자들이 많은 페이지들이 일관성 있다고 느낀다. Page Template - layout 페이지 위 이미지와 같이 layer에 header menu body footer 속성을 넣어놨다. Tiles Definition xml에 template과 attribute의 경로를 정의 해주면 하나의 페이지가 만들어진다. m.. 2020. 4. 8.