<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>런타임노트</title>
    <link>https://fopman.tistory.com/</link>
    <description> </description>
    <language>ko</language>
    <pubDate>Thu, 9 Apr 2026 19:18:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>D269</managingEditor>
    <image>
      <title>런타임노트</title>
      <url>https://tistory1.daumcdn.net/tistory/5818629/attach/0d4d3aec2bba470893347ca2344b227c</url>
      <link>https://fopman.tistory.com</link>
    </image>
    <item>
      <title>cherry-pick (다른 브랜치에 있는 커밋 한개만 내 브랜치에 반영하고 싶을 때)</title>
      <link>https://fopman.tistory.com/264</link>
      <description>&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;1. dev 브랜치에 커밋하고 푸쉬함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. local 브랜치에 dev에서 전체 코드를 머지하고 싶지는 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 방금 dev에 올린 그 커밋 하나만 local 브랜치에 반영하고 싶음&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;이럴 때 쓰는게 바로 cherry-pick&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;style5&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;1. local 브랜치로 이동&lt;/p&gt;
&lt;pre id=&quot;code_1762823546948&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git checkout local&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;2. dev 브랜치 커밋목록 확인 (최근 5개의 커밋목록 확인)&lt;/p&gt;
&lt;pre id=&quot;code_1762823572692&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git log --oneline -5&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;pre id=&quot;code_1762823604346&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a1b2c3d (HEAD -&amp;gt; dev, origin/dev) fix: audit list grid pagination error
d4e5f6g refactor: simplify AuditLogDTO builder
...&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;3. 가져오고 싶은 커밋의 해시 a1b2c3d 복사&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 해당 커밋을 local 브랜치에 반영&lt;/p&gt;
&lt;pre id=&quot;code_1762823661874&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git cherry-pick a1b2c3d&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;5-1. 충돌 없으면 끝!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-2. 충돌 있으면 충돌 부분 수정 후!&lt;/p&gt;
&lt;pre id=&quot;code_1762823722218&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git add .
git cherry-pick --continue&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;6. 모든 적용 완료 후&lt;/p&gt;
&lt;pre id=&quot;code_1762823747817&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git push origin local&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;</description>
      <category>Git</category>
      <category>cherrypick</category>
      <category>GIT</category>
      <category>git명령어</category>
      <category>깃</category>
      <category>체리픽</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/264</guid>
      <comments>https://fopman.tistory.com/264#entry264comment</comments>
      <pubDate>Tue, 11 Nov 2025 10:17:58 +0900</pubDate>
    </item>
    <item>
      <title>[JS 에러] Uncaught TypeError: input.getAttribute is not a function</title>
      <link>https://fopman.tistory.com/263</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;validateInput 함수는 &quot;나는 진짜 &amp;lt;input&amp;gt; 태그를 주세요&quot; 라고 기대중&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_1757376887146&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; value=&quot;대칭키&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 것을 받길 기대하고 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 것을 보내면, validateInput 안에서 .getAttribute 같은걸 함&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;pre id=&quot;code_1757376918066&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{ value: &quot;블라&quot; }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 것을 보냈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;겉보기에는 input.value 처럼 보이지만 사실 이건 그냥 일반 자바스크립트 객체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반 객체엔 getAttribute 같은거 못함.&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;그래서 validateInput 안에서 input.getAttribute(&quot;...&quot;) 를 부르는 순간 에러 발생!&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;lt;input&amp;gt; 태그 하나 만들어서 값만 심어주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1757377048558&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const fakeInput = document.createElement(&quot;input&quot;);
fakeInput.value = &quot;블라&quot;;&lt;/code&gt;&lt;/pre&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;
&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>Javascript, jQuery</category>
      <category>input에러</category>
      <category>개발자</category>
      <category>에러기록</category>
      <category>자바스크립트</category>
      <category>자바스크립트에러</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/263</guid>
      <comments>https://fopman.tistory.com/263#entry263comment</comments>
      <pubDate>Tue, 9 Sep 2025 09:19:20 +0900</pubDate>
    </item>
    <item>
      <title>[오답노트] 2과목: 소프트웨어 개발 | 2020년도 필기 4회차 기출문제</title>
      <link>https://fopman.tistory.com/262</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;22. EAI(Enterprise Application Intefration) 구축 유형 중 Hybrid에 대한 설명 중 틀린 것은?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) Hub &amp;amp; Spoke와 Message Bus의 혼합방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 필요한 경우 한 가지 방식으로 EAI 구현이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) 데이터 병목 현상을 최소화 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4) 중간에 미들웨어를 두지 않고 각 애플리케이션을 point to point로 연결한다.&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;EAI : 기업 내 각종 어플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EAI 구축 유형&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;Point-to-Point&lt;/td&gt;
&lt;td style=&quot;width: 79.4186%;&quot;&gt;- 가장 기본적인 애플리케이션 통합 방식&lt;br /&gt;- 애플리케이션을 1:1로 연결함&lt;br /&gt;- 변경 및 재사용이 어려움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;Hub &amp;amp; Spoke&lt;/td&gt;
&lt;td style=&quot;width: 79.4186%;&quot;&gt;- 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식&lt;br /&gt;- 확장 및 유지 보수가 용이함&lt;br /&gt;- 허브 장애 발생 시 시스템 전체에 영향을 미침&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;Message Bus(ESB 방식)&lt;/td&gt;
&lt;td style=&quot;width: 79.4186%;&quot;&gt;- 애플리케이션 사이에 미들웨어를 두어 처리하는 방식&lt;br /&gt;- 확장성이 뛰어나며 대용량 처리가 가능함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.5814%;&quot;&gt;Hybrid&lt;/td&gt;
&lt;td style=&quot;width: 79.4186%;&quot;&gt;- Hub &amp;amp; Spoke와 Message Bus의 혼합방식&lt;br /&gt;- 그룹 내에서는 Hub &amp;amp; Spoke 방식을, 그룹 간에는 Message Bus방식을 사용함&lt;br /&gt;- 필요한 경우 한 가지 방식으로 EAI 구현이 가능함&lt;br /&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;blockquote data-ke-style=&quot;style2&quot;&gt;24. 다음 Postfix 연산식에 대한 연산 결과로 옳은 것은?&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;3 4 * 5 6 * +&lt;/blockquote&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;1. 트리의 운행법&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;트리구조.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YyCtE/btsL4z9JIHs/kkJbrkoI5MKSOQL346LvK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YyCtE/btsL4z9JIHs/kkJbrkoI5MKSOQL346LvK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YyCtE/btsL4z9JIHs/kkJbrkoI5MKSOQL346LvK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYyCtE%2FbtsL4z9JIHs%2FkkJbrkoI5MKSOQL346LvK0%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;308&quot; height=&quot;246&quot; data-filename=&quot;트리구조.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Preorder 유형 : R -&amp;gt; A -&amp;gt; B&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Inorder 유형 : A -&amp;gt; R -&amp;gt; B&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) Postorder 유형 : A -&amp;gt; B -&amp;gt; R&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;예제) Postfix로 표기된 수식을 Infix로 변환하기.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;A B C - / D E F + * +&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Postfix는 Postorder와 비슷하게 생각하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연산자가 맨뒤에 오는 거니까 다시 가운데로 오도록 Infix로 바꾸기&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;( ( A ( B C - ) / ) ( D ( E F + ) * ) + )&lt;/blockquote&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;blockquote data-ke-style=&quot;style3&quot;&gt;A / (B - C) + D * (D + F)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;** Prefix를 Infix로 바꾸려면 반대로 왼쪽 연산자를 괄호로 묶는다.&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;blockquote data-ke-style=&quot;style2&quot;&gt;26. 검증(Validation) 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법은?&lt;/blockquote&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;인수 테스트(Acceptance Test) 종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 사용자 인수 테스트&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;3) 계약 인수 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 규정 인수 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6) 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법&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;blockquote data-ke-style=&quot;style2&quot;&gt;29. 인터페이스 구현 검증 도구가 아닌 것은?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) ESB (2) xUnit (3) STAF (4) NTAF&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;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style5&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.8139%;&quot;&gt;xUnit&lt;/td&gt;
&lt;td style=&quot;width: 74.1861%;&quot;&gt;Java, C++, .Net 등 다양한 언어를 지원하는 단위테스트 프레임 워크&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.8139%;&quot;&gt;STAF(Software Testing Automation Framework)&lt;/td&gt;
&lt;td style=&quot;width: 74.1861%;&quot;&gt;서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.8139%;&quot;&gt;FitNesse&lt;/td&gt;
&lt;td style=&quot;width: 74.1861%;&quot;&gt;웹 기반 테스트 케이스 설계, 실행, 결과확인 등을 지원하는 테스트 프레임워크&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.8139%;&quot;&gt;NTAF(Network Testing Automation Framework)&lt;/td&gt;
&lt;td style=&quot;width: 74.1861%;&quot;&gt;FitNesse의 장점인 협업기능 + STAF의 장점인 재사용 및 확장성을 통함한 NHN(Naver)의 테스트 자동화 프레임워크&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.8139%;&quot;&gt;Selenium&lt;/td&gt;
&lt;td style=&quot;width: 74.1861%;&quot;&gt;다양한 브라우저 및 개발 언어를 지원하는 웹 어플리케이션 테스트 프레임워크&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.8139%;&quot;&gt;watir&lt;/td&gt;
&lt;td style=&quot;width: 74.1861%;&quot;&gt;Ruby를 사용하는 애플리케이션 테스트 프레임워크&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;&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;</description>
      <category>자격증/정보처리기사</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/262</guid>
      <comments>https://fopman.tistory.com/262#entry262comment</comments>
      <pubDate>Sat, 1 Feb 2025 20:26:47 +0900</pubDate>
    </item>
    <item>
      <title>[오답노트] 1과목: 소프트웨어 설계 | 2020년도 필기 4회차 기출문제</title>
      <link>https://fopman.tistory.com/261</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;3. CASE(Computer Aided Software Engineering)의 주요 기능으로 옳지 않은 것은?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(1) S/W 라이플 사이클 전 단계의 연결&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;(3) 다양한 소프트웨어 개발 모형 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(4) 언어 번역&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;CASE(Computer Aided Software Engineering)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;1) CASE는 소프트웨어 개발을 돕기위해 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;2) 주요 기능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&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;color: #333333; text-align: start;&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;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;- 그래픽 지원 등&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;blockquote data-ke-style=&quot;style2&quot;&gt;7. 코드화 대상 항목의 중량, 면적, 용량 등의 물리적 수치를 이용하여 만든 코드는?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;(1) 순차 코드 (2) 10진 코드 (3) 표의 숫자 코드 (4) 블록 코드&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;color: #333333; text-align: start;&quot;&gt;[오답노트]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;코드(Code) : 컴퓨터를 이용하여 자료를 처리하는 과정에서 분류, 조합 및 집계를 용이하게 하고 특정 자료의 추출을 쉽게 하기 위해서 사용하는 기호&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;1) 순차 코드 : 자료의 발생순서, 크기순서 등 일정 기준에 따라서 최초의 자료부터 차례로 일련번호를 부여하는 방법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;2) 블록 코드 : 코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여하는 방법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;3) 그룹 분류 코드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;4) 연상 코드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;5) 표의 숫자 코드 : 코드화 대상 항목의 성질, 길이, 넓이, 부피, 지름, 높이 등의 물리적 수치를 그대로 코드에 적용시키는 방법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;6) 합성 코드&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;blockquote data-ke-style=&quot;style2&quot;&gt;12. 소프트웨어의 상위 설계에 속하지 않는 것은?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;(1) 아키텍쳐 설계 (2) 모듈 설계 (3) 인터페이스 정의 (4) 사용자 인터페이스 설계&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;color: #333333; text-align: start;&quot;&gt;[오답노트]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;1. 상위 설계&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;- 아키텍처 설계, 예비 설계 라고도 함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;- 시스템 수준에서의 컴포넌트들 간의 관계와 전체적인 구조를 설계한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;- 종류 : 구조 설계, DB설계, 인터페이스 설계&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;color: #333333; text-align: start;&quot;&gt;2. 하위 설계&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;- 모듈 설계, 상세 설계 라고도 함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;- 시스템의 각 구성 요소들의 내부 구조, 행위, 알고리즘 등을 결정하여 설계한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&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;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;15. 요구사항 명세 기법에 대한 설명으로 틀린 것은?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;(1) 비정형 명세 기법은 사용자의 요구를 표현할 떄 자연어를 기반으로 서술한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;(2) 비정형 명세 기법은 사용자의 요구를 표현할 떄 Z 비정형 명세 기법을 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;(3) 정형 명세 기법은 사용자의 요구를 표현할 때 수학적인 원리와 표기법을 이용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;(4) 정형 명세 기법은 비정형 명세 기법에 비해 표현이 간결하다.&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;color: #333333; text-align: start;&quot;&gt;[오답노트]&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5426%;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;width: 39.9612%;&quot;&gt;정형 명세 기법&lt;/td&gt;
&lt;td style=&quot;width: 44.4961%;&quot;&gt;비정형 명세 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5426%;&quot;&gt;기법&lt;/td&gt;
&lt;td style=&quot;width: 39.9612%;&quot;&gt;수학적 원리 기반, 모델 기반&lt;/td&gt;
&lt;td style=&quot;width: 44.4961%;&quot;&gt;상태/기능/객체 중심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5426%;&quot;&gt;작성방법&lt;/td&gt;
&lt;td style=&quot;width: 39.9612%;&quot;&gt;수학적 기호, 정형화된 표기법&lt;/td&gt;
&lt;td style=&quot;width: 44.4961%;&quot;&gt;자연어를 기반으로 서술 또는 다이어그램으로 작성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5426%;&quot;&gt;특징&lt;/td&gt;
&lt;td style=&quot;width: 39.9612%;&quot;&gt;- 요구를 정확하고 간결하게 표현할 수 있음&lt;br /&gt;- 작성자에 관계없이 요구사항의 결과에 일관성이 있으므로 완전성 검증이 가능함&lt;br /&gt;- 표기법이 어려워 사용자가 이해하기 어려움&lt;/td&gt;
&lt;td style=&quot;width: 44.4961%;&quot;&gt;- 자연어의 사용으로 인해 작성자에 따라 요구사항의 결과가 다를 수 있어 일관성이 떨어지고, 해석이 달라질 수 있음&lt;br /&gt;- 내용의 이해가 쉬워 의사소통이 용이함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5426%;&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;width: 39.9612%;&quot;&gt;VDM, Z, Petri-net, CSP 등&lt;/td&gt;
&lt;td style=&quot;width: 44.4961%;&quot;&gt;FSM(Finite State Machine), Decision Table, ER모델링, State Chart(SADT) 등&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 자연어 : 한국어, 영어 등 사람이 쓰는 언어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 형식언어 : java, c/c++ 등 컴퓨터가 쓰는 언어&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;blockquote data-ke-style=&quot;style2&quot;&gt;19. GoF(Gangs of Four) 디자인 패턴 분류에 해당하지 않는 것은?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) 생성패턴 (2) 구조패턴 (3) 행위패턴 (4) 추상패턴&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;GoF: 1995년에 4명의 사람이 디자인패턴을 처음으로 구체화 체계화 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- GoF의 디자인 패턴은 유형에 따라 생성패턴 5개, 구조 패턴 7개, 행위 패턴 11개, 총 23개의 패턴으로 구성됨&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;</description>
      <category>자격증/정보처리기사</category>
      <category>기출문제오답노트</category>
      <category>정보처리기사필기</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/261</guid>
      <comments>https://fopman.tistory.com/261#entry261comment</comments>
      <pubDate>Sat, 1 Feb 2025 19:51:38 +0900</pubDate>
    </item>
    <item>
      <title>우분투에 docker 이용하여 oracle 19c 설치하기</title>
      <link>https://fopman.tistory.com/260</link>
      <description>&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;a href=&quot;https://www.youtube.com/watch?v=kxiZTZZY0A8&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=kxiZTZZY0A8&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;&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;먼저 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;apt install docker.io&lt;/span&gt; 실행. docker가 온전하지 않아 에러가 날 수도 있기 때문&lt;/p&gt;
&lt;pre id=&quot;code_1715560117605&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dream@dream:~$ sudo apt install docker.io
[sudo] password for dream:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 docker.io : Depends: containerd (&amp;gt;= 1.2.6-0ubuntu1~)
E: Unable to correct problems, you have held broken packages.&lt;/code&gt;&lt;/pre&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;
&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_1715560236973&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git clone https://github.com/oracle/docker-images.git&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1715560309542&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dream@dream:~$ ls
docker-images&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;docker-images 폴더가 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1715560425542&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dream@dream:~$ cd docker-images/
dream@dream:~/docker-images$ ls
Archive             GraalVM                 OracleBI                   OracleFMWInfrastructure   OracleJava              OracleSOASuite            OracleWebCenterContent  scripts
CODE_OF_CONDUCT.md  LICENSE.txt             OracleCloudInfrastructure  OracleGoldenGate          OracleLinuxDevelopers   OracleTuxedo              OracleWebCenterPortal   SECURITY.md
CODEOWNERS          NoSQL                   OracleCoherence            OracleHTTPServer          OracleManagementAgent   OracleUnifiedDirectory    OracleWebCenterSites
Contrib             OracleAccessManagement  OracleDatabase             OracleIdentityGovernance  OracleOpenJDK           OracleUnifiedDirectorySM  OracleWebLogic
CONTRIBUTING.md     OracleAnalytics         OracleEssbase              OracleInstantClient       OracleRestDataServices  OracleVeridata            README.md
dream@dream:~/docker-images$ cd OracleDatabase
dream@dream:~/docker-images/OracleDatabase$ ls
RAC  README.md  SingleInstance
dream@dream:~/docker-images/OracleDatabase$ cd SingleInstance
dream@dream:~/docker-images/OracleDatabase/SingleInstance$ ls
COPYRIGHT  dockerfiles  extensions  FAQ.md  helm-charts  README.md  samples  tests
dream@dream:~/docker-images/OracleDatabase/SingleInstance$ cd dockerfiles/
dream@dream:~/docker-images/OracleDatabase/SingleInstance/dockerfiles$ ls
11.2.0.2  12.1.0.2  12.2.0.1  18.3.0  18.4.0  19.3.0  21.3.0  23.4.0  buildContainerImage.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어들을 따라서 dockerfile 폴더까지 와주면 된다.&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;오라클 사이트에서 받은 설치 이미지를 알맞은 version에 넣어주고 sh을 실행하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 19ver을 받았다. 그러면 19.3.0에 설치 이미지를 넣어주고 buildContainerImage.sh 실행하면 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 docker image를 빌드해준다.&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;a href=&quot;https://www.oracle.com/technical-resources/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.oracle.com/technical-resources/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1715560685223&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Get the latest product technical information from Oracle&quot; data-og-description=&quot;Oracle Technical Resources provides services and resources to help developers, DBAs, and architects build, deploy, manage, and optimize applications&quot; data-og-host=&quot;www.oracle.com&quot; data-og-source-url=&quot;https://www.oracle.com/technical-resources/&quot; data-og-url=&quot;https://www.oracle.com/technical-resources/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/JBHND/hyV6iWxgz7/4AePH40ewyqi5vU10bfGf0/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200,https://scrap.kakaocdn.net/dn/ceDaKh/hyV6ajTbpu/w23Cbf78lHKUrXFd7uOuh0/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200&quot;&gt;&lt;a href=&quot;https://www.oracle.com/technical-resources/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.oracle.com/technical-resources/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/JBHND/hyV6iWxgz7/4AePH40ewyqi5vU10bfGf0/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200,https://scrap.kakaocdn.net/dn/ceDaKh/hyV6ajTbpu/w23Cbf78lHKUrXFd7uOuh0/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Get the latest product technical information from Oracle&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Oracle Technical Resources provides services and resources to help developers, DBAs, and architects build, deploy, manage, and optimize applications&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.oracle.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사이트로 가서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2024-05-13 093935.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1034&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bek5EI/btsHl4t0tHu/k7ml3nVinM9gizVffpZjL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bek5EI/btsHl4t0tHu/k7ml3nVinM9gizVffpZjL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bek5EI/btsHl4t0tHu/k7ml3nVinM9gizVffpZjL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbek5EI%2FbtsHl4t0tHu%2Fk7ml3nVinM9gizVffpZjL1%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;1920&quot; height=&quot;1034&quot; data-filename=&quot;화면 캡처 2024-05-13 093935.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1034&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2024-05-13 093850.png&quot; data-origin-width=&quot;1914&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UOD1x/btsHn2OWtQx/jHMqS0L4oshUqiih6bCaT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UOD1x/btsHn2OWtQx/jHMqS0L4oshUqiih6bCaT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UOD1x/btsHn2OWtQx/jHMqS0L4oshUqiih6bCaT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUOD1x%2FbtsHn2OWtQx%2FjHMqS0L4oshUqiih6bCaT0%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;1914&quot; height=&quot;1031&quot; data-filename=&quot;화면 캡처 2024-05-13 093850.png&quot; data-origin-width=&quot;1914&quot; data-origin-height=&quot;1031&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2024-05-13 094023.png&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;1041&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chFmHR/btsHnIQHamz/WpoZRH8t7CAEPRuaHwsxG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chFmHR/btsHnIQHamz/WpoZRH8t7CAEPRuaHwsxG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chFmHR/btsHnIQHamz/WpoZRH8t7CAEPRuaHwsxG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchFmHR%2FbtsHnIQHamz%2FWpoZRH8t7CAEPRuaHwsxG1%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;1917&quot; height=&quot;1041&quot; data-filename=&quot;화면 캡처 2024-05-13 094023.png&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;1041&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2024-05-13 094131.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1036&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3QDfV/btsHnVClXfh/ts5BgyW68zmklwRiSBbju0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3QDfV/btsHnVClXfh/ts5BgyW68zmklwRiSBbju0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3QDfV/btsHnVClXfh/ts5BgyW68zmklwRiSBbju0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3QDfV%2FbtsHnVClXfh%2Fts5BgyW68zmklwRiSBbju0%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;1920&quot; height=&quot;1036&quot; data-filename=&quot;화면 캡처 2024-05-13 094131.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1036&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;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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignLeft&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;012&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/012.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/012.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qIz2v/btsHmUkhxEf/iprsksHJTvkMMLwevTIb1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qIz2v/btsHmUkhxEf/iprsksHJTvkMMLwevTIb1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qIz2v/btsHmUkhxEf/iprsksHJTvkMMLwevTIb1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqIz2v%2FbtsHmUkhxEf%2FiprsksHJTvkMMLwevTIb1k%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;620&quot; height=&quot;96&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;96&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;다운로드 받은 zip파일을 filezilla를 이용하여 옮긴다.&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-origin-width=&quot;983&quot; data-origin-height=&quot;736&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8hLyT/btsHopC8GnD/uK2CVkjhQXn7MMBMjdRqm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8hLyT/btsHopC8GnD/uK2CVkjhQXn7MMBMjdRqm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8hLyT/btsHopC8GnD/uK2CVkjhQXn7MMBMjdRqm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8hLyT%2FbtsHopC8GnD%2FuK2CVkjhQXn7MMBMjdRqm1%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;983&quot; height=&quot;736&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;736&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;19.0.3. 아래로!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1715561988739&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dream@dream:~/docker-images/OracleDatabase/SingleInstance/dockerfiles$ cd 19.3.0/
dream@dream:~/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0$ ls
checkDBStatus.sh  Checksum.ee        Checksum.se2   createDB.sh        dbca.rsp.tmpl  Dockerfile            LINUX.X64_193000_db_home.zip  runOracle.sh       setPassword.sh    startDB.sh
checkSpace.sh     Checksum.ee.arm64  configTcps.sh  createObserver.sh  db_inst.rsp    installDBBinaries.sh  relinkOracleBinary.sh         runUserScripts.sh  setupLinuxEnv.sh&lt;/code&gt;&lt;/pre&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;
&lt;pre id=&quot;code_1715562871773&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ ./buildContainerImage.sh -e -v 19.3.0 -o '--build-arg SLIMMING=false'&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;꽤 올래걸리니 잠들지 않기로 해..&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;다 되었으면 docekr images 해서 확인해보도록 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1715562964813&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dream@dream:~/docker-images/OracleDatabase/SingleInstance/dockerfiles$ docker images
REPOSITORY                               TAG               IMAGE ID       CREATED         SIZE
oracle/database                          19.3.0-ee         1fdd77620b28   3 minutes ago   7.76GB
oraclelinux                              7-slim            970e50328c70   2 months ago    138MB&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;pre id=&quot;code_1715563334102&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker run --name ORA19 --network host -p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORA19 \
-e ORACLE_PDB=PDB1 \
-e ORACLE_PWD=[자기가 설정한 비번] \
-e ORACLE_EDITION=enterprise \
-v /opt/oracle/oradata \
 oracle/database:19.3.0-ee&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;나는 11g가 깔려있어서 안되었다..&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;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignLeft&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;011&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/011.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/011.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&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;pre id=&quot;code_1715565192674&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dream@dream:~$ docker ps
CONTAINER ID   IMAGE                          COMMAND                  CREATED          STATUS                    PORTS                                         NAMES
20628739a862   oracle/database:19.3.0-ee      &quot;/bin/bash -c 'exec &amp;hellip;&quot;   21 minutes ago   Up 21 minutes (healthy)                                                 ORA19
5d1d9222d904   mariadb                        &quot;docker-entrypoint.s&amp;hellip;&quot;   5 months ago     Up 5 months               0.0.0.0:13306-&amp;gt;3306/tcp, :::13306-&amp;gt;3306/tcp   mariadb
f428a3fc323c   s-wallet-webapp                &quot;nginx -g 'daemon of&amp;hellip;&quot;   9 months ago     Up 5 months               0.0.0.0:80-&amp;gt;80/tcp, :::80-&amp;gt;80/tcp             webapp_container
5c293e1fd441   gitlab/gitlab-runner:v13.7.0   &quot;/usr/bin/dumb-init &amp;hellip;&quot;   16 months ago    Up 5 months                                                             gitlab-runner
dream@dream:~$ docker exec -it ORA19 bash
bash-4.2$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon May 13 01:52:49 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL&amp;gt;&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;ubuntu 위에 linux 위에 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;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;&amp;nbsp;&lt;/p&gt;</description>
      <category>DB</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/260</guid>
      <comments>https://fopman.tistory.com/260#entry260comment</comments>
      <pubDate>Mon, 13 May 2024 10:53:37 +0900</pubDate>
    </item>
    <item>
      <title>[TIBERO] docker tibero</title>
      <link>https://fopman.tistory.com/259</link>
      <description>&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;tibero는 docker가 따로 없고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ubuntu&amp;nbsp; 이미지 다운 받은 다음에 그 안에 tibero를 설치해줘야 함.&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. os 이미지 다운&lt;/p&gt;
&lt;pre id=&quot;code_1712628998667&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@dream:~# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
bccd10f490ab: Already exists
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 컨테이너 배포&lt;/p&gt;
&lt;pre id=&quot;code_1712629050370&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@dream:~# docker run -i -t -p 8629:8629 --name ubuntu-container --hostname localhost ubuntu /bin/bash
root@localhost:/# exit
exit&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;3. 컨테이너 실행&lt;/p&gt;
&lt;pre id=&quot;code_1712629065611&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@dream:~# docker start ubuntu-container
ubuntu-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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 컨테이너 접속&lt;/p&gt;
&lt;pre id=&quot;code_1712629078753&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@dream:~# docker exec --user=&quot;root&quot; -it ubuntu-container /bin/bash
root@localhost:/#&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;a href=&quot;https://technet.tmax.co.kr/ko/front/main/main.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://technet.tmax.co.kr/ko/front/main/main.do&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1712629114660&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Technet&quot; data-og-description=&quot;효율적인 시스템 관리를 위한 기술 전문 포탈, 테크넷서비스&quot; data-og-host=&quot;technet.tmax.co.kr&quot; data-og-source-url=&quot;https://technet.tmax.co.kr/ko/front/main/main.do&quot; data-og-url=&quot;https://technet.tmax.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/J2AGy/hyVMXTiAhM/k5mnKHqyNAlkiDvReK5VIk/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://technet.tmax.co.kr/ko/front/main/main.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://technet.tmax.co.kr/ko/front/main/main.do&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/J2AGy/hyVMXTiAhM/k5mnKHqyNAlkiDvReK5VIk/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Technet&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;효율적인 시스템 관리를 위한 기술 전문 포탈, 테크넷서비스&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;technet.tmax.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;917&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uVK9R/btsGt7KW1Ft/sVJZFC4cNFxUVwl1IIDMY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uVK9R/btsGt7KW1Ft/sVJZFC4cNFxUVwl1IIDMY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uVK9R/btsGt7KW1Ft/sVJZFC4cNFxUVwl1IIDMY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuVK9R%2FbtsGt7KW1Ft%2FsVJZFC4cNFxUVwl1IIDMY1%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;990&quot; height=&quot;917&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;917&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가입해서 중간에 보라색 데모라이선스 신청 누르고 자기가 원하는 tibero 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hostname은 리눅스에서 hostname 검색해서 하기.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러고 다운 받으면 메일로 라이선스.xml 파일이 옴&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;두번째로 tibero tar파일 받아주기.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 tibero6 받음&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u8Ma1/btsGsjrPHan/pKXh29ho8wXEokJQNZ3Dt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u8Ma1/btsGsjrPHan/pKXh29ho8wXEokJQNZ3Dt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u8Ma1/btsGsjrPHan/pKXh29ho8wXEokJQNZ3Dt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu8Ma1%2FbtsGsjrPHan%2FpKXh29ho8wXEokJQNZ3Dt0%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;705&quot; height=&quot;672&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;672&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;구글링 ㄱㄱ&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;pre id=&quot;code_1712629293423&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@dream:/home/dream# docker cp ./license.xml ubuntu-container:/usr/local/
Successfully copied 2.05kB to ubuntu-container:/usr/local/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 그 라이센스 파일하고 받은 tar파일을 띄운 우분투 도커 안으로 넣어줘야 하니까 docker cp 명령어를 사용해서 넣어줌&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에 넣어주고 나중에 설정해야함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1712629339695&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@dream:/home/dream# docker cp ./tibero6-bin-FS07_CS_2005-linux64-186930-opt-tested.tar.gz ubuntu-container:/usr/local/
Successfully copied 492MB to ubuntu-container:/usr/local/&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;다시 위에 4번 컨테이너 접속 명령어로 우분투 컨테이너 접속해서 들어가서 보면 cp 되있을거임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 /usr/local에 있는 라이선스랑 tar를 적절한 경로에 넣어줘야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 java도 필요함 꼭 이건지는 모르겠는데 나는 1.7.08 써줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1712629448838&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@localhost:/usr/local# ls
bin  etc  games  include  jdk1.7.0_80  lib  man  sbin  share  src  tibero6  tibero6-bin-FS07_PS01-linux64_3.10-269987-20240327170532.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 /usr/local 경로에 다 넣어줌&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;tar -xvzf 명령어로 tar파일 풀어주고 생긴 tibero6 폴더 /license 하위에 license.xml 폴더 넣어줌&lt;/p&gt;
&lt;pre id=&quot;code_1712629526645&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@localhost:/usr/local# cd tibero6/license
root@localhost:/usr/local/tibero6/license# ls
license.xml  oss_licenses&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;pre id=&quot;code_1712629598559&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@localhost:/usr/local/tibero6/bin# cd ../config
root@localhost:/usr/local/tibero6/config# ls
cm.template  gen_psm_cmd.sh  gen_tip.sh  gen_tip_for_tac.sh  ilog.map.example  psm_commands  tac.template  tibero.tip  tip.template  variant&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;그리고 tibero6/config 가서 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;./gen_tip.sh&lt;/span&gt; 해주셈.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 tibero.tip이 생김 -&amp;gt; 이게 있어야 tbboot 할 수 있음&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;pre id=&quot;code_1712629655588&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ &quot;${PS1-}&quot; ]; then
  if [ &quot;${BASH-}&quot; ] &amp;amp;&amp;amp; [ &quot;$BASH&quot; != &quot;/bin/sh&quot; ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ &quot;$(id -u)&quot; -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

export TB_HOME=/usr/local/tibero6
export TB_SID=tibero
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin
export JAVA_HOME=/usr/local/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin&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;span style=&quot;background-color: #f6e199;&quot;&gt;vim /etc/profile&lt;/span&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;span style=&quot;background-color: #f6e199;&quot;&gt;export&amp;nbsp;TB_HOME=/usr/local/tibero6 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;export&amp;nbsp;TB_SID=tibero &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;export&amp;nbsp;LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;export&amp;nbsp;PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;export&amp;nbsp;JAVA_HOME=/usr/local/jdk1.7.0_80 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;export&amp;nbsp;PATH=$PATH:$JAVA_HOME/bin&lt;/span&gt; &lt;br /&gt;&lt;br /&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 여기서 vim이 없을 수가 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;apt-get update&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;apt-get install vim&lt;/span&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;/etc/profile에 적용했으면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;# source /etc/profile&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1712629822843&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@localhost:/# tbsql sys/tibero

tbSQL 6

TmaxTibero Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL&amp;gt;&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;연결됐다고 끝이 아님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연결되어도 tibero가 booting 안될 수도 있단 말임.&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;SQL&amp;gt;&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;connect&amp;nbsp;sys/tibero@localhost:8629/tibero;&lt;/span&gt; &lt;br /&gt;Connected&amp;nbsp;to&amp;nbsp;Tibero.&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;이런식으로 자기 db 연결됐는지 확인해서 연결 확인되어야 진짜 연결된거임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약에 연결 안되고 커넥팅 어쩌구 뜨면 tibero6/bin 가서 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;tbboot&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;&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;&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&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;나중에 tibero 다시 들어가면 (&lt;span style=&quot;color: #000000;&quot;&gt;docker exec --user=&quot;root&quot; -it ubuntu-container /bin/bash)&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;color: #000000;&quot;&gt;/etc/profile 안먹혀있는 경우도 있음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그럴땐 vi /etc/profile 해서 잘 써있는지 확인하고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;source /etc/profile 해주고&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;pre id=&quot;code_1713488130583&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@localhost:/# echo $TB_HOME
/usr/local/tibero6&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;pre id=&quot;code_1713488159431&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@localhost:/# cd $TB_HOME
root@localhost:/usr/local/tibero6# cd bin
root@localhost:/usr/local/tibero6/bin# ls
alterdd.sh   cm_res_exec.sh   internal_svr_env.sh  libtbom.dll       psmjavac                 sm_sysmon_network_state.sh  sysalloc_summary.sh  tbcm     tbdown     tblistener  tbsvr
asboot       cmrctl           libtbOCI_info.exe    libtbom.lib       sm_sysmon_disk_io.sh     sm_sysmon_ps.sh             tb_cert_manager      tbcmbin  tbinfo     tbnetbench  tbupdater
asdown       crfconf          libtboci.dll         libtbom_lite.dll  sm_sysmon_disk_state.sh  svr_env.sh                  tb_create_db.sh      tbcmobs  tbiobench  tbprobe     tbwallet_gen
base_env.sh  dbctl_for_cm.sh  libtboci.lib         libtbom_lite.lib  sm_sysmon_network_io.sh  svr_rename.sh               tbboot               tbctl    tbiv       tbprof      update
root@localhost:/usr/local/tibero6/bin# tbboot
***********************************************************
*                     BOOT FAILED.
* tbsvr process (11240) is alive.
* Check if there are any tbsvr instances running.
***********************************************************
root@localhost:/usr/local/tibero6/bin# tbdown

Tibero instance terminated (NORMAL mode).

root@localhost:/usr/local/tibero6/bin# ^C
root@localhost:/usr/local/tibero6/bin# tbboot
Listener port = 8629

Tibero 6

TmaxTibero Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignLeft&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;012&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/012.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/012.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&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>DB</category>
      <category>Tibero</category>
      <category>개발자</category>
      <category>삽질</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/259</guid>
      <comments>https://fopman.tistory.com/259#entry259comment</comments>
      <pubDate>Tue, 9 Apr 2024 11:31:52 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu 부팅에러 initramfs</title>
      <link>https://fopman.tistory.com/258</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평화롭게 ubuntu를 사용하던 와중...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;갑자기 (initramfs) (initramfs) (initramfs) (initramfs) (initramfs) (initramfs) 이러면서 ubuntu가 실행이 안됨....&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;&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 에러는&lt;/p&gt;
&lt;pre id=&quot;code_1709101310540&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;BusyBox v1.xx.x(Ubuntu 1:1:xx.x-x ubuntu1) built in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)_&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;
&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 style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;우분투가 멈추어서 강제로 컴퓨터를 끄고 다시 부팅을 했다.&lt;br /&gt;이 과정에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;Busybox로 빠졌다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Busybox&lt;/li&gt;
&lt;li&gt;우분투 복구모드로 간단한 명령어로 OS의 불량이나 오류 부분을 고칠 수 있다.&lt;/li&gt;
&lt;li&gt;initramfs&lt;/li&gt;
&lt;li&gt;명령어를 입력할 수 있는 프롬프트&lt;/li&gt;
&lt;/ul&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;방법-1&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;방법 1.&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;fsck -y /dev/sda1&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;위의 명령어를 치면 오류를 고치겠냐고 질문이 나오고&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;y&lt;/b&gt;를 입력한다.(Enter)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;reboot&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;exit&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어로 재부팅한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;방법-2&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;방법 2.&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;fsck -y /dev/sda1&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령어 없이 바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;exit&lt;/b&gt;를 해도 된다.&lt;/p&gt;
&lt;h3 id=&quot;방법-3&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;방법 3.&lt;/h3&gt;
&lt;h3 id=&quot;명령어-쳤지만-부팅이-안될-때fsck--y-devsda1&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;명령어 쳤지만 부팅이 안될 때(fsck -y /dev/sda1)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 명령어를 치고 나면 재부팅이 되어야 하는데 다시&lt;span&gt;&amp;nbsp;&lt;/span&gt;initramfs가 나올 수 있다.&lt;br /&gt;이 때는 바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;fsck [대상경로]의 명령어로 실행시키면 된다.&lt;/p&gt;
&lt;blockquote style=&quot;color: #212529; text-align: start;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;/dev/sda9: UNEXPRECTED INCONSISTENCY; RUN fskc MANUALLY.&lt;br /&gt;fsck exited with status code 4&lt;br /&gt;The root filesystem on /dev/sda9 requires a manual fsck&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Busybox v1.xx.x (Ubuntu 1:1.xx.x-x ubuntu1) built in shell(ash)&lt;br /&gt;Enter 'help' for a list of built-in commands.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(initramfs)_&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 나오면 바로 대상경로를 실행시키면 된다.&lt;br /&gt;&lt;b&gt;fsck /dev/sda9&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[참고]&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;대상경로는 사용자마다 다를 수 있으니 본인의 실행시켜야하는 대상경로를 확인하자.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;나는 방법 3을 사용함&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;명령어를 쳤는데도 부팅이 안된다구요..&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참고 : &lt;a href=&quot;https://velog.io/@reveloper-1311/%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%B6%80%ED%8C%85%EC%97%90%EB%9F%AC-initramfs&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@reveloper-1311/%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%B6%80%ED%8C%85%EC%97%90%EB%9F%AC-initramfs&lt;/a&gt;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>initramfs</category>
      <category>부팅에러</category>
      <category>우분투</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/258</guid>
      <comments>https://fopman.tistory.com/258#entry258comment</comments>
      <pubDate>Wed, 28 Feb 2024 15:23:18 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu에 tomcat 설치, jndi로 mariadb 연결, jsp 화면 보기</title>
      <link>https://fopman.tistory.com/257</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boK7zV/btsFp7ElRv6/vBkUfrBG7lPkvshbp5B5Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boK7zV/btsFp7ElRv6/vBkUfrBG7lPkvshbp5B5Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boK7zV/btsFp7ElRv6/vBkUfrBG7lPkvshbp5B5Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboK7zV%2FbtsFp7ElRv6%2FvBkUfrBG7lPkvshbp5B5Ck%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;237&quot; height=&quot;241&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;별거아닌데 개고생했던 일들을 기록해놔야겠다... ㅂㄷㅂㄷ&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;먼저 Vm ware에 tomcat 깔아줌&lt;br /&gt;sudo로 깔면 무슨일인지 dream 계정 아래에 안되고 root 계정 아래로 되어서 tomcat 사이트 가서 tar 받아옴&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;dream@dream-virtual-machine:~$ ls
apache-tomcat-9.0.86&amp;nbsp;&amp;nbsp;apache-tomcat-9.0.86.tar.gz&amp;nbsp;&amp;nbsp;Desktop&amp;nbsp;&amp;nbsp;Documents&amp;nbsp;&amp;nbsp;Downloads&amp;nbsp;&amp;nbsp;Music&amp;nbsp;&amp;nbsp;Pictures&amp;nbsp;&amp;nbsp;Public&amp;nbsp;&amp;nbsp;snap&amp;nbsp;&amp;nbsp;Templates&amp;nbsp;&amp;nbsp;Videos
dream@dream-virtual-machine:~$&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;apache-tomcat-9.0.86.tar.gz 가져와서 압축 풀어주니 apache-tomcat-9.0.86(이하 tomcat)&amp;nbsp; &amp;nbsp;이렇게 되었고&lt;br /&gt;&lt;br /&gt;그리고 mariadb 설치&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo apt update
sudo apt install mariadb-server&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;보안설정을 해주는데&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo mysql_secure_installation&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 다 엔터치다가 pw 해주는 부분만 신경써서 비번설정해준다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 sample db 하나 만들어주기&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;sudo mysql -u root -p&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;sample db 설정하고 users 테이블 하나 만들어줌.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;CREATE DATABASE mydatabase;
CREATE USER 'root'@'localhost' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON sampledb.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

CREATE TABLE users (
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id INT PRIMARY KEY AUTO_INCREMENT,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;username VARCHAR(255),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;email VARCHAR(255)
);

INSERT INTO users (username, email) VALUES
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;('user1', 'user1@example.com'),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;('user2', 'user2@example.com'),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;('user3', 'user3@example.com');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 tomcat 설정파일 수정&lt;br /&gt;tomcat/conf/context.xml&amp;nbsp;&lt;br /&gt;나같은 경우는 conf에 있었는데 다른 사람들은 어딨을지 모름 context.xml을 찾아서 하면 됨.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- 다음 라인을 추가하여 JNDI 데이터베이스 연결 설정을 지정합니다. --&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Resource name=&quot;jdbc/sampledb&quot; auth=&quot;Container&quot; type=&quot;javax.sql.DataSource&quot;
&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;maxTotal=&quot;100&quot; maxIdle=&quot;30&quot; maxWaitMillis=&quot;10000&quot;
&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;username=&quot;root&quot; password=&quot;1234&quot;
&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;driverClassName=&quot;org.mariadb.jdbc.Driver&quot;
&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;url=&quot;jdbc:mariadb://your_db_host:3306/sampledb&quot;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;lt;context&amp;gt;&amp;lt;/context&amp;gt; 안에 위 코드를 넣어주면 됨.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 sample db를 보여줄 index.jsp를 만들어보자&lt;br /&gt;나는 jndi를 써서 mariadb를 연결해줄 것임&lt;br /&gt;index.jsp를 넣어줄 곳은&lt;br /&gt;tomcat/webapps/wassample/index.jsp&lt;br /&gt;webapp아래에 wassample mkdir 하고 그 아래에 넣어줌&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;&amp;lt;%@ page import=&quot;java.sql.*&quot; %&amp;gt;
&amp;lt;%@ page contentType=&quot;text/html;charset=UTF-8&quot; language=&quot;java&quot; %&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;title&amp;gt;Sample JSP Page&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;h2&amp;gt;Sample Data from MariaDB&amp;lt;/h2&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;%
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// JNDI를 사용하여 DataSource를 얻어옴
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Context initContext = new InitialContext();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Context envContext = (Context) initContext.lookup(&quot;java:/comp/env&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataSource dataSource = (DataSource) envContext.lookup(&quot;jdbc/sampledb&quot;);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// DataSource를 사용하여 Connection을 얻어옴
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try (Connection connection = dataSource.getConnection()) {
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String sql = &quot;SELECT * FROM users&quot;;
&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;try (PreparedStatement preparedStatement = connection.prepareStatement(sql);
&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; ResultSet resultSet = preparedStatement.executeQuery()) {
&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;while (resultSet.next()) {
&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;&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;out.println(&quot;ID: &quot; + resultSet.getInt(&quot;id&quot;) + &quot;&amp;lt;br&amp;gt;&quot;);
&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;out.println(&quot;Username: &quot; + resultSet.getString(&quot;username&quot;) + &quot;&amp;lt;br&amp;gt;&quot;);
&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;out.println(&quot;Email: &quot; + resultSet.getString(&quot;email&quot;) + &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;);
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (Exception e) {
&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;out.println(&quot;Error: &quot; + e.getMessage());
&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;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//&amp;nbsp;JNDI를&amp;nbsp;사용하여&amp;nbsp;DataSource를&amp;nbsp;얻어옴 &lt;br /&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;Context&amp;nbsp;initContext&amp;nbsp;=&amp;nbsp;new&amp;nbsp;InitialContext(); &lt;br /&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;Context&amp;nbsp;envContext&amp;nbsp;=&amp;nbsp;(Context)&amp;nbsp;initContext.lookup(&quot;java:/comp/env&quot;); &lt;br /&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;DataSource&amp;nbsp;dataSource&amp;nbsp;=&amp;nbsp;(DataSource)&amp;nbsp;envContext.lookup(&quot;jdbc/sampledb&quot;);&lt;br /&gt;이부분이 중요함.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 하고 띄웠는데 에러가 남...&lt;br /&gt;db를 연결할 수 없다는 에러..&lt;br /&gt;&amp;nbsp;&lt;br /&gt;아 그리고 tomcat 구동하는 방법은&lt;br /&gt;tomcat/bin 아래에 shutdown.sh startup.sh 있음&lt;br /&gt;&amp;nbsp;&lt;br /&gt;암튼 에러를 고치기 위해서는. 내가 쓴 방법은.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;구글링 했더니 mariadb 연결하는 jar 를 tomcat/lib 아래에 넣어주래서.&lt;br /&gt;&lt;a href=&quot;https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Central Repository: org/mariadb/jdbc/mariadb-java-client/2.7.2&quot; data-ke-align=&quot;alignCenter&quot; data-og-host=&quot;repo1.maven.org&quot; data-og-source-url=&quot;https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/&quot; data-og-url=&quot;https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/&quot;&gt;&lt;a href=&quot;https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/&quot;&gt;
&lt;div class=&quot;og-image&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Central Repository: org/mariadb/jdbc/mariadb-java-client/2.7.2&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;repo1.maven.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;여기에서 jar 가져와서 넣어줌.&lt;br /&gt;이것도 근데 내 maria 버전하고 맞아야함.&lt;br /&gt;저기 중에서도 source-jar 이런거 안됨.&lt;br /&gt;무조건 그냥 jar...!!!!!!!!!!&lt;br /&gt;&amp;nbsp;&lt;br /&gt;이거를 lib 아래에 넣어주고.&lt;br /&gt;구동하면...&lt;br /&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;http://내 아이피:8080/wassample&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmRZLg/btsFmgCh91C/J5mnMNA9hjgw4wETufl3bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmRZLg/btsFmgCh91C/J5mnMNA9hjgw4wETufl3bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmRZLg/btsFmgCh91C/J5mnMNA9hjgw4wETufl3bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmRZLg%2FbtsFmgCh91C%2FJ5mnMNA9hjgw4wETufl3bk%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;367&quot; height=&quot;346&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;짠...&lt;br /&gt;기쁘다...&lt;br /&gt;....&lt;br /&gt;.....&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>JNDI</category>
      <category>tomcat</category>
      <category>ubuntu</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/257</guid>
      <comments>https://fopman.tistory.com/257#entry257comment</comments>
      <pubDate>Wed, 28 Feb 2024 15:11:47 +0900</pubDate>
    </item>
    <item>
      <title>ubuntu ssh 설정해서 mobaxterm에서 쓰기</title>
      <link>https://fopman.tistory.com/256</link>
      <description>&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;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-testid=&quot;conversation-turn-25&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;29e4be25-afed-4472-bb65-6205d902d67a&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ubuntu 서버에 SSH를 사용하여 원격으로 접속하려면 다음 단계를 따를 수 있습니다. Mobaxterm은 Windows에서 사용하기 위한 터미널 및 SSH 클라이언트입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;SSH 서버 설치 확인:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;먼저 Ubuntu 서버에 SSH 서버가 설치되어 있는지 확인합니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #0d0d0d; color: #ffffff; text-align: left;&quot;&gt;sudo apt-get update &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #0d0d0d; color: #ffffff; text-align: left;&quot;&gt;sudo apt-get install openssh-server&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;만약 설치되어 있지 않다면, openssh-server 패키지를 설치합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SSH 서비스 시작:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SSH 서비스가 실행 중인지 확인합니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #0d0d0d; color: #ffffff; text-align: left;&quot;&gt;sudo service ssh status&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;만약 서비스가 실행 중이 아니라면 다음 명령으로 시작합니다.&lt;br /&gt;
&lt;div&gt;sudo service ssh start&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IP 주소 확인:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ubuntu 서버의 IP 주소를 확인합니다.
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;ip a&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style=&quot;background-color: #ffffff; letter-spacing: 0px;&quot;&gt;혹은&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;ifconfig&lt;br /&gt;를 사용하여 현재 IP 주소를 확인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mobaxterm에서 연결:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mobaxterm을 실행하고, &quot;Session&quot; 메뉴에서 &quot;SSH&quot;를 선택합니다.&lt;/li&gt;
&lt;li&gt;&quot;Remote host&quot;에는 Ubuntu 서버의 IP 주소를 입력합니다.&lt;/li&gt;
&lt;li&gt;&quot;Specify username&quot;에는 Ubuntu 서버의 사용자 이름을 입력합니다.&lt;/li&gt;
&lt;li&gt;&quot;Port&quot;는 기본적으로 22를 사용합니다.&lt;/li&gt;
&lt;li&gt;&quot;Use private key&quot; 옵션을 사용하려면 개인 키 파일을 선택합니다. 비밀번호를 사용하려면 패스워드를 입력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;연결:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설정이 완료되면 &quot;OK&quot;를 클릭하여 SSH 연결을 시도합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;로그인:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연결이 성공하면 Ubuntu 서버의 사용자 이름과 비밀번호를 입력하여 로그인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 단계를 따라가면 Mobaxterm을 사용하여 Ubuntu 서버에 SSH로 연결할 수 있습니다. 이를 통해 원격으로 서버를 관리하거나 명령을 실행할 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;&lt;span data-state=&quot;closed&quot;&gt;&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-testid=&quot;conversation-turn-26&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>알아두면 쓸모있는 것들</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/256</guid>
      <comments>https://fopman.tistory.com/256#entry256comment</comments>
      <pubDate>Fri, 23 Feb 2024 17:29:31 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] jwt</title>
      <link>https://fopman.tistory.com/255</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jwt는 JSON Web Token의 약자&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;이 토큰은 JSON 형식으로 정보를 담고 있고, 일반적으로 사용자 인증이나 권한 부여와 같은 보안 관련 작업에 쓰인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 웹 개발 API 인증에 활용 됨.&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;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring</category>
      <category>JSON</category>
      <category>jwt</category>
      <category>Spring</category>
      <category>권한부여</category>
      <category>스프링</category>
      <author>D269</author>
      <guid isPermaLink="true">https://fopman.tistory.com/255</guid>
      <comments>https://fopman.tistory.com/255#entry255comment</comments>
      <pubDate>Fri, 24 Nov 2023 10:07:56 +0900</pubDate>
    </item>
  </channel>
</rss>