JAVA(244)
-
[springboot] 프로젝트 생성
스프링부트 프로젝트 생성 1. Spring Initializer에서 생성하기 Project : Gradle Project Language : Java Spring Boot : 2.6.10 Project Metadata Group : com.yh Artifact : basic Name : basic Description : Demo project for Spring Boot Package name : com.yh.basic Packaging : Jar Java : 11 Dependencies Spring Web Thymeleaf Spring Data JPA H2 Database Lombok Validation 2. [GENERATE] 버튼 클릭 ‘artifact’ 이름으로 된 zip 파일 다운로드 및 압축..
2022.08.08 -
[Java][enums] 열거형(enums)
2.1 열거형이란 무엇인가? 열거형은 서로 관련된 상수를 편리하게 선언하기 위해서 자바에서 지원하는 타입입니다. //before class Card{ static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; final int kind; find int num; } //after class Card{ enum Kind {CLOVER, HEAR, DIAMOND, SPADE} // 열거형 Kind를 정의 enum Valu..
2022.08.03 -
@Autowired를 이용한 의존관계 주입 방법
목차 스프링 빈 의존관계 주입 방법 의존관계 주입 옵션 처리 의존관계 주입 방법중 생성자 주입을 권장하는 이유 Lombok @RequiredArgsConstructor를 이용한 의존관계 주입 코드 단축하기 1. 스프링 빈 의존관계 주입 방법 스프링 컨테이너 등록된 스프링 빈간에 의존관계를 주입하기 위한 방법으로는 4가지 방법이 있습니다. 생성자 주입 setter 주입 필드 주입 일반 메소드 주입 1.1 생성자 주입 생성자 주입 방법은 클래스 안에 생성자를 이용하여 의존 관계를 주입받는 방법입니다. 생성자 주입 방법의 특징은 다음과 같습니다. 생성자 호출시점에 1번만 호출됩니다. 불변, 필수 의존관계에 사용됩니다. 불변적인 의존관계가 되면 의존관계가 한번 초기화되면 다른 객체로 변경되지 않음을 의미합니다...
2022.07.29 -
[Spring][IoC] Spring IoC Container & Bean
1. Spring IoC(Inversion of Control) IoC(Inversion of Control)은 제어의 역전이라는 의미로써 어떤 객체의 필드 멤버(참조 변수)에 직접 인스턴스를 생성하지 않고 생성자와 같은 방법을 통해서 주입받아 사용하는 방법을 의미합니다. 제어권을 갖고 있는 경우 class OwnerController{ private OwnerRepository repository = new OwnerRepository(); } 위 코드를 보면 OwnerController 클래스가 필드멤버인 OwnerRepository 인스턴스를 직접생성하는 것을 볼 수 있습니다. 이 상태는 OwnerController 클래스가 OwnerRepository 인스턴스에 대해서 제어권을 직접 갖는 것을 알..
2022.07.28 -
[Java][Generics] 지네릭스(Generics)
1. 지네릭스란 무엇인가? 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크(comptile-time type check)를 해주는 기능입니다. 지네릭스의 장점 타입 안정성을 제공합니다. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해집니다. 예를 들어 ArrayList 컬렉션 클래스에 타입을 지정하여 해당 클래스 타입의 인스턴스만을 담을 수 있습니다. ArrayList list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); 2. 지네릭 클래스의 선언 어떤 클래스를 지네릭 클래스로 변경하고자 한다면 다음과 같이 선언할 수 있습니다. class Box{ // 지네릭 타입 T를 선언 T item; ..
2022.07.22 -
[Java][Effective Java] item 14. Comparable을 구현할지 고려하라
1. Comparable을 구현할때 무엇을 고려해야 하는가? 알파벳, 숫자, 연대같이 순서가 명확한 값 클래스를 정의한다면 반드시 Comparable 인터페이스를 구현하자. Collection, Set, Map과 같은 인터페이스는 비교를 할때 Object.equals 메서드를 사용하지 않고 Comparable.compareTo 메서드를 사용하기 때문에 컬렉션과 같은 인터페이스에 인스턴스를 넣을때 Comparable을 구현하자. Comparable을 구현하지 않은 필드나 표준이 아닌 순서로 비교해야 한다면 비교자(Comprator)를 대신 사용하자. compareTo 메서드에서 관계 연산자 를 사용하는 이전 방식은 오류를 유발할 가능성이 있습니다. 클래스의 필드 멤버가 여러개 있고 비교해야 한다면..
2022.07.06