[DAY 4] DB 조회와 롬복을 통한 리팩터링
스프링부트를 처음 시작할때 선택했던 H2 DB를 이용하여 데이터가 제대로 들어왔는지 확인해야한다.
H2 DB
- 인메모리 DB (휘발성O, 종료시 모든 메모리 삭제 / RAM에 데이터 저장)
- 개발 단계 혹은 테스트 코드에서 자주 활용 (자바로 작성된 RDBS)
- 브라우저 기반 콘솔 프로그램
장점
- 브라우저 기반이기때문에, 별도의 설치가 필요 없으며 가볍고 빠름
- 메모리에서 CRUD 연산을 하기때문에 하드디스크보다 상대적으로 빠름
- ANSI 표준 SQL, 호환성 지원 (다른 DB와 호환 가능)
- 설정이 단순함
단점
- 대규모 프로젝트에서는 성능이 부족함
- 백업, 복구 기능 부족
브라우저로 접속할때마다 run에서 jdbc url을 찾아서 입력해야함
데이터 조회
데이터 삽입
INSERT INTO article(id, title, content) VALUES(3, 'cccc', '3333');
4장 롬복과 리팩터링
롬복(lombok)
코드를 간소화해 주는 라이브러리. 어노테이션을 제공하여 생성자, toString() 등 필수 메서드를 자동으로 생성/주입해주는 라이브러리. 로깅 기능도 지원하여 로그를 남길 수 있음.
build.gradle에 다음 코드를 추가하고 load gradle changes 를 누르면 자동으로 라이브러리가 다운로드된다.
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
org.project에서 .이 아니라 , 으로 입력하고 실습을 진행했더니 어노테이션은 다 적용되는데 빌드하면 오류가 나고 데이터가 DB로 저장되지 않아서 좀 헤맸다. .으로 바꾸고 다시 새로고침하여 다운로드하니 바로 해결됨.
롬복을 이용하여 DTO, 엔티티 안의 생성자, toString()을 리팩토링하고 컨트롤러에 println문을 log()로 리팩토링하면 실습 끝!
Trouble Shooting
문제 1 : git 커밋 메시지가 자꾸 깨짐
해결
- 인텔리제이 설정에서 인텔리제이 터미널에 utf-8 추가. 시스템 환경 변수에 변수 다음과 같이 추가
문제 2: git warning
warning: LF will be replaced by CRLF in src/main/resources/application.properties. The file will have its original line endings in your working directory
리눅스 체제와 윈도우 체제 사이에 git이 혼란이 와서 발생시키는 Whitespace 에러.
유닉스 시스템은 한 줄의 끝이 Line Feed로 이루어져있지만, 윈도우는 줄 하나가 Carriage와 line Feed로 이루어져있기 때문에 깃이 혼동이 오는 것이다.
해결 : git 터미널에 core.autocrlf 기능을 킨다.
git config --global core.autocrlf true