Wanna be Brilliant Full-Stack Developer

SpringBoot Mysql 및 Github 연결! 본문

Back-End/블로그 만들기 With SpringBoot

SpringBoot Mysql 및 Github 연결!

Flashpacker 2023. 2. 7. 01:10

Mysql을 프로젝트에 연결을 먼저해보려고 한다.

한글 설정을 하기 위해서는 C드라이브 안에 들어가서 보기 안에서 숨김을 다 체크하고 

ProgramData라는 곳에 들어가 MySQL에 들어가면 my.ini 파일을 메모장을 관리자 권한으로 열어서

이부분을 추가하고 재시작을 하면된다!

 

그리고 한글 설정을 확인 하기 위해서는

show variables like 'c%';

을 통해 밑에 사진 처럼 확인이 가능하다!

근데 지금 이 상황에서 SPRING을 실행하면 오류가 뜬다. 왜냐하면 연결 설정이 안되어있기 떄문이다.

연결을 위해서는 yml파일을 수정해야하는데!  프로젝트에 들어오면 Src/main에 application.properties를

applicatin.yml으로 수정해야한다!

yml은 JSON과 비슷한 파일 형식을 가지고 있다. 여기에 모든 스프링에 대한 설정을 할수 있다.

예전에는 xml파일에대해 설정햇다면 스프링부트는 yml에 다 가능하다.

예전에는 rootcontext.xml , Serveltcontextxml이렇게 여러 파일에 설정을 나눠서 했다면

지금은 application.yml에 설정을 할 수 있다.
properties라는 이 확장자를 사용하지 않는 이유는 무슨 설정을 할때 자동완성이 되는데

.으로 구분해서 설정할 수 있는데 Spring.datasource.data-password=와 같은것을 할때

.으로 구분하다보면 적었던것들을 또 적어야하는데 이 형식 보다는 yml형식이 더 좋다.

이렇게 작성이 가능하기 때문에 중복되는 코드가 적어진다.  

또한 들여쓰기가 되어있으니까 어디가 하위인지 알 수 있다. 

또 들어올수있는것들을 언제나 밑에 추가 할 수있다.


지금은 이 밑에를 복사에서 붙이면 된다!

 

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
    username: cos
    password: cos1234

cj.jdbc.Driver 드라이버 클래스 네임! , localhost:3306에 블로그라는 데이터베이스에 

서버타임은 아시아 서울로 되어있고 유저네임은 cos이고 비밀번호는 cos1234이다. 

이걸 저장하고 pom.xml도 잘 수정하고 실행하면 잘 연결이 된다.

open-in-view

이 warning이 있는데 나중에 조금더 살펴보려고 한다!

 


이제 내 프로젝트를 git에 연동하려고 한다!

프로젝트가 있는 파일에 들어가 git init을 하게된다는것은 git을 시작한다는것인데

.git이라는 숨겨진 파일이 보여질것이다!

그리고 git add . 으로 모든 파일을 추가한다!

커밋을 한다음에 github에서 뉴 레포지토리를 만들고 그 주소를 복사한다. 

스프링 프로젝트 폴더와 이 저장소를 연결을 하려고 한다.

git remote add origin 하고 내 주소를 붙여넣기하고 연결을 한다음에! 

마지막으로 연결된 깃헙 저장소에 내 프로젝트 내부에 있는 파일을 업로드 할것이다.

 

근데 왜 git을 하는가? 블로그를 만드는 과정을 기록하면서 만드는것이 좋다

git이라는것을 통해서 할 수 있는데! 한마디로 프로젝트를 git으로 관리 할 수 있다는것이다!

 

우리는 아름다운 광경을 보면 사진으로 기록하고 싶을것이다.

그 장면을 기록한다는것은 스냅샷을 찍는다고 하는데 저녁에 해가 저물때에 스냅샷을 한번 사진으로 찍는다.

그러면 저녁 노을이 지는 사진을 찍을것이다. 그 사진을 사진첩을 저장한다! 

 

그리고 그 다음날 아침에 일찍 일어나니까 태양이 너무 아름다워서 이 장면을 보고 해당 장면을

기록하고 싶어서 다시 사진을 찍었다. 이 사진을 찍는것도 스냅샷이다. 

태양이 떠오르는 사진 한장을 찍어서 사진첩에 보관했다. 

이렇게 아름다운 장면들을 사진을 찍어서 한장 한장씩 보관하다보면 이 사진첩에 많은 사진들이 모이게 될것이다.

 

우리는 원할때마다 사진을 꺼내서 추억을 회상할 수 있다. 

GIT이라는것은 이것이다! 

사진첩에 보관할 수 있는 사진들을 찍어서 보관하는것이다. GIT이라는것은 특정시점 특정 장면을 스냅샷을 통해서

하나씩 하나씩 보관하는것이다. 

우리가 원할때마다 그 장면으로 가서 추억을 회상할 수 있다. 


GIT에대한 구체적인 설명을 하려고한다! 

GIT의 3가지 영역 의미를 정리 해보자!

두가지 기능을 만들어보려고 한다! 우리는 회원가입 기능과 로그인 기능을 만들것이다!

회원가입 기능을 만들기 위해 필요한 파일은 join.java 파일과 

로그인기능에 필요한것은 Login.java 파일이다. 

이 두개의 파일을 만들면 우리가 원하는 기능을 완료할 수 있다!

이것을 GIT을 통해서 관리를 할것이다!

GIT을 통해 관리한다는것은 3가지 영역에 대한 이해가 필요하다!

첫번째는 작업영역이라는 박스가 있고 

두번째는 인덱스라는 박스가 있다. 

세번째는 헤드라는 박스가 있다!

그래서 깃은 이 3가지를 일치하는것이 GIT을 관리하는 방법이다.

 

프로그래밍할떄 어떤 영역이나 파일을 일치한다는 말을 할때 동기화라는 말을 쓴다!

동기화는 무언가를 일치한다는것이다.  두개의 다른 파일을 일치할때?

예를 들어 학생이 있다. 

학생의 신분이 만약 근로 학생이다! 근로 학생이면 신분이 2개이다.

첫번째는 직원이고 두번째는 학생일 수 있다.

이근로 학생은 직원 프로그램과 학생프로그램 둘다 관리가 된다면

직원프로그램과 학생 프로그램에서 근로학생에 대한 데이터를 가지고 있을 수 있다. 

만약에 근로 학생이 사는곳이 서울이라면 주소가 둘다 서울로 저장이 되있을것이다.

근데 만약에 이사를 한다면 근데 프로그램에서는 수정을 직원프로그램에서만 한다면?

이렇게 되면 서로 가지고 있는 데이터가 일치하지 않고 그것을 일치 하는것이 동기화라고 한다!

 

그러면 GIT이라는것은 이 3가지 박스를 동기화 시키는 작업을 통해서 프로젝트를 관리한다

그러면 우리가 회원가입기능을 만들때 

이 작업영역은 일반적으로 프로젝트가 있는 폴더를 말한다.

그리고 그 프로젝트 안에 있는 Join.java파일을 만들었다면 그 작업영역안에 들어가 있는것이다. 

그리고 작업을 하다가 코드를 적다보면 Join.java파일 내부가 완성이 되지 않는 상태에서

Index에 넣지는 않는다. 언제 넣는가?

Join.java가 어느정도 기능이 완성이 되면 Join.java파일에 대한 스냅샷을 만들면 

그것을 인덱스 영역에 넣는다.  한마디로 사진을 찍는것이다.

Join.java 파일을 카메라로 사진을 찍어서 그 형태를 그대로 인덱스에 옮기는것이다.

그것이 ADD라는 명령어이다. 그러면 그 파일에 대한 사진이 만들어졌을것이다. 

그러면 작업영역과 인덱스 영역이 동기화가 된것이다. 

인덱스는 사진이라 말할 수 있다.  작업영역은 흐르는 뷰?(시간이 지날떄마다 가장 아름다운 순간?) 그 뷰가 보일떄 사진을 찍어서 스냅샷을 남기는것이다!

Join.java가 3영역에 다 들어가 동기화 되었다

그리고 사진을 영구히 사진첩으로 저장하기 위해서는? Commit이라는 명령어를 통해서 헤드에 보관한다

헤드는 가지가 있고 그 가지에 점이 찍혀서 Join.java파일이 기록이 된다!

그렇게 되면 3개의 영역이 일치 동기화가 되었다. 

 

그리고 로그인 기능을 만들기 위해 Login.java파일을 만들고 똑같이 작업 파일을 만들어 완성을 한다

그리고 시간이 흐르고 파일이 완성이 되면 카메라를 들어서 그 상태를 사진 찍어서 스냅샷으로 만들면

인덱스 영역에도 동기화가 된다! 

하지만 헤드 영역에 동기화가 되지 않았다. 영구히 보관하기 위해서는 commit을 하여 가지에 다시 점이 찍혀서

Login.java파일이 들어간다! 이것을 하나의 트리 Branch라고 말하는데! 

Branch에 두가지의 상태가 저장이 되어있다.

이 사진첩에 저 두개의 사진이 들어가 있다고 하는것인데

이 헤드는 어떻게 움직이는가? 지금 내가 가리키고 있는 점이 어디인지를 말한다

처음은 Join.java를 가리키는 커서가 있다가 이제 Login.java를 넣고 커밋을 하게되면 커서는 로그인.java로 옮긴다.

 

그래서 커서가 움직이면 현재 상태가 Login.java가 똑같다.

사진첩으로 비교하자면 첫번째 Join이라는 사진이 있고 두번째 로그인이라는 사진이 있다.

그리고 내가 꺼낼수 있는 사진은 Login.java파일이라는 것이다.

이 상태에서 Login.java를 잘못만들었고 Join.java파일을 만들었던 상태로 들어가고 싶고

로그인을 다시 만들고 싶으면 그 순간 커서를 옮기기만 하면 된다!

그러면 그 순간으로 돌아가 다시 작업이 가능하다!