Spring/Spring 공부 (15) 썸네일형 리스트형 @Qualifier @Qualifier는 Spring에서 동일한 타입의 여러 빈(Bean)이 존재할 때, 특정 빈을 명확하게 지정하는 데 사용하는 어노테이션입니다. 보통 **자동 주입(@Autowired)**을 사용할 때 같은 타입의 빈이 여러 개 있을 경우 어떤 빈을 선택해야 할지 지정하는 역할을 합니다. 1. @Qualifier가 필요한 이유Spring에서 같은 인터페이스를 구현한 여러 개의 빈이 있을 경우, 어떤 빈을 주입해야 할지 알 수 없기 때문에 NoUniqueBeanDefinitionException 예외가 발생합니다. 동일한 타입의 여러 빈이 있을 때 문제 발생@Componentpublic class ServiceA implements MyService { @Override public void e.. Hibernate 간단하게 Hibernate는 Java에서 JPA의 가장 널리 사용되는 구현체로, 관계형 데이터베이스와 객체지향 프로그래밍 간의 매핑을 지원하는 ORM(Object Relational Mapping) 프레임워크입니다. JPA는 인터페이스이기 때문에 실제 구현체가 필요하며, Hibernate는 JPA가 요구하는 기능을 포함하여 추가적인 기능을 제공하는 강력한 ORM 프레임워크입니다. Hibernate의 주요 개념과 기능 ORM(Object Relational Mapping)Hibernate는 객체지향 프로그래밍의 클래스와 데이터베이스의 테이블을 매핑해주는 기능을 제공합니다. 객체와 테이블을 매핑하면 개발자는 SQL 쿼리를 작성하지 않아도, 자바 코드로 데이터베이스 작업을 수행할 수 있습니다.예를 들어, 자바 객체의 .. POJO 클래스 POJO(Plain Old Java Object) 클래스는 "단순한 자바 객체"라는 의미로, 특정 프레임워크나 기술에 종속되지 않는 순수한 자바 객체를 뜻합니다. POJO 클래스는 주로 데이터를 저장하고 전달하는 목적으로 사용됩니다.POJO의 특징프레임워크 종속성 없음: POJO는 특정 프레임워크나 라이브러리의 요구사항을 따르지 않으며, 순수 자바 코드로 작성됩니다.간단한 구조: 필드, 기본 생성자, getter, setter 메서드로 구성되어 있으며, 복잡한 상속 관계나 인터페이스 구현이 없습니다.접근 제어자 사용: 보통 필드는 private으로 선언해 외부에서 직접 접근을 막고, getter와 setter 메서드를 통해 간접적으로 접근합니다.비즈니스 로직 없음: 주로 데이터 전달 및 저장을 위한 용도.. Lombok 정의와 어노테이션 기능 정리 Lombok은 자바의 보일러플레이트 코드를 줄이기 위해 사용하는 라이브러리로, 어노테이션을 통해 getter/setter, equals, hashCode 등 반복적인 메서드를 자동으로 생성해줍니다. 각 어노테이션은 다음과 같은 목적을 가지고 있습니다.1. @Getter와 @Setter목적: 클래스의 필드에 대한 getter와 setter 메서드를 자동 생성.사용법: 필드에만 적용하면 해당 필드에만 적용되고, 클래스에 적용하면 모든 필드에 적용됩니다.2. @ToString목적: toString() 메서드를 자동 생성하여 클래스의 필드 정보를 문자열로 출력.사용법: 클래스에 적용하며, exclude 옵션으로 특정 필드를 제외할 수도 있습니다.3. @EqualsAndHashCode목적: equals()와 ha.. Swagger , http://localhost:8080/swagger-ui/ 404오류 Swagger란 개발한 Rest API를 편하게 문서화 해주고 이를 통해 관리 및 제 3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트이다. Spring Boot에서는 간단하게 springfox-boot-starter를 gradle dependencies에 추가 함으로 사용할 수 있다. 외부에 노출되면 안되는 곳에 사용할 떈 주의 해야 한다. 스프링부트에서 사용한 Swagger dependencyhttps://mvnrepository.com/artifact/io.springfox/springfox-boot-starter/3.0.0 http://localhost:8080/swagger-ui/ 조금 찾아보니 Spring Boot 3.0 이상 버전부터는 Springfox가 호환.. Jacoco Java코드의 코드 커버리지를 체크 하는 라이브러리결과를 html, xml, csv로 확인이 가능하다. 내가 작성한 프로젝트에서 테스트를 실행하여 배포가 가능한지 테스트 커버리지를 확인 할 수 있다. JacocoTestReport를 실행하면 build아래 jacoco 폴더가 생성되며 어디가 테스트 되었고 어디가 안 되었는지 확인할 수 있는 index.html 파일을 생성한다. 이런 식으로 Jacoco를 사용하면서 테스트 커버리지가 부족한 곳을 확인 할 수 있다. @Component의 역할과 사용법 @Component는 스프링 프레임워크에서 사용되는 기본적인 어노테이션 중 하나로, 스프링이 관리하는 빈(Bean)으로 등록하고자 할 때 사용한다. 주로 개발자가 작성한 클래스가 스프링 컨테이너에 의해 관리되고, 의존성 주입(Dependency Injection)을 통해 쉽게 사용할 수 있도록 해준다.@Componentpublic class MyService { public void doSomething() { System.out.println("Doing something..."); }} **빈(Bean)**은 스프링 IoC(Inversion of Control) 컨테이너에 의해 관리되는 객체를 의미, 스프링 애플리케이션에서 의존성 주입을 통해 사용되는 객체 스프링이 빈을 관리:.. 단위 테스트 **단위 테스트(Unit Testing)**소프트웨어 개발에서 개별 구성 요소(주로 함수 또는 메서드)가 예상대로 작동하는지 확인하기 위해 수행하는 테스트이다. 단위 테스트는 작은 코드 단위를 독립적으로 테스트하여 그 코드가 주어진 입력에서 올바른 출력을 내는지 검증합니다. 이는 코드의 특정 부분이 정확히 동작하는지, 오류가 없는지 보장하는 데 중점을 둡니다.단위 테스트의 주요 특징:작은 코드 단위 테스트: 함수, 메서드, 클래스 등 매우 작은 단위를 테스트합니다.독립적: 각 테스트는 다른 테스트에 의존하지 않고 독립적으로 수행됩니다. 테스트 단위가 서로 영향을 미치지 않게 해야 합니다.자동화: 단위 테스트는 자동화된 도구를 통해 실행되며, 빠르게 반복적으로 테스트할 수 있습니다.빠른 피드백: 코드 변경.. 이전 1 2 다음