{"componentChunkName":"component---src-templates-post-template-jsx","path":"/spring/posts/2022-04-28--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"4815eac2-5f6a-514d-831b-3dd4ec6ab349","html":"<p><span class=\"title__sub1\"> ■ JPA 관련 필드 </span>  </p>\n<h4>■ spring.jpa.<span class=\"text-mark__blue\">database-platform</span></h4>\n<ul>\n<li>JPA 데이터베이스 플랫폼 지정</li>\n</ul>\n<h4>■ spring.jpa.<span class=\"text-mark__blue\">open-in-view </span></h4>\n<ul>\n<li>OSIV(Open Session In View)는 웹 요청이 완료될 때까지 동일한 EntityManager를 갖도록 해줍니다.</li>\n<li>스프링부트에서 OSIV가 기본값으로 true인데, 성능과 확장상 면에서 안좋다고 해서 false로 설정을 껏습니다.</li>\n</ul>\n<h4>■ spring.jpa.<span class=\"text-mark__blue\">show-sql</span></h4>\n<ul>\n<li>콘솔에 JPA 실행 쿼리를 출력합니다.</li>\n</ul>\n<h4>■ spring.jpa.hibernate.<span class=\"text-mark__blue\">format_sql</span></h4>\n<ul>\n<li>콘솔에 출력되는 JPA 실행 쿼리를 가독성있게 표현합니다.</li>\n</ul>\n<h4>■ spring.jpa.hibernate.<span class=\"text-mark__blue\">ddl_auto</span></h4>\n<ul>\n<li>데이터베이스 초기화 전략을 설정</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>none</td>\n<td>아무것도 실행하지 않음</td>\n</tr>\n<tr>\n<td>create</td>\n<td>SessionFactory가 시작될 때 기존테이블을 삭제 후 다시 생성</td>\n</tr>\n<tr>\n<td>create-drop</td>\n<td>create와 같으나 SessionFactory가 종료될 때 drop을 실행</td>\n</tr>\n<tr>\n<td>update</td>\n<td>변경된 스키마만 반영(제거는 하지 않음)</td>\n</tr>\n<tr>\n<td>validate</td>\n<td>엔티티와 테이블이 정상적으로 매핑되었는지만 확인(다르면 예외 발생)</td>\n</tr>\n</tbody>\n</table>\n<p><span class=\"title__sub1\"> ■ DB 관련 필드 </span>  </p>\n<h4>■ logging.level.org.hibernate.type.descriptor.sql</h4>\n<ul>\n<li>SQL에서 물음표로 표기된 부분( bind parameter )을 로그로 출력해서 확인할 수 있습니다.</li>\n</ul>\n<h4>■ spring.datasource.initialization-mode</h4>\n<ul>\n<li>alwasy로 설정해야 외장 DB 초기화 가능</li>\n<li>설정하지 않으면 기본으로 never로 설정: Embedded DB 사용 -> ex. HSQL, H2, Derby</li>\n</ul>\n<h4>■ spring.datasource.data</h4>\n<ul>\n<li>sql 파일 경로를 지정하면 지정된 파일의 스크립트를 실행</li>\n<li>ex. spring.datasource.data=classpath:member.sql, book.sql</li>\n<li>기본값은 classpath:schema.sql, classpath:data.sql</li>\n<li>DB 종류에 따라 다른 스크립트를 사용하려면 spring.datasource.platform을 해당 DB종류(ex. mysql, posgresql)로 설정하고 schema-mysql.sql, data-mysql.sql과 같이 사용</li>\n</ul>\n<p><span class=\"title__sub1\"> ■ 예제 </span>\n<span class=\"title__sub2\"> ■ mysql 기준 </span></p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">server</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">shutdown</span><span class=\"token punctuation\">:</span> graceful\n\n<span class=\"token key atrule\">spring</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">main</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">banner-mode</span><span class=\"token punctuation\">:</span> off\n  <span class=\"token key atrule\">datasource</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> jdbc<span class=\"token punctuation\">:</span>mysql<span class=\"token punctuation\">:</span>//<span class=\"token punctuation\">{</span>host<span class=\"token punctuation\">}</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">{</span>port<span class=\"token punctuation\">}</span>/<span class=\"token punctuation\">{</span>db<span class=\"token punctuation\">}</span><span class=\"token punctuation\">?</span>useSSL=false<span class=\"token important\">&amp;authcommit=false</span>\n    <span class=\"token key atrule\">username</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>uername<span class=\"token punctuation\">}</span>\n    <span class=\"token key atrule\">password</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>password<span class=\"token punctuation\">}</span>\n    <span class=\"token key atrule\">driver-class-name</span><span class=\"token punctuation\">:</span> com.mysql.cj.jdbc.Driver\n  <span class=\"token key atrule\">jpa</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">database-platform</span><span class=\"token punctuation\">:</span> org.hibernate.dialect.MySQL5InnoDBDialect\n    <span class=\"token key atrule\">database</span><span class=\"token punctuation\">:</span> mysql\n    <span class=\"token key atrule\">open-in-view</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n    <span class=\"token key atrule\">show-sql</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">false</span>\n    <span class=\"token key atrule\">hibernate</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">ddl-auto</span><span class=\"token punctuation\">:</span> none\n    <span class=\"token key atrule\">properties</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">hibernate</span><span class=\"token punctuation\">:</span>\n        <span class=\"token key atrule\">format_sql</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n  <span class=\"token key atrule\">redis</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">host</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>host<span class=\"token punctuation\">}</span>\n    <span class=\"token key atrule\">port</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>port<span class=\"token punctuation\">}</span>\n    <span class=\"token key atrule\">database</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n\n<span class=\"token key atrule\">logging</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">level</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">root</span><span class=\"token punctuation\">:</span> DEBUG</code></pre></div>\n<p><span class=\"title__sub2\"> ■ h2 기준 </span></p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">spring</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">h2</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">console</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n      <span class=\"token key atrule\">path</span><span class=\"token punctuation\">:</span> /test\n  <span class=\"token key atrule\">datasource</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">jdbc-url</span><span class=\"token punctuation\">:</span> jdbc<span class=\"token punctuation\">:</span>h2<span class=\"token punctuation\">:</span>mem<span class=\"token punctuation\">:</span>default\n    <span class=\"token key atrule\">driver-class-name</span><span class=\"token punctuation\">:</span> org.h2.Driver\n    <span class=\"token key atrule\">username</span><span class=\"token punctuation\">:</span> sa\n    <span class=\"token key atrule\">password</span><span class=\"token punctuation\">:</span> sa\n  <span class=\"token key atrule\">jpa</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">database-platform</span><span class=\"token punctuation\">:</span> org.hibernate.dialect.H2Dialect\n    <span class=\"token key atrule\">database</span><span class=\"token punctuation\">:</span> h2\n    <span class=\"token key atrule\">hibernate</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">ddl-auto</span><span class=\"token punctuation\">:</span> create<span class=\"token punctuation\">-</span>drop\n    <span class=\"token key atrule\">generate-ddl</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">defer-datasource-initialization</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span></code></pre></div>","fields":{"tagSlugs":["/tags/application-yml/"],"slug":"/spring/posts/2022-04-28--001"},"frontmatter":{"title":"[Spring] application.yml 정리","tags":["application.yml"],"date":"2022-04-28","description":""}}},"pageContext":{"slug":"/spring/posts/2022-04-28--001"}},"staticQueryHashes":[]}