<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Deve1oper</title>
    <link>https://deve1oper.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 13 Jul 2026 19:17:15 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>DevS1K</managingEditor>
    <image>
      <title>Deve1oper</title>
      <url>https://tistory1.daumcdn.net/tistory/5366140/attach/849a86e7136d4347a3c530f4e8608c2e</url>
      <link>https://deve1oper.tistory.com</link>
    </image>
    <item>
      <title>Docker / 다중 Docker 환경 : 로컬과 Colima에서 명령어 전환하기</title>
      <link>https://deve1oper.tistory.com/23</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 &lt;b&gt;Oracle DB를 쓰기 위해선 Colima에서 x86_64 환경을 생성하여 원격 Docker로 사용&lt;/b&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면에 &lt;b&gt;Mongo DB는 ARM64에서도 동작하기 때문에 로컬 Docker로 사용&lt;/b&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 작업할 때 Colima를 실행하면, 터미널에서 Docker 명령어는 로컬 환경 대신 Colima의 원격 환경에서 실행되도록 전환된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러면 로컬 Docker에 명령어를 줄 때 어떻게 해야 할까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 방법이 있지만 2가지 방법만 작성해 보도록 할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- 전환하여 사용하기&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&amp;bull; 기본 명령어&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736452214907&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker context use [context명]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;&amp;bull;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;전환 방법&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 활성화된 docker 찾기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736451273789&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker context ls&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-10 오전 4.34.09.png&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbNxMF/btsLJzV3mpo/T7PuiT0YElRkOMM83hkq7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbNxMF/btsLJzV3mpo/T7PuiT0YElRkOMM83hkq7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbNxMF/btsLJzV3mpo/T7PuiT0YElRkOMM83hkq7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbNxMF%2FbtsLJzV3mpo%2FT7PuiT0YElRkOMM83hkq7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;164&quot; data-filename=&quot;스크린샷 2025-01-10 오전 4.34.09.png&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사진과 같이 Colima 환경의 Docker로 활성화되어 있는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( * : 활성화 상태 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 로컬 환경 전환&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736451518640&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker context use default&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-10 오전 4.41.25.png&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/onIdY/btsLIaQKO60/fdq6j5JJpoGUwNSZjCkDZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/onIdY/btsLIaQKO60/fdq6j5JJpoGUwNSZjCkDZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/onIdY/btsLIaQKO60/fdq6j5JJpoGUwNSZjCkDZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FonIdY%2FbtsLIaQKO60%2Ffdq6j5JJpoGUwNSZjCkDZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;164&quot; data-filename=&quot;스크린샷 2025-01-10 오전 4.41.25.png&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬 환경으로 전환된 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 컨테이너 목록 명령어를 입력하면 로컬에 있는 컨테이너 목록이 나오게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;반대로 Colima 환경으로 전환하고자 한다면 ?&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736453658844&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker context use colima&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- 전환없이 사용하기&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&amp;bull;&lt;span&gt;&amp;nbsp;기본 명령어&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736452083532&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker --context default [명령어]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&amp;bull;&lt;span&gt; 사용 방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;예시 1. 로컬 환경 mongodb-container 컨테이너 실행하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736452430198&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker --context default start mongodb-container&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;예시 2. Colima 환경 &lt;b&gt;oracledb-container&lt;/b&gt;&amp;nbsp; 컨테이너의 bash 셸 접속하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736452655843&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker --context colima exec -it oracledb-container bash&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 명령어를 써보며 느낀 점은 전환이 반복되고 자주쓰는 작업은 bash 스크립트로 작성해서 쓰자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AWS &amp;amp; DOCKER</category>
      <category>colima</category>
      <category>colima docker</category>
      <category>docker --context</category>
      <category>docker context</category>
      <category>docker 명령어</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/23</guid>
      <comments>https://deve1oper.tistory.com/23#entry23comment</comments>
      <pubDate>Fri, 10 Jan 2025 05:29:36 +0900</pubDate>
    </item>
    <item>
      <title>Oracle / 테이블 스페이스 생성, 계정 생성, 권한 부여하기</title>
      <link>https://deve1oper.tistory.com/22</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;전 포스트에서 Mac OS M칩에 Oracle DB 설치하는 글을 올렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 그 이후에 테이블 스페이스 생성부터 계정 생성, 권한 부여까지 할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 테이블 스페이스 생성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블&amp;nbsp;스페이스는&amp;nbsp;데이터를&amp;nbsp;저장하는&amp;nbsp;저장소이다.&amp;nbsp;기본&amp;nbsp;테이블&amp;nbsp;스페이스를&amp;nbsp;사용해도&amp;nbsp;되지만&amp;nbsp;용도,&amp;nbsp;복구&amp;nbsp;및&amp;nbsp;백업,&amp;nbsp;보안,&amp;nbsp;데이터의&amp;nbsp;용량&amp;nbsp;증가&amp;nbsp;등&amp;nbsp;각&amp;nbsp;요구에&amp;nbsp;맞게&amp;nbsp;생성하고&amp;nbsp;관리하는&amp;nbsp;게&amp;nbsp;맞다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 테이블 스페이스 종류&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 17.3256%;&quot;&gt;PERMANENT&lt;/td&gt;
&lt;td style=&quot;width: 82.6744%;&quot;&gt;일반적인 데이터 저장 (테이블, 뷰, 인덱스 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 17.3256%;&quot;&gt;UNDO&lt;/td&gt;
&lt;td style=&quot;width: 82.6744%;&quot;&gt;트랜잭션 롤백을 위한 데이터 정보 저장 (변경 내역, 이전 값)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 17.3256%;&quot;&gt;TEMPORARY&lt;/td&gt;
&lt;td style=&quot;width: 82.6744%;&quot;&gt;임시 데이터 저장 (연산, 정렬 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1-1. PERMANENT 테이블 스페이스 생성&lt;/p&gt;
&lt;pre id=&quot;code_1736366260167&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLESPACE shared_data 
DATAFILE '/u01/app/oracle/oradata/shared_data.dbf' 
SIZE 100M 
AUTOEXTEND ON NEXT 10M 
MAXSIZE UNLIMITED;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-09 오전 5.18.19.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xCWD0/btsLHQK2e1C/PzBskReWfK6QgbjicHMKbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xCWD0/btsLHQK2e1C/PzBskReWfK6QgbjicHMKbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xCWD0/btsLHQK2e1C/PzBskReWfK6QgbjicHMKbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxCWD0%2FbtsLHQK2e1C%2FPzBskReWfK6QgbjicHMKbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;603&quot; height=&quot;142&quot; data-filename=&quot;스크린샷 2025-01-09 오전 5.18.19.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1-2. TEMPORARY 테이블 스페이스 생성&lt;/p&gt;
&lt;pre id=&quot;code_1736366329865&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TEMPORARY TABLESPACE temp_data 
TEMPFILE '/u01/app/oracle/oradata/temp_data.dbf' 
SIZE 50M 
AUTOEXTEND ON NEXT 10M 
MAXSIZE UNLIMITED;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-09 오전 5.18.31.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ll32B/btsLHnP5woR/wNl3HeKW5Ae8oASQPZnyWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ll32B/btsLHnP5woR/wNl3HeKW5Ae8oASQPZnyWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ll32B/btsLHnP5woR/wNl3HeKW5Ae8oASQPZnyWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fll32B%2FbtsLHnP5woR%2FwNl3HeKW5Ae8oASQPZnyWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;603&quot; height=&quot;68&quot; data-filename=&quot;스크린샷 2025-01-09 오전 5.18.31.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 88px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 27.5582%; height: 20px;&quot;&gt;DATEFILE ,TEMPFILE [경로]&lt;/td&gt;
&lt;td style=&quot;width: 72.4418%; height: 20px;&quot;&gt;&lt;span&gt;저장되는 파일의 경로와 이름 설정&amp;nbsp;&lt;/span&gt;&lt;br /&gt;Docker 컨테이너 내 DB 데이터 저장 위치 경로는 '/u01/app/oracle/oradata/' 이다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 27.5582%; height: 17px;&quot;&gt;SIZE [크기]&lt;/td&gt;
&lt;td style=&quot;width: 72.4418%; height: 17px;&quot;&gt;초기 생성 크기 설정&lt;br /&gt;기본값 : 20MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 27.5582%; height: 17px;&quot;&gt;AUTOEXTEND ON NEXT [크기]&lt;/td&gt;
&lt;td style=&quot;width: 72.4418%; height: 17px;&quot;&gt;공간이 부족할 경우 자동으로 늘어나는 크기 설정&lt;br /&gt;기본값 : OFF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 27.5582%; height: 17px;&quot;&gt;MAXSIZE [크기]&lt;/td&gt;
&lt;td style=&quot;width: 72.4418%; height: 17px;&quot;&gt;크기 제한 설정&lt;br /&gt;기본값 : UNLIMITED&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 테이블스페이스 목록 보기&lt;/p&gt;
&lt;pre id=&quot;code_1736367556303&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TABLESPACE_NAME 
FROM DBA_TABLESPACES;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-09 오전 5.20.55.png&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DKkUm/btsLHywMp8y/NF5YKD8D3jEHHlR6XE0yKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DKkUm/btsLHywMp8y/NF5YKD8D3jEHHlR6XE0yKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DKkUm/btsLHywMp8y/NF5YKD8D3jEHHlR6XE0yKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDKkUm%2FbtsLHywMp8y%2FNF5YKD8D3jEHHlR6XE0yKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;202&quot; data-filename=&quot;스크린샷 2025-01-09 오전 5.20.55.png&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사진과 같이 테이블 스페이스가 생성된 게 보인다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 계정 생성 및 권한 부여&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-1. 계정 생성&lt;/p&gt;
&lt;pre id=&quot;code_1736367198717&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE USER [USERNAME]
IDENTIFIED BY [PASSWORD] 
DEFAULT TABLESPACE shared_data 
TEMPORARY TABLESPACE temp_data;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;위와 같이 본인이 사용할 USERNAME과 PASSWORD를 넣고 SQL문을 작성해 준다. 테이블 스페이스는 위에서 생성한 테이블 스페이스를 기본값으로 설정해 줬다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-2. 계정 데이터베이스 권한 부여&lt;/p&gt;
&lt;pre id=&quot;code_1736367842684&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;GRANT RESOURCE, CONNECT TO [USERNAME]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CONNECT : 데이터베이스 접속 권한 부여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RESOURCE : 테이블, 프로시저, 타입 등 권한 부여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 진행했으면 Oracle DB 기본 계정 생성과 권한 부여가 완료되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜? MySQL과 다르게 Oracle은 계정 생성이 필수인가?&lt;/b&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;항상 팀 프로젝트 할 때 MySQL을 사용할 때 root 계정으로 모든 작업을 다했다. 하지만 Oracle은 다르다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MySQL root 계정과 Oracle의 sys 계정은 같은 데이터베이스 관리자 계정이지만, sys은 root와 다르게 엄격하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MySQL은 독립적인 스키마로 동작하여 테이블 CRUD 작업해도 큰 문제없지만, Oracle은 단일 데이터베이스 내에 모든 스키마(시스템 포함)가 존재하여 sys계정에서의 실수는 치명적이다. 그래서 Oracle은 스키마=사용자 개념이 강하게 연결되어 있어서 계정 생성은 필수다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;물론 MySQL도 계정을 생성해야하지만 Oracle처럼 엄격하지 않다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DATABASE</category>
      <category>mysql oracle</category>
      <category>oracle</category>
      <category>oracle db</category>
      <category>tablespace</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/22</guid>
      <comments>https://deve1oper.tistory.com/22#entry22comment</comments>
      <pubDate>Thu, 9 Jan 2025 07:05:18 +0900</pubDate>
    </item>
    <item>
      <title>Oracle / M칩 MAC OS 에 Oracle DB 설치하고 접속하기</title>
      <link>https://deve1oper.tistory.com/21</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;설치하고 접속하기 전 전체과정을 보고 가자.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Colima, Docker 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Colima 실행, Docker 이미지 다운로드 및 컨테이너 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Oracle DB 접속 후 SYS 계정 로그인하기.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜? Colima를 설치하는거지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle은 Apple silicon/M칩을 지원하지 않기 때문에 그래서 Oracle DB를 사용하기 위해 x86/64 환경이 필요하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 환경을 제공해 주는 Colima와 Docker를 필수로 설치하고 진행한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. Colima 설치&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736280525438&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install colima&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. Docker 설치 (택1)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Docker 공홈에서 설치하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://desktop.docker.com/mac/main/arm64/Docker.dmg&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Downlad for Mac - Apple Silicon&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 터미널에서 설치하기&lt;/p&gt;
&lt;pre id=&quot;code_1736281338283&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install docker&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료됐으면 colima 실행과 docker에 oracle 이미지를 불러와서 컨테이너로 실행해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. Colima 실행&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736281166899&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;colima start --arch x86_64&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-08 오전 5.26.16.png&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KPUmh/btsLGiUWALX/lgL9WNsoWReXjQhJHOjUy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KPUmh/btsLGiUWALX/lgL9WNsoWReXjQhJHOjUy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KPUmh/btsLGiUWALX/lgL9WNsoWReXjQhJHOjUy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKPUmh%2FbtsLGiUWALX%2FlgL9WNsoWReXjQhJHOjUy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;204&quot; data-filename=&quot;스크린샷 2025-01-08 오전 5.26.16.png&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 뜬다면 실행완료!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. Docker 이미지 불러오기 / 컨테이너 실행하기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지 불러오기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1736281781979&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker pull jaspeen/oracle-xe-11g&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(1회만) 컨테이너 생성 후 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1736281964145&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker run -d --name oracle11g -p 1521:1521 jaspeen/oracle-xe-11g&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-d : 백그라운드 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--name : 컨테이너 명 지정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-p : 외부 연결을 위한 포트 지정 (oracle 기본 포트 1521)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 컨테이너 명은 &lt;b&gt;oracle11g&lt;/b&gt;로 하였다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다음 명령어는 앞으로 위와 같이 컨테이너 생성한 후에 &lt;/b&gt;&lt;b&gt;&lt;u&gt;앞으로 사용할 때 컨테이너 실행방법&lt;/u&gt;이다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컨테이너 실행&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1736282351312&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker start oracle11g&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. Oracle DB sqlplus 접속&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736282602593&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker exec -it oracle11g sqlplus&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. Oracle 초기설정된 sys 계정 로그인하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;user-name:&lt;/b&gt; sys as sysdba&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;password :&lt;/b&gt; oracle&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-08 오전 5.53.28.png&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zsn4e/btsLHAtHFRY/D8GcxmuscFhIBQMWkw8KJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zsn4e/btsLHAtHFRY/D8GcxmuscFhIBQMWkw8KJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zsn4e/btsLHAtHFRY/D8GcxmuscFhIBQMWkw8KJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzsn4e%2FbtsLHAtHFRY%2FD8GcxmuscFhIBQMWkw8KJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;521&quot; height=&quot;366&quot; data-filename=&quot;스크린샷 2025-01-08 오전 5.53.28.png&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;366&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 아래와 같이 오류가 뜬다면 기다렸다가 로그인해보도록 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1736283348484&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 Docker + Colima를 이용한 Oracle DB 설치 및 접속방법을 알아보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 종료방법도 알아보고 가자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;5. Docker 컨테이너 및 Colima 종료하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736283830192&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker stop oracle11g&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1736283838241&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;colima stop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Docker Desktop과 Colima에 대한 궁금증!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜? Docker Desktop Containers 목록에 없는거죠?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜? docker Container ls -a 명령어를 입력했는데 생성한 컨테이너가 보이지 않죠?&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Colima는 Linux, Mac OS를 지원하며, 기본적으로 Docker로 지정되어 동작하는 VM이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(다만, 동작하기 위해선 Docker가 설치되어 있어야 한다.)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 Colima에서 실행되는 컨테이너는 Mac OS에 설치된 Docker 컨테이너와 독립적으로 동작하기 때문에 Docker Desktop에서 Containers 목록에 없다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Docker Desktop Containers 목록에선 Colima를 실행하든 안하든 안 보이는 게 당연하다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 Colima에서 생성했기 때문에 &lt;u&gt;Colima가 종료되면&lt;/u&gt; docker container ls -al 명령어를 입력하면 해당 글에서 생성된 oracle11g가 안 보인다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;docker Container ls -a 명령어를 통해 안 보인다면 Colima를 실행해 보자!&lt;/b&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>DATABASE</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/21</guid>
      <comments>https://deve1oper.tistory.com/21#entry21comment</comments>
      <pubDate>Wed, 8 Jan 2025 07:20:11 +0900</pubDate>
    </item>
    <item>
      <title>Vue / 프로젝트 생성 시 초기 설정</title>
      <link>https://deve1oper.tistory.com/20</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;Vue를 쓰기 위해 npm 명령어를 통해 프로젝트를 생성시 Vue 초기 설정을 하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;해당 항목에 대해 어떤 건지 알아보고 가자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Vue 기초를 배우고자 할때 YES / NO의 볼드체를 따라간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;단, 권장은 아니기에 본인에 맞게 추가하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1. &lt;b&gt;Add TypeScript? &lt;/b&gt;YES&lt;b&gt; / NO&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;타입 스크립트 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;TypeScript는 JavaScript 기반의 언어이며, 정적 타입이 추가되며 객체 지향 프로그래밍 언어로 클래스 기반 객체를 만들어 관리할 수 있다. 그리고 컴파일을 통해 .ts&amp;nbsp; -&amp;gt; .js 변환하며 이 단계를 통해 오류확인과 이를 통해 코드의 가독성을 높인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. &lt;b&gt;Add JSX Support? &lt;/b&gt;YES&lt;b&gt;&lt;b&gt; / NO&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;JSX는 JavaScript를 확장한 문법이며, JavaScript 코드 안에 HTML을 작성하는 방식이다. 주로&amp;nbsp;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;React에서 사용하는 문법이다. &lt;/span&gt;Vue에선 기본적으로 템플릿을 HTML처럼 사용하지만, JSX를 사용할 수도 있다.&amp;nbsp; 그러나 Vue에서는 기본적으로 template을 사용하는 방식을 선호한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3. &lt;b&gt;Add Vue Router for Single Page Application development? &lt;b&gt;&lt;b&gt;YES / &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;NO&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;SPA 구성을 위해 Vue Router를 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Vue Router는 Vue.js에서 라우팅 기능을 제공하는 라이브러리로, 여러 페이지로 구성된 SPA(Single Page Application)를 만들 때 필수적으로 사용한다. 예를 들어, 페이지 간 이동이 필요할 때 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;4. &lt;b&gt;Add Pinia for state management? &lt;/b&gt;YES&lt;b&gt;&lt;b&gt;&lt;b&gt; / NO&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;상태 관리를 위해 Pinia를 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Vue 3에서의 상태 관리 라이브러리이다. 여러 컴포넌트 간 상태를 쉽게 공유할 수 있으며 중앙 집중식 관리를 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그래서 중앙에서 상태 관리하기 떄문에 일관성 유지와 컴포넌트가 많아져도 상태 변화를 예측하며 안정적인 처리를 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;5. &lt;b&gt;Add Vitest for Unit Testing? &lt;/b&gt;YES&lt;b&gt;&lt;b&gt;&lt;b&gt; / NO&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;테스트 실행을 하기 위한 Vitest를 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Vitest는 단위 테스트를 작성할 때 사용하는 테스트 프레임워크이다. 빠르게 테스트를 작성하고 실행할 수 있는 테스트 러너이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;6. &lt;b&gt;Add an End-to-End Testing Solution? &lt;/b&gt;YES&lt;b&gt;&lt;b&gt;&lt;b&gt; / NO&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;E2E 테스트 도구를 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;End-to-End(E2E) 테스트는 시스템의 전체흐름을 테스트하기 때문에 애플리케이션의 모든 구성 요소가 정상적으로 작동하는지 확인할 때 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;7. &lt;b&gt;Add ESLint for code quality? &lt;b&gt;&lt;b&gt;YES / &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;NO&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;ESLint를 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;ESLint는 JavaScript 및 TypeScript 코드의 문법 오류나 비효율적인 코드 패턴을 찾아준다. 일관된 코딩 스타일을 유지하는 데 도움이 되는 도구이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;(예 : 선언되지 않은 변수, 사용되지 않은 변수 등)&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;8. &lt;b&gt;Add Prettier for code formatting? &lt;b&gt;&lt;b&gt;YES / &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;NO&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;Prettier를 추가할 것인지?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Prettier는 코드 스타일을 자동으로 일관되게 만들어준다. 주로 ESLint와 함께 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;(예 : 들여쓰기, 공백, 세미콜론 등)&lt;/p&gt;</description>
      <category>React &amp;amp; Vue</category>
      <category>vue</category>
      <category>vue create</category>
      <category>vue npm</category>
      <category>vue project</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/20</guid>
      <comments>https://deve1oper.tistory.com/20#entry20comment</comments>
      <pubDate>Wed, 27 Nov 2024 21:37:11 +0900</pubDate>
    </item>
    <item>
      <title>MySQL / ERROR! The server quit without updating PID file.</title>
      <link>https://deve1oper.tistory.com/19</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;mysql 설정 파일을 변경하고 재시작하다가 'ERROR! The server quit without updating PID file (/usr/local/mysql/data/@@.pid) ' 이러한 오류 메시지가 발생되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 해결하고자 검색을 통해 권한문제라 /usr/local/mysql 에 권한을 부여하면 된다하여 권한을 부여했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1704765029466&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chmod -R 777 /usr/local/mysql&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 해결되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무작정 검색하고 따라해서 디렉터리 위치를 못보고 권한을 부여했던 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 /usr/local/mysql 이 아닌 /usr/loca/mysql&lt;b&gt;/data &lt;/b&gt;에 pid 파일이 위치했기 때문에 계속 오류가 발생되었던 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1704765059546&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chmod -R 777 /usr/local/mysql/data&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어로 권한을 부여하니 성공했다는 메시지가 떴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항상 오류를 확인하고 또 확인하자,,&amp;nbsp;&lt;/p&gt;</description>
      <category>DATABASE</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/19</guid>
      <comments>https://deve1oper.tistory.com/19#entry19comment</comments>
      <pubDate>Tue, 9 Jan 2024 10:54:44 +0900</pubDate>
    </item>
    <item>
      <title>Oracle / ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired.</title>
      <link>https://deve1oper.tistory.com/17</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;외래키 설정 도중&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;라는 오류가 발생 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;오류를 보니 해당 테이블이 자원을 사용 중이라는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;그래서 문제점을 찾아보았고, &lt;/span&gt;&lt;/span&gt;UPDATE를 하고 commit을 하지않고 테이블을 수정하려하니 문제가 생긴 것이였다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 commit하고 외래키 설정을 하니 오류가 발생되지 않고 적용이 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;만약 해결이 되지 않는다면 아래 방법으로 해결한다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686215064958&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select a.sid, a.serial#, a.status 
from v$session a, v$lock b, dba_objects c 
where a.sid=b.sid and b.id1=c.object_id and b.type='TM' and c.object_name='[테이블 명]';&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1686215117341&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;alter system kill session '[SID], [SERIAL#]';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-08 오후 6.05.40.png&quot; data-origin-width=&quot;1571&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bd9P3f/btsi9W60w15/ovRt1H0uvf5paREg6VJTW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bd9P3f/btsi9W60w15/ovRt1H0uvf5paREg6VJTW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bd9P3f/btsi9W60w15/ovRt1H0uvf5paREg6VJTW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd9P3f%2Fbtsi9W60w15%2FovRt1H0uvf5paREg6VJTW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1571&quot; height=&quot;339&quot; data-filename=&quot;스크린샷 2023-06-08 오후 6.05.40.png&quot; data-origin-width=&quot;1571&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자 테이블명 'REL_T2'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사진 처럼 사용 중인 것이 보이고 kill을 해주었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-08 오후 6.10.43.png&quot; data-origin-width=&quot;1571&quot; data-origin-height=&quot;129&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUXqBC/btsjb9D0YnW/P1kcb3Jiq6AWrkEYSEey91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUXqBC/btsjb9D0YnW/P1kcb3Jiq6AWrkEYSEey91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUXqBC/btsjb9D0YnW/P1kcb3Jiq6AWrkEYSEey91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUXqBC%2Fbtsjb9D0YnW%2FP1kcb3Jiq6AWrkEYSEey91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1571&quot; height=&quot;129&quot; data-filename=&quot;스크린샷 2023-06-08 오후 6.10.43.png&quot; data-origin-width=&quot;1571&quot; data-origin-height=&quot;129&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ALTER 하고 난뒤 모습이다.&lt;/p&gt;</description>
      <category>DATABASE</category>
      <category>ora-00054</category>
      <category>oracle db</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/17</guid>
      <comments>https://deve1oper.tistory.com/17#entry17comment</comments>
      <pubDate>Thu, 8 Jun 2023 18:19:54 +0900</pubDate>
    </item>
    <item>
      <title>Git / gitignore 변경 후 적용이 안될 때</title>
      <link>https://deve1oper.tistory.com/16</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;application.properties 파일과 같이 중요한 정보 파일과 빌드 파일을 gitignore를 통해 제외목록에 올렸는데도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sourcetree에서 커밋 대상파일로 떡하니 올라와있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이럴 때 캐시를 삭제하고 다시 커밋하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* 전체 캐시 삭제&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1671290964938&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git rm -r --cached .&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-12-18 오전 12.21.36.png&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXdigo/btrTSLhfvJS/9PWj38DhYe2MLyDR3gu8Mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXdigo/btrTSLhfvJS/9PWj38DhYe2MLyDR3gu8Mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXdigo/btrTSLhfvJS/9PWj38DhYe2MLyDR3gu8Mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXdigo%2FbtrTSLhfvJS%2F9PWj38DhYe2MLyDR3gu8Mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;345&quot; data-filename=&quot;스크린샷 2022-12-18 오전 12.21.36.png&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사진과 같이 올라가있던 캐시들이 삭제된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* 지정된 파일 캐시 삭제&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1671291828823&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git rm -r --cached 파일명&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 제외할 파일만 캐시를 지워도 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;pre id=&quot;code_1671290973788&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git add .

git commit -m &quot;clear&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-12-18 오전 12.21.36 2.png&quot; data-origin-width=&quot;971&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk8VEP/btrTVhtbPsT/tHopLNswFcmJjA5syEKeYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk8VEP/btrTVhtbPsT/tHopLNswFcmJjA5syEKeYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk8VEP/btrTVhtbPsT/tHopLNswFcmJjA5syEKeYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk8VEP%2FbtrTVhtbPsT%2FtHopLNswFcmJjA5syEKeYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;197&quot; data-filename=&quot;스크린샷 2022-12-18 오전 12.21.36 2.png&quot; data-origin-width=&quot;971&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 파일들을 commit 하면 gitignore에 작성했던 이미 올려진 application.properties를 포함한 제외 파일들이 변경된 것이 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1671292071907&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원격 저장소를 업데이트한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Git</category>
      <category>git</category>
      <category>git gitignore</category>
      <category>gitignore</category>
      <category>gitignore 적용안됨</category>
      <category>gitignore 적용오류</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/16</guid>
      <comments>https://deve1oper.tistory.com/16#entry16comment</comments>
      <pubDate>Sun, 18 Dec 2022 00:49:52 +0900</pubDate>
    </item>
    <item>
      <title>JPA vs MyBatis 장단점? 차이?</title>
      <link>https://deve1oper.tistory.com/15</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;JPA와 MyBatis의 장단점으로 차이를 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;JPA&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JPA는 JAVA ORM(Object Relational Mapping) 기술에 대한 API 표준 명세이며 Spring Data JPA를 통해 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DB 데이터와 Object와 매핑시킨다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 장점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1. MySQL, MS-SQL, Oracle등 RDB에 종속적이지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;rarr;&amp;nbsp; 각 DB별 특정 쿼리를 작성할 필요없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;2. 쿼리를 직접 작성할 필요없고, 기본적인 CRUD을 제공하기 때문에 빠른 개발이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(SQL문) Select * From User where Email= &quot;~&quot; &amp;rarr; (Repository) findByEmail(&quot;~&quot;);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;3. 테이블이 변경되면 엔티티만 변경하면 되기 때문에 간편하게 수정을 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 단점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1. 이해해야할 기술 내용들이 많아 학습하는데 오래 걸린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 2. 복잡한 쿼리문을 사용할 때 어려움이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;rarr; JPQL, &lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;QueryDSL&lt;/span&gt;를 사용하면 직접 SQL문을 쓸 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;MyBatis&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MyBatis는 SQL Mapper이고 &lt;b&gt;SQL과 Object와 매핑을 시킨다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 장점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1. JPA와 다르게 쉽고 SQL문을 직접 쓰기 때문에 복잡한 쿼리문에 능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 단점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1. DB나 테이블이 변경되면 수정해야 하는 부분이 많다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;rarr; &lt;span&gt;&amp;nbsp;DB 변경 시 해당 DB에 맞는 로직으로 전체적인 수정이 필요하다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;2. JPA와 다르게 상당히 많은 파일들과 설계하는데 복잡하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;3. 특정 데이터베이스에 종속되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mybatis과 JPA를 같은 로직으로 만들었을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 세팅으론 JPA가 엄청 간단했었고 Mybatis는 파일도 워낙 많고.. 그냥 모든게 복잡했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세팅 이후 JPA가 사용하기 편하고 프로젝트에서 작성 시간 효율이 뛰어났지만 어느부분에서 막히면 해결하는데 어려움이 있다. 특히 막히는 부분은 심화응용할 때 또 찾아보고 이해하고....!! 숙련하는데 오래걸린다. 이 부분에서는 확실히 Mybatis이 편했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 JPA에서도 JPQL, QueryDSL로도 복잡한 쿼리를 지원하고 모든면이 우수하기 때문에 JPA를 우선으로 학습하는게 좋다고 본다!&lt;/p&gt;</description>
      <category>DATABASE</category>
      <category>JPA</category>
      <category>mybatis</category>
      <category>Mybatis vs JPA</category>
      <category>ORM</category>
      <category>SQL Mapper</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/15</guid>
      <comments>https://deve1oper.tistory.com/15#entry15comment</comments>
      <pubDate>Fri, 16 Dec 2022 05:13:56 +0900</pubDate>
    </item>
    <item>
      <title>Mybatis / 하나의 Mapper에 Namespace 여러개 선언?</title>
      <link>https://deve1oper.tistory.com/14</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-12-10 오후 4.19.08.png&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;814&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JOJun/btrTgBOfTO9/gmdxmNtl9Wbkxj0oB73Hn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JOJun/btrTgBOfTO9/gmdxmNtl9Wbkxj0oB73Hn0/img.png&quot; data-alt=&quot;mapper.xml&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JOJun/btrTgBOfTO9/gmdxmNtl9Wbkxj0oB73Hn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJOJun%2FbtrTgBOfTO9%2FgmdxmNtl9Wbkxj0oB73Hn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;385&quot; height=&quot;342&quot; data-filename=&quot;스크린샷 2022-12-10 오후 4.19.08.png&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;814&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;mapper.xml&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mybatis를 공부하기 위해 mapper파일 한개로만 테스트를 진행하고자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 mapper.xml 파일에 dao별로 namespace을 선언하여 사용하려했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론?&lt;span style=&quot;color: #ef6f53;&quot;&gt;&amp;nbsp;&lt;b&gt;안된다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 하나의 mapper엔 하나의 namespace만 존재할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;1:n&lt;/s&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-&amp;gt; 1:1 (Mapper:Namespace)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-12-10 오후 4.32.28.png&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JlcVk/btrTgl51AMV/Y5RjHhnEROffj3iA4PHScK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JlcVk/btrTgl51AMV/Y5RjHhnEROffj3iA4PHScK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JlcVk/btrTgl51AMV/Y5RjHhnEROffj3iA4PHScK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJlcVk%2FbtrTgl51AMV%2FY5RjHhnEROffj3iA4PHScK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;410&quot; height=&quot;201&quot; data-filename=&quot;스크린샷 2022-12-10 오후 4.32.28.png&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-12-10 오후 4.32.31.png&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;493&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/msFXJ/btrTkhm0sXF/Uzkeq2Z2A15L5K1kEVZsM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/msFXJ/btrTkhm0sXF/Uzkeq2Z2A15L5K1kEVZsM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/msFXJ/btrTkhm0sXF/Uzkeq2Z2A15L5K1kEVZsM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmsFXJ%2FbtrTkhm0sXF%2FUzkeq2Z2A15L5K1kEVZsM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;201&quot; data-filename=&quot;스크린샷 2022-12-10 오후 4.32.31.png&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;493&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와같이 namespace별로 각각 mapper파일이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mybatis를 테스트하면서 또 하나 알아간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DATABASE</category>
      <category>mapper</category>
      <category>Mapper namespcae</category>
      <category>mybatis</category>
      <category>Namespace</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/14</guid>
      <comments>https://deve1oper.tistory.com/14#entry14comment</comments>
      <pubDate>Sat, 10 Dec 2022 16:48:07 +0900</pubDate>
    </item>
    <item>
      <title>Spring / Group, Artifact ?</title>
      <link>https://deve1oper.tistory.com/13</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-10-28 오후 4.24.57.png&quot; data-origin-width=&quot;1572&quot; data-origin-height=&quot;1249&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rrwm4/btrPPv94uFp/LaHL0fdG2G2TD8mXk1yrm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rrwm4/btrPPv94uFp/LaHL0fdG2G2TD8mXk1yrm1/img.png&quot; data-alt=&quot;프로젝트 생성 (IntelliJ) 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rrwm4/btrPPv94uFp/LaHL0fdG2G2TD8mXk1yrm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frrwm4%2FbtrPPv94uFp%2FLaHL0fdG2G2TD8mXk1yrm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;548&quot; height=&quot;435&quot; data-filename=&quot;스크린샷 2022-10-28 오후 4.24.57.png&quot; data-origin-width=&quot;1572&quot; data-origin-height=&quot;1249&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;프로젝트 생성 (IntelliJ) 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;사진과 같이 스프링 프로젝트를 생성할 때 Group, Artifact을 작성하여야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;하지만 작성 요령에 대해서 정확히 아는 경우가 없어 알고 넘어가고자 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;* Group&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp;- 프로젝트 고유 식별하기 위해 작성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;gt; 큰 틀 / 회사 도메인, 회사명, 부서명 등&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;기본 예시) com.google&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;하위 예시) com.google.map&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;* Artifact&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp;- 프로젝트 이름&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp;- 특수문자를 제외한 소문자로 이루어진 이름으로 작성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;gt; 작은 틀 / 프로그램 이름 등&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span&gt;예시) 뷰 프로젝트 : view&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;기본 예시 패키지 -&amp;gt; com.google.view&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span&gt;하위 예시 패키지 -&amp;gt; com.google.map.view&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고 1. &lt;a href=&quot;https://maven.apache.org/guides/mini/guide-naming-conventions.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://maven.apache.org/guides/mini/guide-naming-conventions.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고 2. &lt;a href=&quot;https://docs.oracle.com/javase/specs/jls/se6/html/packages.html#7.7&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.oracle.com/javase/specs/jls/se6/html/packages.html#7.7&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Spring &amp;amp; Spring Boot</category>
      <category>Spring Artifact</category>
      <category>Spring Group</category>
      <category>Spring project</category>
      <author>DevS1K</author>
      <guid isPermaLink="true">https://deve1oper.tistory.com/13</guid>
      <comments>https://deve1oper.tistory.com/13#entry13comment</comments>
      <pubDate>Fri, 28 Oct 2022 16:51:04 +0900</pubDate>
    </item>
  </channel>
</rss>