Java
-
[JPA] 스프링 부트 JPA 기본 설정Java 2023. 12. 15. 17:06
1. 프로젝트 생성 스프링 부트 스타터(https://start.spring.io/) Project: Gradle - Groovy Project 사용 기능: web, thymeleaf, jpa, h2, lombok, validation groupId: jpabook artifactId: jpashop 2. 프로젝트 열기 인텔리제이 사용 build.gradle을 이용해서 들어가기 3. 실행 테스트 src -> java -> application 메인 메소드 실행 tomcat-started-on-port 번호 확인 해당 URL 접속 4. 롬복 셋팅 처음일 경우 롬복 설치 빌드 실행 배포 -> 컴파일러 -> 어노테이션 프로세서 어노테이션 처리 활성화 체크 5. 롬복 테스트 임의을 entity 생성 생성된 en..
-
[QueryDSL] QueryDSL 스프링부트 3.0 이상 버전 환경 설정Java 2023. 12. 15. 14:27
1. 프로젝트 생성 스프링 부트 스타터(https://start.spring.io/) 해당폴더 실행시 자바 버전을 맞춰 주어야 한다. 2. 빌드 설정 인텔리 제이는 자바에서 실행 하는게 아니라 gradle에게 실행을 위임하기 때문에 빌드가 드림 따라서 빌드 및 실행을 인텔리제이 로 바꾸면 빌드 및 실행속도가 빨라짐 3. 롬복 셋팅 만약 처음 세팅이라면 롬복을 플러그인에서 다운 받아야함 어노테이션 처리 활성화 설정 -> 빌드 실행 배포 -> 컴파일러 -> 어노테이션 프로세서 -> 어노테이션 처리 활성화 를 해주어야 롬복이 정상 작동됨 이후 재시작을 하면 완료 4.build.gradle 스프링부트 3.0 이상 버전 plugins { id 'java' id 'org.springframework.boot' ve..
-
[Java] 인터페이스(interface)Java 2023. 9. 4. 15:46
인터페이스 구현된 것이 아무것도 없는 밑 그린만 있는 기본 설계도 특징 멤버변수, 일반 구현 메서드를 가질 수 없다 오직 추상 메서드와 상수만 멤버로 가질 수 있음 인터페이스는 표준, 약속(강제성 O), 규약을 의미 추상클래스보다 추상화가 더 높다 - 기능적인 측면으로 많이 활용 인터페이스 활용 인터페이스 생성 interface 키워드를 통해 사용 상수만을 가질수 있다 (멤버변수 사용불가) 인스턴스 메서드를 가질 수 없다 인터페이스 안에서 선언하는 기능은 public abstract이기 때문에 생략 가능 public interface RemoteController { public static final int SERIAL_NUMBER = 100; // 상수 public abstract void turnO..
-
[Java] 템플릿 메서드Java 2023. 9. 4. 12:50
템플릿 메서드 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)을 정의하는 메서드 final로 선언하여 하위클래스에서 재정의 할 수 없게 함 프레임 워크에서 많이 사용되는 설계 패턴 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의 하위 클레스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 함 부모 클래스 추상클래스를 활용하여 생성 final 메서드 : 하위 클래스에서 재정의 할 수 없는 메서드 public abstract class Car { public abstract void drive(); public abstract void stop(); public void startCar() { System.out.print..
-
[Java] 추상 클래스Java 2023. 9. 4. 10:10
추상 클래스 구현 코드 없이 메서드의 선언만 있는 추상 메서드를 포함한 클래스 abstract 키워드를 포함하면 추상클래스가 된다. 하나이상에 추상 메서드를 포함하면 반드시 추상클래스가 되어야 한다. 메서드 선언 : 반환타입, 메서드 이름, 매개변수로 구성 메서드 정의 : 메서드 구현과 동일한 의미 구현부를 가짐 public abstract class Animal { public void move() { System.out.println("동물이 움직입니다."); } // 추상 메서드 public abstract void hunt(); } 추상 메서드 상속 자식 클래스도 추상 클래스로 만들어 준다 추상 메서드를 일반(구현) 메서드로 재정의 public class Human extends Animal { ..
-
[Java] 다형성Java 2023. 8. 30. 09:47
다형성 하나의 코드가 여러 자료형으로 구현되어 실행되는 것 같은 코드에서 여러 다른 실행 결과가 나옴 정보은닉,상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나 다형성을 잘 활용하면 유연하고 확장성 있고, 유지보수가 편리한 프로그램을 만들수 있음 public class Animal { public void makeSound() { System.out.println("동물이 소리를 내고 있습니다."); } } public class Bird extends Animal { @Override public void makeSound() { System.out.println("새가 지저귀고 있습니다."); } public void fly() { System.out.println("새가 날아갑니다."); ..
-
[Java] 상속Java 2023. 8. 22. 17:37
클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함 상속을 구현하는 경우 상위 클래스는 하위 클래스 보다 더 일반적인 개녕과 기능을 가짐 하위 클래스는 상위 클래스 보다 더 구체적인 개녕과 기능을 가짐 하위 클래스가 상위 클래스의 속성과 기능을 (extends) 한다는 의미 용어정리 상속하는 클래스 : 상위 클래스, parent class, super class 상속받는 클래스 : 하위 클래스, child class, subclass 상속 활용 예제 일반 고객 클래스 구현 고객의 속성 : 고객 아이디, 고객 이름, 고객 등급 보너스 포인트, 포인트 적..
-
[Java] Class 만들기Java 2023. 8. 21. 15:05
책 클래스 만들기 1. 멤버 변수 선언 책 이름, 작가, 총 페이지를 멤버변수로 선언 private 접근제어 지시자를 이용하여 같은 클래스 내부에서만 접근 가능하게 설계 private String title; private String author; private int totalPage; 2. 생성자(constructor) 생성 인스턴스와 동시에 멤버변수인 책제목과 작가를 초기화 시키는 생성자 생성 public Book(String title, String author) { this.title = title; this.author = author; } 3. get()/set() 메서드 생성 접근제어지시자 private를 사용하여 멤버 변수를 선언 했기때문에 멤버변수에 접근하기위해 get()/set()메..