Spring 구동과정, DB연결(mysql)

강정우·2022년 9월 20일
2

spring

목록 보기
3/27
post-thumbnail

  • 앞서 포스팅 했던대로 spring project는 아무 폴더를 들어가서 실행한다고 해서 실행되지 않는다는 것을 배웠다.
    그러다면 spring project 파일을 실행했을 때 pc는 어떻게 실행하고 어떤 파일을 가장먼저 확인할까? 바로 web.xml이다.

web.xml

  • web.xml은 spring project가 실행되는데 있어 약간 설명서 같은 존재이다. 이것을 보고 pc가 어떤 것을 먼저 만들어야겠다고 판단을 한다.
    자, 그럼 web.xml을 순서대로 봐보자
    우선 servlet을 만든다고 나와있고 이 만들어진 servlet-context를 가보면 가장 밑줄에 이 spring project를 폴더 자체를 scan한다고 나와있다.
    그럼 어떤 것을 scan하는가? 바로 annotation들이다. 이것들을 토대로 실행해야할 list를 만드는 것이다.

HandlerMapping

  • 자 이제 spring project가 어떤식으로 시작하는지 알아봤으니 이제 어떤식으로 동작하는지 알아보자
    우선 실행을 누르면 mapped라고 하며 {[/boardList.do]}와 연결이되어있는 것을 확인할 수 있는데 이 객체를 HandlerMapping이 갖고있다.
  • 또한 Spring project는 앞서 언급했든 web_inf라는 보안폴더에 view들이 생성되기에 접근이 불가능하기 때문에 Mapping값을 설정한다.

사진과함께 다시 알아보자
원래 FrontController가 하던 일을 이젠 DispatcherServlet이 한다.
하지만 servlet에선 request객체가 있어 url이라도 알 수 있었지만 spring은 어떻게 알 수 있나? 바로 Handler Mapping에서 알려준다. 하지만 Handler Mapping으로만은 page이동이 안 되고 그래서 View Resolver에게 부탁을 한다. 이것들이 일련의 과정이다.
또한 위 사진을 잘 보면 색깔이 다른 것을 볼 수 있는데
파란색 : spring이 Project를 시작할 때 자동으로 만들어 주는 것.
초록색 : 우리가 만드는 것 즉, 다시말해 우리는 POJO와 View만 만들면 된다.

mySQL

그럼 POJO와 View를 만들기 전에 우선 실제 DB을 만들어보고 연동까지 해보자.

  • 프로젝트 때 썻던 oracle은 pc를 켜는 순간 알아서 켜준다. 하지만 my SQL은 안그렇기 때문에 해당 경로에 들어가서 따로 켜주어야 한다.

1. 서버 open

mysql은 앞서 언급했듯 따로 켜주어야하는데 jupyter notebook 처럼 항상 cmd 창(mysql server)을 켜두어야 한다. 이는 eGovFrame에 들어가면 한큐에 받아져 있다. 즉, 이제 전자정부프레임워크를 켰다?! 그럼 자동으로 mysql server도 열어줘야한다. 이때 startup은 server 시작이고 stop.bat(배치파일)는 파일을 끄는 것이다.
파일을 켰다면 cd 커맨드를 통하여 해당 폴더가 있는 directory로 이동하고 이동 후 mysql -u root -p라는 명령어를 통하여 시작을 해주면 된다. -u는 user id를 뜻하고 -p는 password를 뜻하며 root 계정은 최고 관리자 계정을 뜻한다.

2. [최초 1번 만] 비밀번호 설정

  • 위 사진을 보면 password없이 그냥 들어온 것을 볼 수 있다. 최고 관리자 계정인데 비밀번호 없이 들어온다는 것이 말이 안되기에 비번 설정을 해주겠다. 이런식으로 update query문을 짜서 일단 비밀번호를 설정해주었다.
    참고로 password() 함수는 저기 안에 들어갈 String을 encode화 하여 저장해 둔다.
    update문을 실행했다면 commit을 해야하는데 mysql에선 flush privileges가 그 역할을 대신한다.

3. DB 고르기

oracle은 DBMS하나에 계정이 하나이지만 mysql은 계정하나에 여러 DB를 갖고있기에 먼저 DB부터 선택을 해주어야 한다.
우선 첫번째로 information_schema가 무엇인가 schema는 데이터의 데이터이고 이게 무슨소리냐면 예를 들어 양식이 데이터인데 그 양식안에 들어있는 정보들을 뜻한다.
다음으로 위에서 비번을 설정하거나 어떠한 유저에대한 정보는 모두 mysql에 들어있다. 그래서 그 안에 data를 보고싶다면 show tables를 치면 된다.

4. eclipse와 연동

최초엔 이렇게 뜰텐데 우선 hyb와 sample은 필요없으니 다 날리고 시작하자. JDBC에서 했던것 처럼 우선 Properties에 들어간다. default로 com이 설정되어있을텐데 mysql로 바꾸고 F5를 눌로 새로고침을 한다.
다음 Driver Properties를 눌러 내용을 최신화 한다. 바꾸기 전 모습 참고로 Database의 값과 URL의 가장 마지막/의 이름이 같아야 한다.

5. mysql+ 파일 생성

독립체라는 뜻을 가지고있는 파일에 mysql파일을 생성해준다. Connection profile을 연결해주고 마지막으로 query 문을 입력해주면 table까진 완성했다.
이때 Oravle과 mysql의 다른점은 number가 아니라 int이고 varchar2 는 없는 자료형이며, sysdate가 아닌 now()함수이다. 그리고 실행은 드래그 후 alt+X를 하면 된다.

여기까지 연결했다면 POJO와 View설정은 다음에 포스팅하겠다.

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글