이제 본격적으로 DB연동 및 기타 Properties설정 그리고 공통단을 만들었다~
아직 주니어라 실무에서 세팅을 처음부터 해본 경험은 없었는데 확실히 요즘 세상 좋아진거 같다 실무에서 전자정부만 쓰다가 스프링부트를 접하니 자바기반 어플리케이션 세팅도 간단한 프로젝트라면 나름 할만한거 같다. 구글링에 친절하시고 훌륭하신분들이 정말 많아..
application.properties
## DB ##
spring.profiles.include=db,storage
spring.jpa.show_sql=true
## AWS S3 ##
logging.level.com.amazonaws.util.EC2MetadataUtils=ERROR
##myBatis##
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml
mybatis.config-location=classpath:mybatis/config/mybatis-config.xml
## JPA ##
spring.jpa.properties.hibernate.default_batch_fetch_size=500
application-real.properties
## DB ##
spring.profiles.include=db,storage
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.jpa.show_sql=true
## AWS S3 ##
logging.level.com.amazonaws.util.EC2MetadataUtils=ERROR
## MyBatis ##
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml
mybatis.config-location=classpath:mybatis/config/mybatis-config.xml
## JPA ##
spring.jpa.properties.hibernate.default_batch_fetch_size=500
먼저 가장 베이스가되는 프로퍼티 파일이다.
요즘은 yml방식이 대세지만 스프링부트로 처음하는 프로젝트이기도하고 필자를 제외하고도 백엔드 담당이 한명더 있기때문에 익숙한 방식으로 설정했다.
캡처한 properties가 두개인데... 이유는 로컬에서 개발용으로 쓰는 db는 h2, 실제 배포서버에서는 mariaDb기반이라 분리해놓았다.
로컬에서는 일반 properties파일을 읽게하고 배포서버(aws ec2)에서 배포시에는 real이 붙은 properties를 읽도록 설정하였다.
(지금 근무하는 회사에서도 전자정부를 쓰긴하지만 운영과 로컬, 개발서버에서 각기 다른 프로퍼티를 읽어들이는 방식이라 익숙하긴 하다)
## AWS S3 ##
logging.level.com.amazonaws.util.EC2MetadataUtils=ERROR
이부분은 aws s3세팅 후 warn로그가 막 뜨던데 프로젝트에는 이상없으나 콘솔이 지저분해보여서 error로 세팅하였다. 이것도 s3구글링하여 참고하였다.
spring.profiles.include=db,storage
이부분 엄청 중요하더라.. 실제 db접속정보와 s3를 이용하기 위한 aws iam key값에 대한 정보가 각각
application-db.properties,와 application-storage.properties에 작성되어있다.
이 두개의 파일은 보안이슈 때문에 GitHub 형상관리에서 ignore시켜버렸다.
이거 꼭해야한다. 필자가 한번 실수로 s3 iam key값을 push했다가 5분도 안되서 아마존에서 메일이 날라왔다.
무서워서 바로 키값을 삭제하고 다시 부여받았다...
저런식으로 include를 활용하여 읽어들이도록 하는게 바람직한거같다. 여기서 GitHub에서 관리대상에서 빠져있기때문에 해당 파일 2개는 배포서버에 직접 파일을 만들어 저장하여 외부에 노출되지 않도록한다. 그리고 배포서버에 직접 만든 파일 경로에서 읽어들이도록 설정하였다.
aws관련 프로젝트 배포는 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 이동욱 저자 님의 책을 구입하여 진행하였는데 사실 프로젝트 시작전에 혼자 뚝딱거리면서 해보느라 따로 캡처도 안했다.. 책보면서 차근차근해보니 잘되던데 나중에 시간있을때 다시 차근차근 캡처하면서 블로그에 작성해야지..
다음시간에는 myBatis관련 세팅을 적어보도록 해야지~
'Project > MangoPlate Clone' 카테고리의 다른 글
공통컴포넌트 및 유틸 (0) | 2023.02.14 |
---|---|
JPA Setting 및 Test (0) | 2023.02.14 |
MyBatis Setting 및 Test (0) | 2023.02.14 |
Project Setting (0) | 2023.02.14 |
MangoPlate Clone Project (0) | 2023.02.14 |