Springboot

Spring boot실습 DBMS연결

25G 2021. 6. 25. 17:48

 

프로토콜: 약속

프로토콜에서의 약속은 대등한 관계에서 성립된다. http의 모든 것들은 프로토콜로 만들어져 있다.

RFC문서라고 있다 서로 다른 프로토콜로 떨어져 있던 프로토콜을 폭넓은 통신을 위해서 서로 협의하에 프로토콜을 제정의해서 프로토콜을 합친 것임  이것이 모든 인터넷의 시작이다. 이 프로토콜들이 모이고 모여서 만들어진 게 WWW이다. 월드와이드 웹. 프로토콜로 만들어진 세상

 

인터페이스와 다른 점은 인터페이스는 누군가가 클라이언트가 어떠한 것을 사용하기 편하게끔 만들어주는 것(상하관계의 약속 ex) 리모콘, 자판기 버튼)

통신이 필요한 모든 데이터는 프로토콜이 없으면 쓰레기 데이터가 된다. 즉 서로 프로그램끼리 이해할 수 없어진다

그래서 상호간에 통신을 위해서는 프로토콜을 맞춰주는 작업이 바로 드라이버를 추가시켜주는 작업이다. 그래서 DBMS와 연결하기 위해서는 db드라이버가 있어야 DBMS와의 통신을 이해할 수 있게 된다. 

 

spring Web라이브러리가 없으면 MVC패턴을 이해할 수 없게 되니까 꼭 디폴트 값으로 프로젝트 생성 시 추가시켜주는 것이 편하다.

 

 

IO

 

CPU가 62bit 기능을 한다는 말은 ram에서 데이터를 가지고 올 때 한번에 8byte를 가지고 올 수 있다는 것을 뜻한다.(1byte=8bit)

CPU는 RAM이 CPU의 속도보다 상대적으로 데이터를 늦게 줄 수밖에 없으니까 노는 시간이 생길 수밖에 없다. 그래서 생긴 게 멀티쓰래드를 사용해서 노는 시간이 최대한 없게 끔 설계가 돼있다.

CPU가 RAM에 데이터를 요청했을 때 RAM은 RAM 자기 자신에서 요청데이터를 찾아 보고 자기 자신에도 없으면 HDD까지 찾으로 가는데 이걸 IO라고 한다. 그때 CPU는 응답을 받을때 까지의 시간동안 가만히 있을 수밖에 없게 됨(노는 시간이 생김) 그래서 RAM에는 자주 쓰는 데이터를 두고 HDD에 갈 일을 최대한 없게끔 만드는 것이 프로그래밍에서 가장 중요하다. 알고리즘을 아무리 잘 짠다고 하더라도 이 IO가 많아지면 프로그램이 느려진다. IO가 최대한 없도록 프로그램을 짜는 게 가장 중요하다.

결국 개발자들이 궁극적으로 잘하기 위해선 비즈니스 로직을 잘 짜야한다는 것이다. 즉 만들려는 서비스 프로그램의 관련 분야에 대해서도 잘 알아야 한다.

 

HDD에는 파일 시스템으로 저장된다. 파일 시스템으로 저장하면 셀렉트 할 때 오래 걸린다. 그래서 나온 기술이 HDD에 DBS기능을 넣어서 데이터를 응집시킨 후 순차적으로 인덱싱 하는 방법이다.  이 DBS에서 데이터를 핸들링할 때 SQL이라는 질의어로 명령을 내릴때 필요한 프로세스를 DBMS라고 한다.

이 DBMS를 좀 더 사용하기 편하게끔 나오는 툴이 있다. 그럼 그 툴에도 DBMS와 통신을 해야 하기 때문에 프로토콜이 있다.

mariaDB를 깔면 heidiSQL툴이 자동으로 깔린다.

실행한다

세션 관리자가 나온다. 세션이 생겼다는 것은 허용이 됐다는 것이다. DBMS 시스템에 마음대로 왔다 갔다 하기 위해 필요한 것이다

모든 포트 앞에는 리스너가 있다. 이 리스너가 해당 포트에 접근하는 것들을 데몬 시스템처럼 항상 돌면서 확인하는 것이다. 그래서 만약에 클라이언트가 한 명이라도 DB에 접근한다라고 하면 스래드가 세 개가 필요한 것이다. 리스너 한 개, db한개 접속자랑 통신할 스래드 한 개. 만약에 열명이 접근하면 도는 스래드는? 12개!

 

 

CREATE USER 'korea'@'%'(모든 아이피에서 접근을 허용한다 원래는 보안때문에 이렇게 하면 안 됨) IDENTIFIED BY 'korea1234';
GRANT ALL PRIVILEGES ON *.*(모든 권한을 위임한다) TO 'korea'@'%'(모든 아이피 접근 허용);
CREATE database koreadb;(koreadb라는 데이터베이스를 만든다)

 

한 번에 실행하면 어디서 오류 났는지 알 수 없으니 오류 날것을 대비해서 "현재 쿼리 실행"으로 한 줄씩 실행한다.

그리고 이제 db 만들었으니 sts와 dbms가 통신을 할 수 있게 커넥션을 해주러 가보겠다.

application.propertis파일을 F2를 눌러 확장자를 yml로 바꿔준다

 

yml은 현존하는 파일 중에 가장 가벼운 파일이다 (사용하기 간편하다)

변경한 yml파일에 위와 같이 입력하면 db연결이 끝난다. db연결이 끝나긴 했는데 spring에서는 jsp와 다르게 db에 연결하는 복잡한 코드를 작성할 필요 없이 DBMS에 연결부터 연결을 끊어주는 것까지 하나의 함수로 모든 작업을 해주는  jpa라는 라이브러리가 있다

위와 같이 yml파일에 작성해준다.

원래는 테이블을 먼저 만들고 자바 오브젝트로 모델링을 해야 한다.

jap라이브러리는 자바 오브젝트를 먼저 만들고 dbms에 데이터를 날려서 테이블로 모델링할 수 있게 해주는 라이브러리이다.

위와 같이 코드를 작성하고 저장을 하는 순간

아래 사진과 같이 user테이블이 만들어진 것을 볼 수 있다.

다음 포스팅에선 왜 이라이브러리를 쓰고 이 방식으로 프로그래밍을 하는지에 대해서 포스팅을 할 것이다.

 

쿼리문이나 외울 필요가 없는 초기 설정 코드는 아래와 같이 보관하면 이쁘게 보관할 수 있다

 

'Springboot' 카테고리의 다른 글

Spring boot / DB {CRUD} 실습 해보기  (0) 2021.06.28
Spring boot실습-OSI통신  (0) 2021.06.28
Spring boot실습 EL표현식 JSPL  (0) 2021.06.24
Spring boot실습 톰켓의 내부  (0) 2021.06.24
Spring boot/실습 response의 이해  (0) 2021.06.23