{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2021-01-23--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":"896e788f-9e8f-5bc9-abe5-f022fdc6e703","html":"<p><span class=\"title__sub1\"> # SQL 중심적인 개발의 문제점 </span></p>\n<ul>\n<li>SQL 중심적인 개발을 진행해오고 있다.  </li>\n<li>객체를 DB에 넣기 위해 SQL 의존적인 개  발을 할 수 밖에 없다.</li>\n<li>CRUD SQL 개발에 대해 무한반복 작업을 한다.</li>\n</ul>\n<p><span class=\"title__sub1\">패러다임 불일치</span>\n<span class=\"title__sub2\"> 객채와 관계형 데이터베이스의 차이</span></p>\n<ul>\n<li>\n<ol>\n<li>상속</li>\n</ol>\n</li>\n<li>\n<ol start=\"2\">\n<li>연관관계</li>\n</ol>\n</li>\n<li>\n<ol start=\"3\">\n<li>데이터 타입</li>\n</ol>\n</li>\n<li>\n<ol start=\"4\">\n<li>데이터 식별 방법</li>\n</ol>\n</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/d3b46/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 51.25000000000001%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAABYlAAAWJQFJUiTwAAABUElEQVQoz3WR64rCMBCF8/5vJQiKYhdE9I+CrdpqvVK13qpn+80SicIGpp0mpyffzLgo+tFgMNDjUYn1er3e8d8KNd86V5alrtdrbfhQVVV6Pp8mIifY9+G/eXvjUEPuQneMt9utNpuNuMjf/k1zu92U57nW67Xu9/uHxvGAioVRr9fTbDZTURR2a2jmdfP5XFEUabVa6Xw+fxqGhIfDwcTcvNvt/u3hcrnUZDIx/fF4/Oiju1wudoABpVD2fr+3UqD0pKfTSePxWIvFwkym06mSJLHzOI4NhH/daDRSq9XScDg0UaPRsLIpp9PpqNlsKssyO+v3+5Zj3G63jRKzbrdrOS1zngoiBgEpfWEfUoJzP3WCqtCGuZ/0u4cYpmlmwaTjOKmNy3dvirpMhpXX5FCmaWpElMrEIQXEhRPElBt5Q+inzCKHhP1QBz3xp6/0C9fEATQkSv+BAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/e85cb/001-01.png 480w,\n/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/d9199/001-01.png 960w,\n/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/07a9c/001-01.png 1440w,\n/devHistoryBlog/static/ec6fe5c8b206f6933c67712a7fafeae4/d3b46/001-01.png 1690w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p><span class=\"title__sub2\">객체 모델링 Album 저장 방법<span></p>\n<ul>\n<li>\n<ol>\n<li>객체분해</li>\n</ol>\n</li>\n<li>\n<ol start=\"2\">\n<li>각 객체 저장<br>\n2.1) insert into item…<br>\n2.2) insert into album..  </li>\n</ol>\n</li>\n</ul>\n<p><span class=\"title__sub2\">Album 조회 방법</span></p>\n<ul>\n<li>\n<ol>\n<li>각각의 테이블에 따른 Join SQL 작성</li>\n</ol>\n</li>\n<li>\n<ol start=\"2\">\n<li>각각 객체 생성 및 매핑</li>\n</ol>\n</li>\n<li>\n<ol start=\"3\">\n<li>…복잡</li>\n</ol>\n</li>\n</ul>\n<p>그래서 DB에 저장할 객체에는 상속 관계를 안쓴다.\n객체답게 모델링을 할수록 매핑만 늘어난다.</p>\n<p><span class=\"title__sub2\">자바 컬렉션에 저장/조회 하면?</span></p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">list<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>album<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token class-name\">Album</span> album <span class=\"token operator\">=</span> list<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span>albumId<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token class-name\">Item</span> item <span class=\"token operator\">=</span> list<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span>albumId<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>정리 계속…</p>","fields":{"tagSlugs":["/tags/jpa/"],"slug":"/history/posts/2021-01-23--001"},"frontmatter":{"title":"JPA 왜 쓰는가?","tags":["JPA"],"date":"2021-01-23","description":""}}},"pageContext":{"slug":"/history/posts/2021-01-23--001"}},"staticQueryHashes":[]}