전체 글 (93) 썸네일형 리스트형 Spring Boot JPA 간단하게 Spring Boot JPA(Java Persistence API)는 자바 애플리케이션에서 데이터베이스와 객체 간의 매핑을 쉽게 할 수 있도록 도와주는 ORM(Object Relational Mapping) 도구입니다. 주로 Spring Data JPA라는 스프링 모듈을 사용하여 JPA를 더욱 편리하게 활용할 수 있습니다. 여기서 JPA는 인터페이스이며, 구체적인 구현체로는 Hibernate가 많이 사용됩니다.주요 개념과 기능1. 엔티티(Entity)엔티티는 데이터베이스의 테이블과 매핑되는 클래스입니다. JPA에서는 각 클래스가 데이터베이스의 테이블로 매핑되고, 클래스의 필드는 테이블의 컬럼으로 매핑됩니다.예를 들어, @Entity 어노테이션을 사용하여 특정 클래스를 엔티티로 선언하고, @Id 어노테이션.. 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.. 자바 Generic 자바 제네릭(Generic)자바의 제네릭은 클래스나 메서드에서 사용할 데이터 타입을 미리 정의하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 하는 기능입니다. 이를 통해 타입 안정성을 높이고 코드의 재사용성을 향상시킬 수 있습니다.1. 장점타입 안전성: 제네릭을 사용하면 컴파일 시점에서 타입을 검사하므로, 런타임 시 발생할 수 있는 ClassCastException과 같은 타입 에러를 미연에 방지할 수 있습니다.코드 재사용성: 제네릭은 동일한 코드 구조를 유지하면서 여러 타입에 대해 동작하는 코드를 작성할 수 있습니다. 예를 들어, 제네릭 리스트는 다양한 타입의 데이터를 처리할 수 있습니다.가독성 향상: 명시적인 타입 정의를 통해 코드를 읽는 사람이 데이터의 타입을 쉽게 파악할 수 있습니다.컴파일.. 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 ··· 4 5 6 7 8 9 10 ··· 12 다음