-

[스프링부트 및 JPA] - yml 파일에 대해 이해하기 본문

백엔드 기술 정리/스프링 부트

[스프링부트 및 JPA] - yml 파일에 대해 이해하기

흣차 2022. 1. 27. 00:07
728x90
반응형

스프링부트 내부에는 yml파일이라는 것이 존재합니다.

이 yml파일을 어떻게 쓰는지 하나하나 구체적인 설명보다는 추상적으로 한 번 이해해봅시다.

직접 살펴보겠습니다.

yml파일은 이렇게 프로젝트 파일 내부의 resources폴더 내부에 위치하고 있습니다.

이 파일의 세부 설정을 통해 프로젝트의 기본적인 설정을 할 수 있습니다.

예를들어 '자신이 타이어를 만드는 기술자' 라고 해봅시다.

그럼 이 타이어를 만들 때 고려할 것이 정말 많을 것입니다.

공장의 직원들의 일 분배나, 타이어 제조하는 기계의 위치나, 어떻게 건조할건지, 어디에 납품할 것인지 등등 세부적으로 모두 설계가 완료된 시점에서부터 공장을 가동하기 시작하듯이 프로젝트 또한 기초적인 설정을 마친 뒤 프로젝트 개발이 시작됩니다.

yml파일은 바로 이 프로젝트 개발의 청사진 즉, blueprint라고 이해하시면 되겠습니다.

그래서 스프링 서버가 시작이 되면 이 yml파일을 참고해서 프레임 워크 서버가 생성됩니다.

그래서 그 내부를 살펴보면 첫째줄의 server:의 port :8080이라고 나와있는 이 부분 보이시죠?

서버의 포트번호가 8080이어야 서버에 들어갈 수 있다는 것을 의미합니다.

나중에 웹 서버를 실행하고 사이트의 주소에 들어갈 때 localhost:8080/이라고 입력해야 들어가지는데 이 8080을 여기에서 설정할 수 있습니다.

계속해서, context-path:/ 라고 나오는데 이 구문은 /라고 입력해야 이 내부로 들어올 수 있다는 것을 의미합니다.

계속해서 encoding : 내부에 charset:utf-8이라고 나오고 enable:true라고 나옵니다.

이것은 프로젝트 개발은 유니코드를 위한 가변 길이 문자 인코딩 방식을 사용할 것인데, 대부분 아니 모든 개발은 UTF-8로 이루어지니 꼭 참고해주셔야 합니다.

그리고 여길보면 어떤 요청이 왔을 때 .JSP파일로 응답한다는 설정을 해놓은 것입니다.

뷰리졸버라는 설정인데 요청을 보낸 모든 것의 응답은 .JSP로 하겠다라고 이해하면 됩니다.

만약 데이터를 JSON으로 보낼 수도 있고 XML파일로 보낼 수도 있는데 설정을 .JSP로 하겠습니다.

그리고 DB설정입니다.

자 driver-class-name은 org.mariadb.jdbc.driver라고 했는데 이것은 데이터 저장 장소를 mariadb라는 db를 사용하겠단 것을 의미합니다.

그리고 url을 보시면 db의 주소를 저렇게 작성할 수 있는데요.

보통 mariaDB를 처음 만들 때 MySQL이 깔려있지 않으면 접속 포트를 3306이 default값입니다.

따라서 저기서 db접속 주소를 바꿀 수 있고 이후 /jeensung이라고 써놨는데 저건 제가 만들 table이름입니다.

이후 뒤에 serverTimezone이라고 설정할 수 있는데 이건 서버의 시간을 Asia/Seoul이라고 해놓으면 시간을 동기화 할 수 있습니다.

그리고 밑에 username과 password를 설정할 수 있는데 username은 db사용자, pw는 비밀번호입니다.

jpa 항목을 살펴보겠습니다.

hibernate의 ddl-auto:를 보시면 create라고 되어 있는데 이것이 create라고 되어 있으면 서버를 가동할 때마다 db의 값이 모조리 날라가고 새로 table을 생성하게 됩니다.

그렇기 때문에 db를 초기화하고 싶을 때는 이 값을create라고 선언하면 됩니다.

예전에 기사를 봤는데 모 대기업에서 db값을 실수로 create라고 하는 바람에 모조리 날라간적이 있었죠?

다행히 백업할 수 있었다지만 고객의 db가 모두 날라간다고 생각하니 생각만해도 아찔하네요.

그렇기에 DB의 정보는 정말로 관리 잘해야합니다.

따라서 ddl-auto의 설정은 처음에만 create라고 선언하고 이후에는 update라고 바꾸어서 사용해야 초기화되지 않습니다.

그리고 servlet을 보면 max-file-size: 2MB라고 설정했는데 파일을 요청할 때 2MB의 크기로 제한한 것입니다.

그리고 security를 보시면 name과 pw가 있는데 이 서버를 아무나 손대고 조작하면 안되겠죠?

그래서 여기에서 name과 pw를 설정하여 보안을 유지할 수 있습니다. 나중에 자세히 살펴보겠습니다.

감사합니다.

다음 시간엔 컨트롤러에 대해 다루어보겠습니다.

728x90
반응형
Comments