본문 바로가기

728x90

전체 글

[Spring Boot] @Validation 유효성 /* Validation */ implementation 'org.springframework.boot:spring-boot-starter-validation' 위는 gradle 용 dependency로 validation dependency를 이용할 수 있다. /* 객체 설정*/ @Getter @Setter @Entity public class Todo { @NotNull private int id; @NotBlank(message = "유저명은 필수 입력 값입니다") private String userName; @Size(min = 10, message = "열글자 이상 입력하세요") private String description; private LocalDate localDate; private .. 더보기
[Spring Boot] Spring JDBC /* Spring JDBC */ Spring JDBC를 이용해 Java 언어로 데이터베이스와 연동해 쿼리를 실행시킬 수 있다. 일단 테이블을 만들어야 하므로 resource 폴더에 schema.sql 이라는 파일을 만들고 다음과 같이 쿼리를 작성했다. CREATE TABLE course ( id bigint not null, name varchar(255) not null, author varchar(255) not null, primary key(id) ); SPRING JDBC 의존성을 추가했으므로 스프링부트 실행 시에 이 쿼리도 실행이 될것이다. 그리고 Course라는 객체를 다음과 같이 만들자 @Getter @Setter public class Course { private Long id; pri.. 더보기
[Spring Boot] @ConfigurationProperties /* 사용하는 이유*/ application.properties 나 application.yml에 있는 외부 설정 정보를 가져오기 위한 기능을 제공한다. 이는 RestAPI를 만들 때에도 용이하다. /* application.properties 설정*/ application.properties에 외부 설정 정보를 다음과 같이 설정했다고 하자. 우리는 이 내용들을 자바 클래스 안에서 다루고 싶다. 그러면 다음과 같이 설정을 하자 /* ConfigurationProperties 설정*/ 어노테이션 @ConfigurationProperties를 이용해 application.properties를 참고하고 prefix를 이용해 어느 정보를 얻고싶은지 알려야 한다. 그리고 이 외부정보들을 Spring IOC Con.. 더보기
[Spring Boot] 컴포넌트와 빈 차이 (Component vs Bean) Udemy에서 들은 내용을 바탕으로 합니다 @Component 와 @Bean 은 둘다 스프링에 빈을 등록해준다. 그렇다면 언제 @Component를 쓰면 좋고, 언제 @Bean을 쓰면 좋을까? @Component @Bean 사용 방법 자바 클래스 안에 사용된다 Configuration 클래스안에서 사용 편리성 어노테이션만 추가하면 된다 빈 객체에 필요한 정보를 모두 써야한다 Autowired 방법 필드, 생성, Setter 주입 Method Call 아니면 Method Parameter 빈 등록 스프링 프레임워크가 직접 빈 등록 우리가 빈 등록 코드를 작성 해야함 언제? 우리가 만든 애플리케이션 코드에 대해 빈 등록이 필요할때 1. 비즈니스 로직 2. 서드파티 라이브러리에 대한 빈을 등록할때 더보기
[Spring Boot] 스프링 빈 (Spring Bean) & 스프링 컨테이너 (Spring Container) Udemy 스프링부트 강좌로 학습한 내용을 바탕으로 합니다. 스프링 컨테이너를 배우기 전에 스프링빈 (Spring Bean) 이랑 자바객체 에 대해 알아보자 /* 자바 객체*/ 아래의 간단한 자바 코드들을 한번 보자 public interface GamingConsole{ void up(); } //인터페이스 public class MarioGame implements GamingConsole { @Override public void up() { System.out.println("Mario UP") } } //GamingConsole 상속 public class PacmanGame implements GamingConsole{ @Override public void up(){ System.out.pr.. 더보기
[JAVA] 람다식 (Lambda Expression) /* 람다식이란 */ 자바 1.8 부터 사용 가능하다. 동일한 패러미터, 동일한 패러미터 값으로 여러 동작을 하고 싶을 때가 있다. ex) 동일한 패러미터 : double x, double y, 동일한 패러미터 값 : x = 1.0 , y = 4.0, 여러 동작 x+y , x-y, x/y ... 이 경우, 함수를 여럿 만드는 것이 아니라 람다식을 이용한 함수형 프로그래밍을 한다. 데이터 처리의 다형성이라고도 볼 수 있다. 코드가 간결해진다. (가독성) 병렬처리 기능을 할 수 있어 멀티쓰레드에 용이하다 람다식의 형식은 다음과 같다. 람다식 : (매개변수, ...) -> { 처리문 } 먼저 추상 인터페이스를 활용한 람다식이 있다. /* 추상인터페이스 이용1 */ 본 코드는, @FunctionalInterfa.. 더보기
[JAVA] 제네릭 타입 자바의 제네릭에 대해 배워보겠다. (이것이 자바다 에서 참조) /* 쓰는 이유 */ 1. 컴파일 시 강한 타입체크를 할 수 있다. 그러므로 타입변환 관련 에러를 사전에 방지할 수 있다. 2. 위랑 비슷한 내용으로 타입 변환을 제거한다. 강제 타입 변환을 쓰는 경우에는 에러를 피할 수는 있지만 성능 저하를 불러일으킨다. /* 제네릭 예시 1 (기본 형식) */ public class Box { public T content; // 제네릭 타입을 T로 사용 } public class CheckBox { public static void main(String[] args){ Box box1 = new Box(); // Box 타입을 String으로 변경 Box box2 = new Box(); // Box 타입.. 더보기
SQL 문법 정리 #1 Real MySQL 8.0을 읽기전에 SQL 을 정리해보겠다. 쿼리들을 쭉 나열할건데 보는 것만으로도 큰 도움이 될 것 같다. /* SELECT 관련 */ SELECT name, addr FROM user WHERE addr IN ('Seoul' , 'Busan'); SELECT name, height FROM user WHERE name like '김%' ; --찾고싶은 문자열 수를 모를때 SELECT name, height FROM user WHERE name like '김_' ; --찾고싶은 문자열 수를 알때 -- ANY 와 ALL SELECT name, height FROM user WHERE height >= ANY(SELECT height FROM user WHERE addr = 'Seoul'.. 더보기

728x90