본문 바로가기

코딩 공부/web & Java129

[Java] 함수형 인터페이스(Functional Interface) 함수형 인터페이스( Functional Interface ) Java 8에 도입된 함수형 인터페이스는 인터페이스가 함수처럼 동작하기 때문에 함수형 인터페이스라고 합니다. 함수형 인터페이스는 하나의 추상 메서드를 가지고 있어서 SAM(Single Abstract Method) 인터페이스라고도 합니다. 함수형 인터페이스는 하나의 추상 메서드 외에도 정적 메서드, 기본 메서드, Object 클래스의 메서드를 가질 수 있습니다. 🏷️ 구문 // 함수형 인터페이스의 기본 구문 public interface MyFunctionInterface { public void myMethod(); } // 기본 메서드와 정적 메소드가 있는 함수형 인터페이스인 경우 public interface MyFunctionInterf.. 2024. 1. 21.
[Spring] Gradle Gradle Gradle은 CI/CD를 위해 아래 작업들을 자동화 시켜 주는 Groovy 기반의 오픈소스 빌드 도구입니다. Compile - Java 파일의 소스 코드를 컴퓨터가 이해할 수 있도록 바이트 코드로 변환 Test - 유닛 테스트, UI 테스트 Packaging - 스프링 코드를 패키징 해 .jar 파일이나 .war 파일로 생성 Deploy & Run - 서버 실행 빌드 도구란 소프트웨어 개발에 있어서 소스 코드를 실행 가능한 어플리케이션으로 만들어주는 도구를 말합니다. 빌드 과정을 자동화하여 관리하는 기능을 하기 때문에 빌드 관리 도구 도는 빌드 자동화 도구라고 불리기도합니다. 🏷️ Gradle 구성 .gradle - gradle 버전 별 엔진 및 설정 파일 .idea - 에디터 관련 파일들.. 2024. 1. 7.
[Spring] AOP AOP (Aspect-Oriented Programming) 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원하는 것으로 Aspect-Oriented Programming이란 단어를 번역하면 관점(관심) 지향 프로그래밍 이 됩니다. 프로젝트 구조를 바라보는 관점을 바꿔보자는 의미입니다. 각각의 Service의 핵심기능에서 바라보았을 때 User과 Order는 공통된 요소가 없습니다. 하지만 부가기능 관점에서 바라보면 이야기가 달라집니다. 부가기능 관점에서 바라보면 각각의 Service의 getXX 메서드를 호출하는 전후에 before과 after라는 메서드가 공통되는 것을 확인할 수 있습니다. 기존에 OOP에서 바라보던 관점을 다르게 하여 부가기능적인 측면에서 보았을 때 공통된 요소를 추출하자는.. 2024. 1. 5.
[Java] 테스트 더블(Test Double) (feat. Mock, Stub) 테스트 더블(Test Double) 테스트를 진행하기 어려운 경우 이를 대신해 테스트를 진행할 수 있도록 만들어주는 객체를 말합니다. 예를 들어 우리가 데이터베이스로부터 조회한 값을 연산하는 로직을 구현했다면, 해당 로직을 테스트하기 위해선 항상 데이터베이스의 영향을 받을 것입니다. 이는 데이터베이스의 상태에 따라 다른 결과를 유발할 수도 있습니다. 이렇게 테스트하려는 객체와 연관된 객체를 사용하기가 어렵고 모호할 때 대신해 줄 수 있는 객체를 테스트 더블이라 합니다. 🏷️ 테스트 더블의 종류 1. Dummy // 인터페이스 public interface PringWarning { void print(); } // 인터페이스를 구현하는 클래스 public class PrintWarningDummy imp.. 2023. 12. 16.
[Java] Mockito Mockito Mock을 지원하는 프레임워크로 Mock 객체를 만들고 관리하고 검증 할 수 있는 방법 제공합니다. 쉽게 가짜 객체를 만들어준다고 생각하면 됩니다. 구현체가 아직 없는 경우나, 구현체가 있더라도 특정 단위만 테스트 하고 싶을 경우 주로 사용하게 됩니다. Mock이란 한글로 "모의, 가짜의" 라는 뜻으로 테스트할 때 필요한 실제 객체와 동일한 모의 객체를 만들어 테스트의 효용성을 높이기 위해 사용하는 것을 말합니다. 🏷️ Mock 객체 만드는 법 ✅ Mockito.mock(만들고자 하는 객체 타입.class) public class ListTest { @Test void simpleTest() { List listMock = mock(List.class); when(listMock.size(.. 2023. 12. 15.
[Java] JUnit JUnit 자바 프로그래밍 언어용 단 테스트 프레임워크입니다. 테스트시 테스트 결과는 Test클래스로 개발자에게 테스트 방법 및 클래스의 History를 공유 가능합니다. 또한 단정(assert) 메서드로 테스트 케이스의 수행 결과를 판별하며 JUnit4부터 어노테이션으로 간결하게 지원을 하여 쉽게 사용할 수 있습니다. 단위 테스트란? 프로그래밍에서 모든 함수와 메서드에 대한 테스트 케이스를 작성하여 의도된 대로 잘 동작하는지 검증하는 절차입니다. 프로그램을 작은 단위로 쪼개어 각 단위가 정확하게 동작하는지 검사하여 프로그램의 안정성을 높일수 있습니다. 또한 System.out.println()으로 하는 번거로운 디버깅이 필요없기 때문에 개발기간 중 대부분을 차지하는 디버깅 시간을 단축할 수 있습니다. .. 2023. 12. 12.