Toy 프로젝트(To do List) -1
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 플러그인 추가해주기!
필요한 의존성들 추가해주기 !
<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 의존성을 다음과 같이 변경했더니 해결되었다.
변경후
에러없이 출력완료