
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ 리포지터리 ] 엔티티만으로는 데이터베이스에 데이터를 저장하거나 조회 할 수 없다. 데이터 처리를 위해서는 실제 데이터베이스와 연동하는 JPA 리포지터리가 필요하다. 리포지터리란? 엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들을 사용하기 위한 인터페이스이다. 데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)가 필요하다. 이 때 이러한 CRUD를 어떻게 처리할지 정의하는 계층이 바로 리포지터리이다. package com.example.board.Question; import..

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ 엔티티 ] 엔티티는 데이터베이스 테이블과 매핑되는 자바 클래스를 말한다. 엔티티는 모델 또는 도메인 모델 이라고 부르기도 한다. 질문 엔티티 작성하기 package com.example.board.Question; import java.time.LocalDateTime; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue;..

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ JPA ] 스프링부트는 JPA(Java Persistence API)를 사용하여 데이터베이스를 처리한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음이다. JPA는 인터페이스이다. 따라서 인터페이스를 구현하는 실제 클래스가 필요하다. JPA를 구현한 대표적인 실제 클래스에는 하이버네이트(Hibernate)가 있다. 우리가 만들 게시판은 질문 답변 게시판이다. 질문이나 답변을 작성하면 데이터가 생성된다. 그러므로 데이터를 저장하거나 조회하거나 수정하는 등의 기능을 구현해야 한다. 웹 서비스는..
해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도이며 기초 세팅은 생략하였습니다. 자바 8, 스프링부트 2.7.7버전입니다. [ 컨트롤러 ] URL 매핑을 추가하기 위해 QuestionController.java 파일을 다음과 같이 작성하자. package com.example.board; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class QuestionController { @GetMapping(..

해당 게시글은 점프 투 스프링부트 교재를 통한 개인 학습 용도입니다 [ 프로젝트의 구조 ] src/main/java 디렉터리 src/main/java 디렉터리의 com.example.board 패키지는 자바 파일을 작성하는 공간이다. 자바 파일로는 스프링부트의 컨트롤러, 폼과 DTO, 데이터 베이스 처리를 위한 엔티티, 서비스 파일등이 있다. PracticeApplication.java 파일 모든 프로그램에는 시작을 담당하는 파일이 있다. 스프링부트 애플리케이션에도 시작을 담당하는 파일이 있는데 그 파일이 바로 + Application.java 파일이다. 프로젝트를 생성할 때 자동 생성된다. package com.example.board; import org.springframework.boot.Spri..
[ Iterator ] 컬렉션 프레임워크(Collection Framework)에서 값을 가져오거나 삭제할 때 사용한다 [ 장단점 ] 모든 컬렉션 프레임워크에서 공통으로 사용이 가능하다 3개의 메서드만 알면 되어서 쉽게 값을 가져오고 제거할 수 있다 처음부터 끝까지의 단방향 반복만 가능하다 값을 변경하거나 추가하는 것이 불가능하다 대량의 데이터를 제어할 때 속도가 느리다 [ 메서드 ] Iterator.hasNext() : 다음 값이 들었는지 확인 후 true / false를 반환한다 Iterator.next() : 다음 값을 가져온다 Iterator.remove() : next시 가져왔던 값을 컬렉션에서 삭제시킨다. 반드시 next()후에 사용해야 한다 [ 사용하기 ] import java.util.Ar..
[ 람다함수 ] 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어 익명 함수들은 어느 언어에서나 일급 객체라는 특징을 가짐 일급 객체 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체 를 가리킨다. 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. [ 특징 ] 람다 대수는 이름을 가질 필요가 없고 두 개 이상의 입력이 있는 함수는 1개의 입력만 받는 람다 대수로 단순화 될 수 있다 - 커링 람다 실행블록에는 클래스의 필드와 메서드를 제약없이 사용 가능하다 람다식 내에서 사용되는 지역변수는 final이 없어도 상수로 간주된다 람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없다 람다 대..
조건 JDK 1.5 이상 사용 가능 사용할 변수는 지역변수로 인식된다 대상은 배열이거나 여러 원소를 포함한 자료형이어야 한다 → 배열은 향상된 for문을 입력해도 컴파일러가 기존 for문으로 변환시킨다 사용하기 for(자료형 변수명 : 배열명){ 문장 } int[] arr = {1,2,3,4,5,6,7,8,9}; for(int i : arr){ System.out.print(i); } // console // 123456789 // 다차원 배열도 활용가능 int[][] arr = {{1,2},{3,4},{5,6},{7,8}}; for(int[]arr2 : arr) { for(int i : arr2) { System.out.print(i); } } // Console // 12345678 예제 class ..