1.모델 구현

Model 패키지 안의

 

TodoEntity

h2데이터베이스의 order는 예약어 이기때문에 todoOrder로 바꿔주기

 

TodoRequest

 

TodoResponse

 

각각의 클래스 파일 생성

02.repository 생성

03.서비스코드 구현

메소드 시그니쳐

01 add 메소드

02  searchById 메소드

03 searchAll 메소드

04 updateById 메소드

05 ,06 delete 메소드

 

'intelliJ' 카테고리의 다른 글

Toy 프로젝트(To do List) -1  (0) 2022.11.28
windows 설치 환경  (0) 2022.11.28

01.요구사항 정리

필요기능
1 todo 리스트 목록에 아이템을 추가
2 todo 리스트 목록 중 특정 아이템을 조회
3 todo 리스트 목록 전체 목록을 조회
4 todo 리스트 목록 중 특정 아이템을 수정
5 todo 리스트 목록 중 특정 아이템을 삭제
6 todo 리스트 목록을 삭제

02.API 스펙

method endpoint(경로) 기능 request response
POST / todo 아이템 추가 {
"title":"자료구조 공부하기"
}
{
"id":17
"title":"자료구조 공부하기",
"order":0,
"completed":false,
"url":"http://localhost:8080/17"
}
GET / 전체 todo 리스트 조회   [
  {
    "id": 1,
    "title": "자바 기초 공부하기",
    "order": 0,
    "completed": false,
    "url": "http://localhost:8080/1"
  },
  {
    "id": 2,
    "title": "알고리즘 공부 하기",
    "order": 0,
    "completed": false,
    "url": "http://localhost:8080/2"
   }, ...
]
GET /{:id} todo 아이템 조회 -  
DELETE / 전체 todo 리스트 삭제   200
DELETE /{:id} todo 아이템 삭제   200
PATCH /{:id} todo 아이템 수정 {
"title": "반복문 공부하기"
}
{
  "id": 1,
"title": "반복문 공부하기",
"order": 0,
"completed": false,
"url": "http://localhost:8080/1" 
}

환경설정 및 프로젝트세팅(spring boot)

1.New Project 생성

build 가 완료되면 gradle이 생성되는걸 확인

build.gradle 안의 dependencies 기존에 있는 주피터 관련된 의존성들을 삭제후 리로드를 진행!

spring boot 프레임워크를 사용하기위한 spring boot 플러그인 추가해주기! 

필요한 의존성들 추가해주기 !

 

https://mvnrepository.com/

<Plugins>

<dependencies>

data-rest  구현할 rest-api 의 구현을 위한 라이브러리

data-jpa jpa 관련 기능들을 사용하기 위한 라이브러리

database:h2 todo 어플리케이션 서버를 구현하기위한 인메모리 관계형 데이터 베이스인 h2 데이터베이스를 사용

 

여기서 In-Memory DB 란?

In-Memory DB의 경우에는 NoSQL 방식에 속하는 데이터베이스이며, key-balue 방식을 사용하고 있다.

간단히 정리

컴퓨터로 치면 C드라이버에 저장하는게 아니고 16GB짜리 램에다가 데이터베이스를 저장하는것이다.

 

아래와 같은 구조로 나타냄

 

-특징 

1) Memory의 가격이 용량 대비,충분히 낮아지면서 빠른 데이터베이스 성능을 위해서 등장함

2) 디스크(Disk) 대신 메모리(Memory)를 사용함으로써, I/O(Input/output)의 성능을 높여줌!

3) 대표적으로 Redis 및 LMDB 등이 있다.

 

참고하면 좋은 글

출처: https://toma0912.tistory.com/83

 

RDB, NoSQL, In-Memory DB 비교

안녕하세요. 오늘은 최근 많이 쓰이고 있는 데이터베이스 종류에 대해서 비교하는 포스팅을 하려고합니다. 대표적으로 분류하면 RDBMS, ORDBMS, NOSQL, NoSQL에 포함되어 있지만 In-Memory DB등이 있으며,

toma0912.tistory.com

추가로 lombok 라이브러리 추가

 

intelli  J 에서는 lombok 를 사용하기위해서는 추가로 plugin을 추가해주어야 사용이가능하다.!

단축키인 shift+shift 이용해 Preference 들어오기

lombok 검색

인스톨후 재실행 시켜준다

Build, Execution, Deployment 탭의

Compiler 클릭후

Annotation Processors 속성의

Enable annotation processing 체크를 후 apply 를 클릭

 

완료후 

pakage 와 새로운 클래스 추가후 간단히 테스트실행

Cause: class lombok.javac.apt.LombokProcessor (in unnamed module @0x59e73bc0) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x59e73bc0

인텔리제이에서 스프링부트 실행시 위와 같은 오류가 났다.

 

현재 Lombok이 사용중인 JDK16과 호환이 안되는 문제라고 한다.

 

build.gradle의 lombok 의존성을 다음과 같이 변경했더니 해결되었다.

 

변경후

에러없이 출력완료

'intelliJ' 카테고리의 다른 글

Toy 프로젝트(To do List) -2  (0) 2022.11.28
windows 설치 환경  (0) 2022.11.28

intelliJ 란?

- 젯브레인스 사에서 제작한 Java 개발을 위한 툴

- IntelliJ 혹은 IDEA 라고 불림

 

설치하기

- https://www.jetbrains.com/idea/

 

IntelliJ IDEA – the Leading Java and Kotlin IDE

IntelliJ IDEA is undoubtedly the top-choice IDE for software developers. It makes Java and Kotlin development a more productive and enjoyable experience.

www.jetbrains.com

버전 선택

- Ultimate : 완전한 기능 제공 (1달간 무료 체험이 가능하다.)
 - Communtity : 제한적 기능 제공
 - Web을 제외한 기본적인 JVM 기반 언어와 안드로이드 개발을 지원한다.
 - Java 기반의 REST API 등의 백엔드 개발만 고려한다면 Communtity 에디션 만으로도 충분하다.

 

설치

4개 전부 체크

- 당연히 Community 버전보다 Ultimate 버전이 다양한 기능을 제공 한다.

 - 먼저 UI로 보는게 더 확실할 것 같다.

 - 일단 javascript, Spring 등 웹개발 관련된 내용을 지원하지 않는 community 버전을 사용하면, 웹 개발시 불편할 수 있다.

'intelliJ' 카테고리의 다른 글

Toy 프로젝트(To do List) -2  (0) 2022.11.28
Toy 프로젝트(To do List) -1  (0) 2022.11.28

+ Recent posts