코딩 자율학습단/학습 일지

[DAY 4] DB 조회와 롬복을 통한 리팩터링

young604 2024. 8. 1. 22:27
728x90

스프링부트를 처음 시작할때 선택했던 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
728x90