H2 데이터베이스 설치
실무에서는 데이터를 메모리에 저장한다면 프로그램을 다시 실행하면 모든 데이터가 다 날라가기 때문에 데이터베이스를 이용하여 저장한다.
아주 가볍고 심플한 H2 데이터베이스를 설치하여 데이터베이스를 연동해 볼 것이다. 다음 글에서는 DB가 연결되어 있으니 데이터베이스를 SQL을 가지고 데이터베이스 서버랑 연결할 것이다. 연결할 때 필요한게 바로 JDBC라는 기술이다.
이 강의에서는 20년전 개발자들이 순수한 JDBC로 어떻게 개발하였는지 경험할 수 있도록 만들어주신다고 했다.
순수한 JDBC로는 개발하기 너무 어려우니깐 스프링 중복을 막 다 제거해서 스프링이 이제 JDBC Template이라는 기술을 제공한다.
이거를 가지고 어플리케이션에서 데이터베이스로 SQL을 좀 더 편리하게 나를 수가 있다.
여기서 더 혁신적인 방법이 SQL조차도 개발자들이 직접 짜는 것이 아니라 SQL이 아예 JPA라는 기술로 DB에 등록된 데이터들을 수정 삭제등등의 기능등으로 다 날라준다. JPA라는 기술을 쓰면 객체를 이제 쿼리 없이 저장과 관리를 할 수 있다.
이거를 Spring Data JPA라는 기술이 있는데 여기서 JPA를 굉장히 편리하게 쓸 수 있게 한번 더 감싸 만들어 준 기술이다.
위에서 언급하였던 기술들을 적용하면서 지금까지 작성한 간단한 코드들을 한 단계씩 거쳐서 바꿔줄 것이다.
실무에서는 MySql, Oracle을 많이 쓴다. H2 Database는 교육용으로 굉장히 좋음 또한 H2 데이터베이스는 Admin화면도 제공해준다.
https://www.h2database.com/html/main.html
다운 받고 cd bin 파일로 들어가서
ls -arlth 명령어를 입력하면 h2.sh라는 파일이 있다.
chmod 755 h2.sh 명령어를 통해서 맥으로 실행 권한을 부여해주었다.
./h2.sh <- 입력하여 실행을 시켜주었다.
실행이 잘 된 모습이다.
최초에는 데이터베이스 파일이라는 것을 만들어야 한다.
어떻게 해야 하는가? 처음에는 JDBC URL은 내 파일의 경로를 말해준다. 여기서 말하는 것은 내 홈에 있는 test라는 파일을 말한다.
연결을 눌렀더니 이런 화면이 등장한다. 드디어 SQL을 하는 것이다. 자동 커밋 옆에 있는 아이콘을 눌러서 나간다.
이렇게까지 완료했다면 꼭 확인해야하는 것이 있다.
홈에 와서 보면 test.mv.db가 있음 이 파일이 있어야지만 정상적으로 실행이 된다.
이후 부터는 어떻게 접속해야 하는가? 파일로 접근하면 동시에 애플리케이션하고 웹 콘솔 같이 접근이 안되고 오류가 날 수 있음.
JDBC URL을 소켓으로 우회해서 접근 해준다. 사진에 보이는 url을 그대로 넣으면 됨.
테이블을 하나 만든다.
create table을 통해서 테이블 하나를 만들어 준 모습이다.
자바에서는 long이지만 , db에서는 bigint라는 타입이 long 타입이다.
여기서 보면 generated by default as identity라고 적혀있는데 이것이 뭐냐면 db에 들어와있을 때, 값이 채워져 있지 않다면 자동으로 값을 채워 준다.
진짜 단순한 데이터베이스 테이블을 만들어 준 모습.
INSERT INTO MEMBER(NAME) VALUES('JAVA') <- 명령어를 입력하여 database테이블에 데이터 값을 집어 넣어주었다.
사실 우리가 memoryMemberRepository도 똑같이 값을 증가시키게 만들어 놓았다.
sequence라는게 save했을 때 자동으로 증가가 되도록 만들주었다.
sql하고 ddl.sql까지 해서 sql파일을 관리할 것이다.
지금까지 웹으로 DB를 접근하였는데 이제부터는 애플리케이션에서 접근하여 데이터를 넣고 뺴는 것을 할 것이다.