<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>오대양</title>
    <link>https://fiveoceans.tistory.com/</link>
    <description>ABAP 코드 공유합니다. 복사해서 바로 적용할 수 있는 로직으로 
개발 시간을 획기적으로 단축해 보세요.</description>
    <language>ko</language>
    <pubDate>Wed, 13 May 2026 03:00:40 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>SAP 오대양</managingEditor>
    <item>
      <title>서버 관리자들의 성지: 초보자를 위한 학습 사이트 및 커뮤니티 추천</title>
      <link>https://fiveoceans.tistory.com/77</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;서버를 운영하다 보면 반드시 예상치 못한 벽에 부딪히게 됩니다. &quot;명령어가 안 먹혀요&quot;, &quot;갑자기 접속이 안 돼요&quot; 같은 문제들이죠. 이때 혼자 끙끙 앓기보다는 선배 관리자들의 지혜를 빌리는 것이 가장 빠른 길입니다. 오늘은 서버 관리 실력을 쑥쑥 키워줄 국내외 학습 사이트와 커뮤니티를 엄선해 소개합니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 기초를 탄탄하게! 추천 학습 사이트&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size23&quot;&gt;① 생활코딩 (opentutorials.org)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;대한민국 개발 입문자들의 영원한 스승, 이고잉 님의 강의가 있는 곳입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;추천 코스:&lt;/b&gt; '리눅스(Linux)'와 'WEB' 시리즈.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;장점:&lt;/b&gt; 기술의 작동 원리를 아주 쉬운 비유로 설명해 주어 비전공자도 거부감 없이 서버 기초를 다질 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;② 구름에듀 (edu.goorm.io) 및 인프런 (inflearn.com)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;다양한 실무자들의 유료/무료 강의가 모여 있는 플랫폼입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;추천 검색어:&lt;/b&gt; 도커(Docker), AWS 기초, 리눅스 서버 구축.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;장점:&lt;/b&gt; 최신 트렌드에 맞는 실무 기술을 영상으로 따라 하며 배울 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;③ 리눅스 커맨드 (linuxcommand.org)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 명령어와 쉘 스크립트의 정석을 배울 수 있는 해외 사이트입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;장점:&lt;/b&gt; 텍스트 위주지만 깊이 있는 내용을 다루며, 터미널 환경에 익숙해지는 데 큰 도움을 줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size26&quot;&gt;2. 문제 해결의 열쇠! 커뮤니티 및 포럼&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;① Stack Overflow (stackoverflow.com)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;전 세계 개발자와 서버 관리자들의 지식 저장소입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;활용법:&lt;/b&gt; 구글에 에러 메시지를 검색하면 90%는 이곳의 답변이 최상단에 뜹니다. 영어가 조금 어렵더라도 코드와 답변의 추천 수만 봐도 큰 도움이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size23&quot;&gt;② 2CPU (2cpu.co.kr)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;국내에서 서버 하드웨어와 네트워크에 대해 가장 깊은 지식을 보유한 분들이 모인 곳입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;20&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,0,0&quot;&gt;장점:&lt;/b&gt; 물리 서버 구축, 중고 서버 부품 구매, 복잡한 네트워크 설정에 대해 질문하면 '진짜 고수'들의 답변을 들을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size23&quot;&gt;③ 클리앙 소모임 '리눅스/서버' 및 각종 단톡방&lt;/h3&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;보다 가벼운 질문이나 최신 IT 뉴스를 공유하기 좋은 커뮤니티입니다. 비슷한 고민을 하는 동료들을 만나 동기부여를 얻기에 좋습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;23&quot; data-ke-size=&quot;size26&quot;&gt;3. 공식 문서(Official Document)와 친해지기&lt;/h2&gt;
&lt;p data-path-to-node=&quot;24&quot; data-ke-size=&quot;size16&quot;&gt;기술 블로그도 좋지만, 가장 정확한 정보는 해당 소프트웨어의 &lt;b data-index-in-node=&quot;34&quot; data-path-to-node=&quot;24&quot;&gt;공식 홈페이지&lt;/b&gt;에 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;25&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,0,0&quot;&gt;추천:&lt;/b&gt; Nginx, Docker, Ubuntu 공식 가이드를 즐겨찾기 해두세요.&lt;/li&gt;
&lt;li&gt;처음에는 어렵지만, 공식 문서를 읽는 습관을 들이면 기술의 변화에 가장 빠르게 대응하는 '진짜 전문가'가 될 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;26&quot; data-ke-size=&quot;size26&quot;&gt;4. 학습 효율을 높이는 팁&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;27&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,0,0&quot;&gt;직접 구축하고 기록하세요:&lt;/b&gt; 눈으로만 보는 것과 직접 타이핑하는 것은 천지차이입니다. 배운 내용을 블로그에 정리하는 습관은 최고의 복습법입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,1,0&quot;&gt;에러 메시지를 사랑하세요:&lt;/b&gt; 에러는 여러분을 괴롭히는 적이 아니라, 무엇을 공부해야 할지 알려주는 가장 친절한 가이드입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,2,0&quot;&gt;깃허브(GitHub) 탐험:&lt;/b&gt; 다른 사람들이 서버 설정 파일(Config)을 어떻게 관리하는지 오픈 소스 프로젝트를 통해 엿보세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;28&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;29&quot; data-ke-size=&quot;size23&quot;&gt;결론: 서버 관리라는 긴 여정의 주인공이 되세요&lt;/h3&gt;
&lt;p data-path-to-node=&quot;30&quot; data-ke-size=&quot;size16&quot;&gt;지금까지 20회에 걸쳐 서버 구축의 기초부터 보안, 관리, 학습법까지 모두 살펴보았습니다. 이 시리즈가 여러분의 서버 운영에 든든한 밑거름이 되었기를 바랍니다. 기술은 계속 변하지만, 원리를 파고드는 여러분의 열정만 있다면 어떤 서버도 당당하게 운영하실 수 있을 것입니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;31&quot; data-ke-size=&quot;size16&quot;&gt;여러분의 서버가 365일 무중단으로 가동되길 응원합니다!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/77</guid>
      <comments>https://fiveoceans.tistory.com/77#entry77comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:15:37 +0900</pubDate>
    </item>
    <item>
      <title>내게 맞는 서버 사양(CPU, RAM, SSD) 고르는 법</title>
      <link>https://fiveoceans.tistory.com/76</link>
      <description>&lt;h1 data-path-to-node=&quot;2&quot;&gt;내게 맞는 서버 사양(CPU, RAM, SSD) 고르는 법&lt;/h1&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;서버를 직접 조립하거나 클라우드(VPS) 서비스를 결제할 때 가장 고민되는 지점이 바로 '사양 결정'입니다. 사양이 너무 낮으면 서비스가 느려지고, 너무 높으면 소중한 비용이 낭비되기 때문이죠. 오늘은 내 프로젝트 규모에 딱 맞는 CPU, RAM, 저장 장치 선택 기준을 정리해 드립니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. CPU (중앙처리장치): 서버의 두뇌&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;CPU는 서버가 얼마나 복잡한 연산을 빠르게 처리할 수 있는지를 결정합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;코어(Core) 수:&lt;/b&gt; 동시에 처리할 수 있는 일의 양입니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,1,0,0&quot;&gt;1~2코어:&lt;/b&gt; 개인 블로그, 소규모 포트폴리오 사이트, 단순한 API 서버.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,1,1,0&quot;&gt;4코어 이상:&lt;/b&gt; 방문자가 많은 커뮤니티, 복잡한 데이터 연산이 필요한 웹 애플리케이션.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;클럭 속도:&lt;/b&gt; 개별 작업의 처리 속도입니다. 게임 서버처럼 빠른 반응이 중요한 경우 높은 클럭이 유리합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;팁:&lt;/b&gt; 대부분의 웹 서비스는 CPU 보다는 뒤에서 설명할 RAM과 디스크 속도에 더 민감한 경우가 많습니다. 처음엔 낮게 시작해도 괜찮습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. RAM (메모리): 서버의 작업대&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;서버 사양 중 &lt;b data-index-in-node=&quot;8&quot; data-path-to-node=&quot;8&quot;&gt;가장 중요하게&lt;/b&gt; 보아야 할 요소입니다. 데이터를 임시로 올려두고 작업하는 공간이므로, RAM이 부족하면 서버는 급격히 느려집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;1GB~2GB:&lt;/b&gt; 리눅스 OS와 가벼운 웹 서버(Nginx 등) 하나 정도 돌리기에 적당합니다. (초보자 입문용)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;4GB:&lt;/b&gt; 워드프레스, 데이터베이스(MySQL), 여러 개의 도커 컨테이너를 함께 운영할 때의 최소 권장 사양입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;8GB 이상:&lt;/b&gt; 대규모 트래픽이 예상되거나 자바(Java/Spring) 기반의 무거운 애플리케이션을 돌릴 때 필요합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,3,0&quot;&gt;팁:&lt;/b&gt; 메모리가 부족하면 서버가 갑자기 꺼지는 현상(OOM Killer)이 발생하므로, 예상 사양보다 한 단계 높게 잡는 것이 정신 건강에 이롭습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. 저장 장치 (SSD vs HDD): 서버의 창고&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;요즘 서버에서 HDD는 백업용이 아니라면 거의 쓰이지 않습니다. 무조건 &lt;b data-index-in-node=&quot;40&quot; data-path-to-node=&quot;11&quot;&gt;SSD&lt;/b&gt;를 선택해야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;SATA SSD vs NVMe SSD:&lt;/b&gt; NVMe가 훨씬 빠르지만, 일반적인 웹 서비스에서는 차이를 체감하기 어렵습니다. 가성비를 고려해 선택하세요.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;용량 선택:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,1,0,0&quot;&gt;20GB~50GB:&lt;/b&gt; OS와 소스 코드만 올리는 용도로 충분합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,1,1,0&quot;&gt;100GB 이상:&lt;/b&gt; 이미지나 영상 업로드가 많거나 로그 데이터가 많이 쌓이는 경우 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0&quot;&gt;팁:&lt;/b&gt; 용량보다 중요한 것은 &lt;b data-index-in-node=&quot;15&quot; data-path-to-node=&quot;12,2,0&quot;&gt;I/O 속도&lt;/b&gt;입니다. 데이터베이스 읽기/쓰기가 잦다면 디스크 성능 지표(IOPS)를 확인해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. 용도별 추천 조합 (Cheat Sheet)&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;14&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;용도&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;추천 사양 (CPU/RAM/SSD)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;비고&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,1,0,0&quot;&gt;개인 블로그 / 공부용&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,1,1,0&quot;&gt;1 Core / 1~2 GB / 20 GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,1,2,0&quot;&gt;가장 저렴한 VPS 요금제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,2,0,0&quot;&gt;중소규모 웹사이트&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,2,1,0&quot;&gt;2 Core / 4 GB / 50 GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,2,2,0&quot;&gt;안정적인 운영의 시작점&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,3,0,0&quot;&gt;개발 및 테스트 서버&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,3,1,0&quot;&gt;2 Core / 8 GB / 50 GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,3,2,0&quot;&gt;여러 도커 컨테이너 구동 가능&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,4,0,0&quot;&gt;데이터 분석 / 게임 서버&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,4,1,0&quot;&gt;4 Core+ / 16 GB+ / 100 GB+&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,4,2,0&quot;&gt;고성능 하드웨어 필요&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;5. 결론: &quot;확장 가능성&quot;을 먼저 보세요&lt;/h2&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;처음부터 고사양 서버를 빌릴 필요는 없습니다. 클라우드 서버의 가장 큰 장점은 클릭 몇 번으로 사양을 높일 수 있다는 점입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;가장 저렴한 사양으로 시작한다.&lt;/li&gt;
&lt;li&gt;모니터링(17번 주제)을 통해 자원 사용량을 체크한다.&lt;/li&gt;
&lt;li&gt;CPU나 RAM이 80% 이상 지속적으로 점유되면 그때 한 단계씩 업그레이드한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;이 전략이 비용을 아끼면서 최적의 성능을 유지하는 가장 영리한 방법입니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/76</guid>
      <comments>https://fiveoceans.tistory.com/76#entry76comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:15:29 +0900</pubDate>
    </item>
    <item>
      <title>서버 보안의 기초: 방화벽(Firewall) 설정과 원리</title>
      <link>https://fiveoceans.tistory.com/75</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;서버를 구축하고 공인 IP를 할당받는 순간, 전 세계의 수많은 봇(Bot)과 해커들이 여러분의 서버 문을 두드리기 시작합니다. 이때 아무런 방어 장치가 없다면 서버는 금세 놀이터가 되고 말겠죠. 오늘은 서버 보안의 가장 기본이자 핵심인 방화벽(Firewall)의 원리와 설정 방법을 정리해 드립니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 방화벽이란 무엇인가?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;방화벽은 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크(인터넷) 사이에서 &lt;b data-index-in-node=&quot;50&quot; data-path-to-node=&quot;5&quot;&gt;미리 정해진 보안 규칙에 따라 트래픽을 허용하거나 차단&lt;/b&gt;하는 보안 시스템입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;비유:&lt;/b&gt; 클럽 입구를 지키는 '보안 요원(Bouncer)'과 같습니다. 명단(보안 규칙)에 있는 사람(허용된 포트/IP)은 들여보내고, 그렇지 않은 사람은 단호하게 막아세우는 역할을 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 방화벽의 핵심 작동 원리&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;방화벽은 크게 두 가지 방향의 트래픽을 감시합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;인바운드(Inbound):&lt;/b&gt; 외부에서 서버로 들어오는 신호입니다. (가장 중요하게 관리해야 함)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;아웃바운드(Outbound):&lt;/b&gt; 서버에서 외부로 나가는 신호입니다. (악성코드가 외부로 데이터를 유출하는 것을 막을 때 중요함)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;방화벽 설정의 황금률은 '모든 접속을 차단(Default Deny)하고, 필요한 것만 허용(Allow)'하는 것입니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. 리눅스 서버의 대표적인 방화벽 도구&lt;/h2&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;운영체제 계열에 따라 사용하는 도구가 조금씩 다릅니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size23&quot;&gt;① UFW (Uncomplicated Firewall) - Ubuntu 계열&lt;/h3&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;이름처럼 '복잡하지 않은' 방화벽입니다. 초보자가 쓰기에 가장 좋습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;활성화:&lt;/b&gt; sudo ufw enable&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;웹 포트 허용:&lt;/b&gt; sudo ufw allow 80, sudo ufw allow 443&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,2,0&quot;&gt;상태 확인:&lt;/b&gt; sudo ufw status&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size23&quot;&gt;② Firewalld - CentOS/RHEL 계열&lt;/h3&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;'존(Zone)'이라는 개념을 사용하여 네트워크 환경에 따라 다른 보안 규칙을 적용할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;서비스 허용:&lt;/b&gt; sudo firewall-cmd --permanent --add-service=http&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;설정 적용:&lt;/b&gt; sudo firewall-cmd --reload&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size23&quot;&gt;③ Iptables&lt;/h3&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;가장 오래되고 강력한 도구이지만, 명령어가 복잡하여 최근에는 UFW나 Firewalld의 내부 엔진으로 주로 쓰입니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size26&quot;&gt;4. 서버 관리자가 반드시 지켜야 할 방화벽 수칙&lt;/h2&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;서버를 안전하게 운영하기 위해 아래 3가지는 꼭 기억하세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;SSH 포트(22번) 관리:&lt;/b&gt; 22번 포트는 해커들의 주 공격 대상입니다. 방화벽에서 내 집의 IP 주소만 접속 가능하도록 'IP 화이트리스트'를 설정하거나, 아예 포트 번호를 다른 번호로 변경하는 것이 좋습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;사용하지 않는 포트는 닫기:&lt;/b&gt; 서버에 설치된 프로그램 중에는 나도 모르게 포트를 열어두는 경우가 있습니다. netstat -ntlp 명령어로 열려 있는 포트를 확인하고 불필요한 것은 즉시 차단하세요.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,2,0&quot;&gt;로그 모니터링:&lt;/b&gt; 방화벽이 차단한 기록(Log)을 가끔 살펴보세요. 특정 IP에서 반복적으로 접속을 시도한다면 해당 IP를 영구 차단(Deny)해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size26&quot;&gt;5. 방화벽 설정 시 주의사항 (주의!)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;방화벽 설정을 처음 할 때 가장 많이 하는 실수가 &quot;자기가 자기 발등 찍기&quot;입니다.&lt;/p&gt;
&lt;blockquote data-path-to-node=&quot;26&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-path-to-node=&quot;26,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,0&quot;&gt;경고:&lt;/b&gt; SSH(22번 포트) 접속을 허용하지 않은 상태에서 방화벽을 활성화(Enable)하면, 원격 접속 중인 나조차 서버에서 쫓겨나고 다시는 들어갈 수 없게 됩니다. 반드시 SSH 포트를 먼저 allow 한 뒤에 방화벽을 켜세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-path-to-node=&quot;27&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;28&quot; data-ke-size=&quot;size23&quot;&gt;결론: 보안의 시작은 문을 닫는 것부터&lt;/h3&gt;
&lt;p data-path-to-node=&quot;29&quot; data-ke-size=&quot;size16&quot;&gt;방화벽은 완벽한 보안 솔루션은 아니지만, 대부분의 무차별적인 공격을 막아주는 든든한 방패입니다. 서버를 설치했다면 가장 먼저 방화벽을 설정하는 습관을 들이세요. 작지만 강력한 이 설정 하나가 여러분의 소중한 서버를 안전하게 지켜줄 것입니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/75</guid>
      <comments>https://fiveoceans.tistory.com/75#entry75comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:15:21 +0900</pubDate>
    </item>
    <item>
      <title>서버 모니터링이란? 리소스 체크가 필요한 이유</title>
      <link>https://fiveoceans.tistory.com/74</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;건강을 유지하기 위해 정기검진을 받듯, 서버 역시 지속적인 **'상태 점검'**이 필요합니다. 아무런 예고 없이 사이트가 멈추거나 데이터베이스가 응답하지 않는 현상의 대부분은 평소 리소스 상태를 조금만 세심하게 관찰했어도 막을 수 있는 일들입니다. 오늘은 안정적인 서비스 운영의 핵심, 서버 모니터링에 대해 알아보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 서버 모니터링이란?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;서버 모니터링은 서버의 하드웨어와 소프트웨어 자원(Resource)이 얼마나 사용되고 있는지, 서비스가 정상적으로 작동하고 있는지를 실시간으로 감시하는 활동입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;비유:&lt;/b&gt; 자동차 계기판을 보는 것과 같습니다. 속도는 적당한지, 연료(메모리)는 충분한지, 엔진 온도(CPU)가 너무 높지는 않은지 수시로 확인하여 사고를 미연에 방지하는 과정입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 왜 리소스 체크가 필수일까?&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;① 서비스 중단 예방 (Downtime Prevention)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;서버의 저장 공간(Disk)이 100% 가득 차면 로그를 기록하지 못해 서버가 즉시 멈춰버립니다. 모니터링을 통해 &quot;용량이 90% 찼다&quot;는 알림을 미리 받는다면, 사고가 터지기 전에 조치를 취할 수 있습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;② 사용자 경험 최적화&lt;/h3&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;사용자가 몰리는 시간대에 CPU 사용률이 급증하면 사이트 응답 속도가 느려집니다. 어느 시점에 자원이 부족한지 파악하면 서버 사양을 높이거나(Scale-up) 대수를 늘리는(Scale-out) 정확한 판단 근거가 됩니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;③ 보안 위협 감지&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;평소보다 네트워크 트래픽이 비정상적으로 높거나 특정 프로세스가 자원을 독점하고 있다면, 이는 DDoS 공격이나 가상화폐 채굴 악성코드(Cryptojacking)에 감염된 신호일 수 있습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size26&quot;&gt;3. 반드시 체크해야 할 4대 핵심 지표&lt;/h2&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;서버의 건강 상태를 결정짓는 가장 중요한 요소들입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;CPU 사용률:&lt;/b&gt; 서버의 두뇌가 얼마나 바쁜지 나타냅니다. 지속적으로 80% 이상이라면 처리가 지연되고 있다는 뜻입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;메모리(RAM) 점유율:&lt;/b&gt; 데이터를 읽고 쓰는 임시 공간입니다. 부족하면 시스템이 느려지거나 프로그램이 강제로 종료(OOM Killer)될 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0&quot;&gt;디스크 용량(Disk Usage):&lt;/b&gt; 데이터 보관 주머니입니다. 로그 파일이 쌓여 꽉 차지 않도록 주기적인 관리가 필요합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,3,0&quot;&gt;네트워크 트래픽 (Network I/O):&lt;/b&gt; 데이터가 드나드는 통로입니다. 대역폭이 꽉 차면 접속이 불가능해집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size26&quot;&gt;4. 대표적인 모니터링 도구들&lt;/h2&gt;
&lt;p data-path-to-node=&quot;18&quot; 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-path-to-node=&quot;19&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;도구 이름&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;추천 대상&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,1,0,0&quot;&gt;top / htop&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,1,1,0&quot;&gt;리눅스 기본 명령어로 텍스트 기반 실시간 확인&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,1,2,0&quot;&gt;개인 서버, 빠른 점검 필요 시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,2,0,0&quot;&gt;Netdata&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,2,1,0&quot;&gt;설치가 매우 간편하고 예쁜 실시간 그래프 제공&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,2,2,0&quot;&gt;초보자, 단일 서버 운영자&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,3,0,0&quot;&gt;Prometheus &amp;amp; Grafana&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,3,1,0&quot;&gt;강력한 데이터 수집과 커스텀 대시보드 구성&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,3,2,0&quot;&gt;전문 개발팀, 대규모 서버군&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,4,0,0&quot;&gt;Datadog / New Relic&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,4,1,0&quot;&gt;클라우드 기반 유료 서비스 (강력한 기능과 알림)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,4,2,0&quot;&gt;기업용 서비스, 비용 여유가 있는 경우&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size26&quot;&gt;5. 결론: 알림(Alerting)이 모니터링의 완성입니다&lt;/h2&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;모니터링 화면을 24시간 쳐다보고 있을 수는 없습니다. 진정한 모니터링의 가치는 **'문제가 생겼을 때 알려주는 기능'**에 있습니다. 리소스 사용량이 특정 수치를 넘어가면 이메일, 슬랙(Slack), 텔레그램 등으로 알림이 오도록 설정하세요. 그것이 여러분의 평화로운 밤샘 없는 운영을 보장해 줄 것입니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/74</guid>
      <comments>https://fiveoceans.tistory.com/74#entry74comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:15:03 +0900</pubDate>
    </item>
    <item>
      <title>서버 백업의 중요성과 정기 백업 자동화 방법</title>
      <link>https://fiveoceans.tistory.com/73</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;IT 업계에는 이런 명언이 있습니다. &lt;b data-index-in-node=&quot;21&quot; data-path-to-node=&quot;3&quot;&gt;&quot;세상에는 이미 데이터가 날아간 사람과, 앞으로 날아갈 사람 두 종류만 존재한다.&quot;&lt;/b&gt; 서버는 기계입니다. 기계는 언젠가 반드시 고장 나며, 인간은 누구나 실수를 합니다. 오늘은 내 소중한 서버의 데이터를 지키는 최후의 보루, 백업의 전략과 자동화 방법에 대해 알아보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 서버 백업이 왜 그토록 중요한가?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;단순히 &quot;데이터가 사라질까 봐&quot;라는 이유 외에도 백업이 필요한 이유는 생각보다 다양합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;하드웨어 결함:&lt;/b&gt; 서버의 저장 장치(SSD/HDD)는 수명이 있습니다. 아무런 예고 없이 갑자기 작동을 멈추는 일이 비일비재합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;랜섬웨어 및 보안 사고:&lt;/b&gt; 해킹으로 인해 데이터가 암호화되거나 삭제되었을 때, 백업이 없다면 공격자와 협상을 해야 하는 절망적인 상황에 놓입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;사람의 실수:&lt;/b&gt; 실수로 터미널에 rm -rf /를 입력하거나, 엉뚱한 데이터베이스 테이블을 삭제(Drop)하는 일은 베테랑 관리자에게도 일어날 수 있는 비극입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,0&quot;&gt;업데이트 실패:&lt;/b&gt; 시스템이나 애플리케이션을 업데이트하다가 설정이 꼬여 서버가 부팅되지 않을 때, 백업은 가장 빠른 복구 수단이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 완벽한 백업을 위한 '3-2-1 원칙'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;전문가들이 권장하는 가장 표준적인 백업 전략입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;3 (Three Copies):&lt;/b&gt; 원본 데이터 외에 최소 &lt;b data-index-in-node=&quot;31&quot; data-path-to-node=&quot;9,0,0&quot;&gt;3개의 복사본&lt;/b&gt;을 유지합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;2 (Two Different Media):&lt;/b&gt; 최소 &lt;b data-index-in-node=&quot;28&quot; data-path-to-node=&quot;9,1,0&quot;&gt;2가지 이상의 다른 매체&lt;/b&gt;에 저장합니다. (예: 서버 내 별도 디스크 + 외장 하드)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;1 (One Off-site):&lt;/b&gt; 최소 &lt;b data-index-in-node=&quot;21&quot; data-path-to-node=&quot;9,2,0&quot;&gt;1개는 외부 장소&lt;/b&gt;에 보관합니다. (예: 클라우드 저장소 - Google Drive, AWS S3 등)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. 리눅스 서버 백업의 핵심 도구&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 환경에서 별도의 유료 프로그램 없이 사용할 수 있는 강력한 도구들입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;tar:&lt;/b&gt; 파일과 폴더를 하나로 묶어 압축하는 기본 도구입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;rsync:&lt;/b&gt; 변경된 파일만 골라서 효율적으로 복사(동기화)하는 도구입니다. 네트워크를 통한 원격 백업에 탁월합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0&quot;&gt;rclone:&lt;/b&gt; 구글 드라이브, 드롭박스, AWS S3 같은 클라우드 서비스와 내 서버를 연결하여 데이터를 전송해 주는 도구입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. 백업 자동화하기: 크론탭(Crontab) 활용&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;백업은 사람이 직접 하면 반드시 까먹게 됩니다. 기계에게 시키는 것이 가장 안전합니다. 매일 새벽 3시에 특정 폴더를 압축해서 백업하는 시나리오를 만들어 봅시다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;① 백업 스크립트 작성 (backup.sh)&lt;/h3&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwiRs7OCv5KUAxUAAAAAHQAAAAAQpwE&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;code&gt;#!/bin/bash
# 백업 파일 저장 경로
BACKUP_DIR=&quot;/home/user/backups&quot;
# 백업할 대상 폴더
SOURCE_DIR=&quot;/var/www/html&quot;
# 날짜별 파일명 생성
DATE=$(date +%Y-%m-%d)
FILENAME=&quot;backup-$DATE.tar.gz&quot;

# 압축 실행
tar -czf $BACKUP_DIR/$FILENAME $SOURCE_DIR

# 7일이 지난 오래된 백업 파일은 자동 삭제 (용량 관리)
find $BACKUP_DIR -type f -mtime +7 -delete
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;② 크론탭 등록&lt;/h3&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;터미널에 crontab -e를 입력하고 맨 아래에 다음 줄을 추가합니다.&lt;/p&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwiRs7OCv5KUAxUAAAAAHQAAAAAQqAE&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;0 3 * * * /home/user/backup.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;이제 매일 새벽 3시에 서버가 스스로 백업을 수행하고, 일주일이 지난 파일은 알아서 지워주며 용량을 관리합니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size26&quot;&gt;5. 백업보다 중요한 것은 '복구 테스트'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;많은 관리자가 백업 파일이 생성되는 것만 보고 안심합니다. 하지만 막상 사고가 터졌을 때 압축 파일이 깨져 있거나 데이터가 누락된 것을 발견하면 그땐 이미 늦습니다. &lt;b data-index-in-node=&quot;93&quot; data-path-to-node=&quot;22&quot;&gt;한 달에 한 번은 반드시 백업 파일을 직접 열어 데이터가 온전한지 확인&lt;/b&gt;하는 '복구 테스트'를 병행해야 합니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;23&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;결론: 백업은 미래의 나에게 보내는 선물입니다&lt;/h3&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;사고는 예고 없이 찾아옵니다. 오늘 설정해둔 5분의 자동화 작업이 훗날 수개월간 쌓아온 데이터를 살릴 수도 있고, 여러분의 커리어를 지켜줄 수도 있습니다. 지금 바로 내 서버의 가장 중요한 데이터가 어디인지 확인하고 백업 계획을 세워보세요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/73</guid>
      <comments>https://fiveoceans.tistory.com/73#entry73comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:14:53 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 텍스트 에디터(Vi/Vim) 기본 사용법</title>
      <link>https://fiveoceans.tistory.com/72</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 서버에 접속해서 설정 파일을 수정해야 할 때, 여러분은 어떤 도구를 사용하시나요? 윈도우의 메모장 같은 GUI 에디터가 없는 터미널 환경에서 가장 강력하고 대중적인 도구는 바로 &lt;b data-index-in-node=&quot;103&quot; data-path-to-node=&quot;3&quot;&gt;Vi(Visual Editor)&lt;/b&gt; 혹은 그 확장판인 Vim(Vi Improved)입니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;처음 실행하면 글자 입력조차 마음대로 안 되어 당황스럽겠지만, 딱 몇 가지 규칙만 익히면 이보다 빠르고 편리한 에디터는 없습니다. 오늘은 'Vim에서 탈출하지 못하는 초보자'를 위한 필수 사용법을 정리해 드립니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size26&quot;&gt;1. Vim의 핵심: '모드(Mode)'의 이해&lt;/h2&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;Vim이 다른 에디터와 결정적으로 다른 점은 &lt;b data-index-in-node=&quot;25&quot; data-path-to-node=&quot;6&quot;&gt;모드형 에디터&lt;/b&gt;라는 것입니다. 마우스가 없던 시절에 만들어졌기 때문에, 키보드 자판을 '입력용'으로 쓸지 '명령용'으로 쓸지 나누어 놓은 것이죠.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;명령 모드 (Normal Mode):&lt;/b&gt; 파일을 처음 열었을 때의 기본 상태입니다. 커서 이동, 삭제, 복사 등을 수행합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;입력 모드 (Insert Mode):&lt;/b&gt; 실제로 글자를 타이핑하는 상태입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,0&quot;&gt;명령행 모드 (Command-line Mode):&lt;/b&gt; 저장, 종료, 검색 등을 수행합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size26&quot;&gt;2. 기본 흐름: 열고, 쓰고, 저장하고, 나가기&lt;/h2&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;가장 기초적인 작업 순서를 따라가 보겠습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;파일 열기:&lt;/b&gt; 터미널에 vi 파일명.txt를 입력합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;입력 시작:&lt;/b&gt; 명령 모드에서 영문자 &lt;b data-index-in-node=&quot;19&quot; data-path-to-node=&quot;10,1,0&quot;&gt;i&lt;/b&gt; (Insert)를 누릅니다. 왼쪽 하단에 -- INSERT --라고 뜨면 이제 글자를 입력할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;입력 종료:&lt;/b&gt; 입력을 마쳤다면 &lt;b data-index-in-node=&quot;16&quot; data-path-to-node=&quot;10,2,0&quot;&gt;Esc&lt;/b&gt; 키를 눌러 다시 명령 모드로 돌아옵니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,0&quot;&gt;저장 및 종료:&lt;/b&gt; 명령 모드에서 &lt;b data-index-in-node=&quot;17&quot; data-path-to-node=&quot;10,3,0&quot;&gt;:&lt;/b&gt; (콜론)을 누르면 화면 하단에 명령을 입력할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10,3,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,1,0,0&quot;&gt;:w&lt;/b&gt; : 저장 (Write)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,1,1,0&quot;&gt;:q&lt;/b&gt; : 종료 (Quit)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,1,2,0&quot;&gt;:wq&lt;/b&gt; : 저장 후 종료 (가장 많이 쓰임)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,1,3,0&quot;&gt;:q!&lt;/b&gt; : 저장하지 않고 강제 종료 (수정하다 망쳤을 때 유용)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. 필수 단축키 (명령 모드 기준)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;마우스 없이도 자유롭게 편집하기 위해 꼭 외워야 할 명령어들입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;커서 이동:&lt;/b&gt; 화살표 키도 작동하지만, 고수들은 &lt;b data-index-in-node=&quot;26&quot; data-path-to-node=&quot;13,0,0&quot;&gt;h&lt;/b&gt;(좌), &lt;b data-index-in-node=&quot;32&quot; data-path-to-node=&quot;13,0,0&quot;&gt;j&lt;/b&gt;(하), &lt;b data-index-in-node=&quot;38&quot; data-path-to-node=&quot;13,0,0&quot;&gt;k&lt;/b&gt;(상), &lt;b data-index-in-node=&quot;44&quot; data-path-to-node=&quot;13,0,0&quot;&gt;l&lt;/b&gt;(우)를 사용합니다. 손 위치를 바꾸지 않아도 되기 때문이죠.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;삭제:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,1,0,0&quot;&gt;x&lt;/b&gt; : 커서 위치의 글자 한 개 삭제&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,1,1,0&quot;&gt;dd&lt;/b&gt; : 현재 줄 전체 삭제&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;복사와 붙여넣기:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,1,0,0&quot;&gt;yy&lt;/b&gt; : 현재 줄 복사 (Yank)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,1,1,0&quot;&gt;p&lt;/b&gt; : 현재 줄 아래에 붙여넣기 (Paste)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,0&quot;&gt;실수 되돌리기:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,3,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,1,0,0&quot;&gt;u&lt;/b&gt; : 실행 취소 (Undo)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,1,1,0&quot;&gt;Ctrl + r&lt;/b&gt; : 다시 실행 (Redo)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size26&quot;&gt;4. 검색과 이동 꿀팁&lt;/h2&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;파일 내용이 길 때 유용하게 사용할 수 있는 기능입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;단어 검색:&lt;/b&gt; 명령 모드에서 /검색어를 입력하고 엔터를 칩니다. n을 누르면 다음 검색 결과로 이동합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;줄 번호 이동:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,1,0,0&quot;&gt;G&lt;/b&gt; : 파일의 맨 마지막 줄로 이동&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,1,1,0&quot;&gt;gg&lt;/b&gt; : 파일의 맨 처음 줄로 이동&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,1,2,0&quot;&gt;:숫자&lt;/b&gt; : 해당 숫자의 라인으로 이동 (예: :50 입력 시 50행으로 점프)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size26&quot;&gt;5. 왜 굳이 Vim을 배워야 할까요?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;처음에는 불편해 보일 수 있지만, Vim은 거의 모든 리눅스 배포판에 기본으로 깔려 있습니다. 즉, 어떤 서버에 접속하더라도 도구 탓을 하지 않고 즉시 작업을 시작할 수 있다는 뜻이죠. 또한 익숙해지면 마우스에 손을 대지 않고도 엄청난 속도로 코드를 편집하는 자신을 발견하게 될 것입니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;19&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;  초보자를 위한 한 줄 요약&lt;/h3&gt;
&lt;blockquote data-path-to-node=&quot;21&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-path-to-node=&quot;21,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0&quot;&gt;&quot;들어가려면 i, 나오려면 Esc, 저장하고 끝내려면 :wq&quot;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;이 세 가지만 기억해도 일단 리눅스 서버에서 텍스트를 수정하는 데 아무런 지장이 없습니다. 오늘 바로 터미널을 열고 vi test.txt를 입력해 실습해 보세요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/72</guid>
      <comments>https://fiveoceans.tistory.com/72#entry72comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:14:45 +0900</pubDate>
    </item>
    <item>
      <title>파일 전송의 기초: FTP와 SFTP의 차이점</title>
      <link>https://fiveoceans.tistory.com/71</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;서버 구축을 완료했다면 이제 내 컴퓨터에서 작업한 HTML 파일이나 이미지, 설정 파일들을 서버로 올려야 합니다. 이때 가장 흔히 사용하는 방법이 바로 파일 전송 프로토콜입니다. 가장 익숙한 이름인 &lt;b data-index-in-node=&quot;111&quot; data-path-to-node=&quot;3&quot;&gt;FTP&lt;/b&gt;와 그보다 조금 더 복잡해 보이는 &lt;b data-index-in-node=&quot;133&quot; data-path-to-node=&quot;3&quot;&gt;SFTP&lt;/b&gt;, 과연 어떤 차이가 있으며 우리는 무엇을 사용해야 할까요?&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. FTP (File Transfer Protocol)란?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;FTP는 1970년대부터 사용된 아주 오래되고 전통적인 파일 전송 방식입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;특징:&lt;/b&gt; 파일 전송 그 자체에 특화되어 있어 속도가 빠르고 직관적입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;작동 포트:&lt;/b&gt; 기본적으로 &lt;b data-index-in-node=&quot;13&quot; data-path-to-node=&quot;6,1,0&quot;&gt;21번 포트&lt;/b&gt;를 사용하여 명령을 전달하고, 데이터 전송을 위해 별도의 포트를 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;치명적인 단점:&lt;/b&gt; &lt;b data-index-in-node=&quot;9&quot; data-path-to-node=&quot;6,2,0&quot;&gt;보안에 매우 취약합니다.&lt;/b&gt; 아이디와 비밀번호, 그리고 전송하는 파일 내용이 암호화되지 않은 '평문(Plain Text)' 상태로 전송됩니다. 즉, 누군가 중간에서 데이터를 가로채면 내 서버의 비밀번호를 그대로 노출하게 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. SFTP (SSH File Transfer Protocol)란?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;SFTP는 이름에 'S(Secure)'가 붙은 것처럼, 보안이 강화된 파일 전송 방식입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;특징:&lt;/b&gt; SSH(Secure Shell)라는 암호화 통신 기술을 기반으로 파일을 전송합니다. 모든 데이터가 암호화되어 전송되므로 해커가 중간에서 가로채더라도 내용을 알 수 없습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;작동 포트:&lt;/b&gt; 별도의 포트 없이 SSH와 동일한 &lt;b data-index-in-node=&quot;26&quot; data-path-to-node=&quot;9,1,0&quot;&gt;22번 포트&lt;/b&gt;를 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;장점:&lt;/b&gt; 강력한 보안성뿐만 아니라, SSH 설정을 그대로 이용하므로 별도의 FTP 서버 프로그램을 설치할 필요가 없는 경우가 많습니다(리눅스 서버 기준).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. FTP vs SFTP 핵심 비교&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;11&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;비교 항목&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;FTP&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;SFTP&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0,0&quot;&gt;풀네임&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,1,1,0&quot;&gt;File Transfer Protocol&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,1,2,0&quot;&gt;SSH File Transfer Protocol&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,2,0,0&quot;&gt;보안성&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,2,1,0&quot;&gt;매우 낮음 (암호화 없음)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,2,2,0&quot;&gt;매우 높음 (암호화 전송)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,3,0,0&quot;&gt;사용 포트&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,3,1,0&quot;&gt;21번 (기본)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,3,2,0&quot;&gt;22번 (SSH와 공유)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,4,0,0&quot;&gt;속도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,4,1,0&quot;&gt;약간 더 빠름&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,4,2,0&quot;&gt;암호화 과정으로 인해 미세하게 느림&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,5,0,0&quot;&gt;인증 방식&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,5,1,0&quot;&gt;아이디/비밀번호&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,5,2,0&quot;&gt;아이디/비밀번호 + SSH 키 인증 가능&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size26&quot;&gt;4. 어떤 것을 사용해야 할까?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;결론부터 말씀드리면, &lt;b data-index-in-node=&quot;12&quot; data-path-to-node=&quot;13&quot;&gt;무조건 SFTP를 사용하시길 권장합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;과거에는 전송 속도 차이 때문에 FTP를 쓰기도 했지만, 현대의 컴퓨팅 성능에서는 그 차이가 무의미할 정도로 미미합니다. 반면, 보안 사고로 인해 서버 정보가 털렸을 때의 피해는 막대하죠. 특히 공공장소의 와이파이나 보안이 확인되지 않은 네트워크 환경에서 FTP를 사용하는 것은 대문을 열어두고 외출하는 것과 같습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;5. 파일 전송을 위한 추천 도구 (Client)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;직접 명령어를 입력할 수도 있지만, GUI(그래픽 인터페이스) 도구를 사용하면 훨씬 편리합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;FileZilla (파일질라):&lt;/b&gt; 윈도우, 맥, 리눅스 모두 지원하는 가장 유명한 무료 도구입니다. 설정에서 'SFTP' 프로토콜을 선택하기만 하면 됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;WinSCP:&lt;/b&gt; 윈도우 사용자에게 강력 추천하는 도구입니다. 직관적이고 가벼우며 보안 기능이 뛰어납니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,2,0&quot;&gt;Termius / Mobaxterm:&lt;/b&gt; 터미널 접속(SSH)과 파일 전송(SFTP)을 한 화면에서 처리하고 싶을 때 유용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;18&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size23&quot;&gt;결론: 보안은 이제 옵션이 아닌 필수입니다&lt;/h3&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;파일 전송은 서버 운영의 일상적인 업무입니다. &quot;누가 내 파일을 가로채겠어?&quot;라는 안일한 생각보다는, 처음부터 &lt;b data-index-in-node=&quot;62&quot; data-path-to-node=&quot;20&quot;&gt;SFTP&lt;/b&gt;라는 안전한 통로를 이용하는 습관을 들이는 것이 좋습니다. 한 번만 설정해두면 FTP와 사용법이 완전히 동일하니까요. 오늘부터 여러분의 서버 관리는 22번 포트를 통한 SFTP로 시작해 보세요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/71</guid>
      <comments>https://fiveoceans.tistory.com/71#entry71comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:14:31 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 패키지 관리자(apt, yum) 사용법: 프로그램 설치의 모든 것</title>
      <link>https://fiveoceans.tistory.com/70</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;윈도우에서 프로그램을 설치하려면 인터넷에서 .exe 파일을 내려받아 실행하지만, 리눅스 서버는 다릅니다. 스마트폰의 '앱스토어'처럼, 명령어를 통해 안전한 저장소(Repository)에서 프로그램을 가져와 설치하죠. 이때 사용하는 도구가 바로 &lt;b data-index-in-node=&quot;136&quot; data-path-to-node=&quot;3&quot;&gt;패키지 관리자&lt;/b&gt;입니다. 오늘은 리눅스의 양대 산맥인 &lt;b data-index-in-node=&quot;164&quot; data-path-to-node=&quot;3&quot;&gt;apt&lt;/b&gt;와 &lt;b data-index-in-node=&quot;169&quot; data-path-to-node=&quot;3&quot;&gt;yum&lt;/b&gt;의 사용법을 완벽히 정리해 드립니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 패키지 관리자란 무엇인가?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;패키지 관리자는 운영체제에서 소프트웨어의 설치, 업데이트, 삭제를 자동화해 주는 도구입니다. 리눅스에는 수많은 배포판이 있고, 계열에 따라 사용하는 관리자가 다릅니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;APT (Advanced Package Tool):&lt;/b&gt; 우분투(Ubuntu), 데비안(Debian) 계열에서 사용합니다. 가장 대중적이고 사용법이 직관적입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;YUM (Yellowdog Updater, Modified) / DNF:&lt;/b&gt; CentOS, RedHat(RHEL), 페도라 계열에서 사용합니다. 최신 버전에서는 성능이 개선된 &lt;b data-index-in-node=&quot;96&quot; data-path-to-node=&quot;6,1,0&quot;&gt;DNF&lt;/b&gt;를 주로 사용하지만, 명령법은 거의 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. APT 사용법 (Ubuntu/Debian 계열)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;가장 많이 사용되는 우분투 환경에서의 기본 명령어입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;패키지 목록 업데이트:&lt;/b&gt; sudo apt update
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실제 설치가 아니라, 설치 가능한 프로그램들의 최신 리스트를 가져옵니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;패키지 설치:&lt;/b&gt; sudo apt install [패키지명]
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: sudo apt install nginx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;패키지 삭제:&lt;/b&gt; sudo apt remove [패키지명]
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설정 파일은 남기고 프로그램만 지웁니다. 완전히 지우려면 purge를 씁니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,3,0&quot;&gt;설치된 모든 패키지 업그레이드:&lt;/b&gt; sudo apt upgrade&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. YUM / DNF 사용법 (CentOS/RHEL 계열)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;기업용 서버에서 주로 쓰이는 레드햇 계열의 명령어입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;패키지 설치:&lt;/b&gt; sudo yum install [패키지명]&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;패키지 삭제:&lt;/b&gt; sudo yum remove [패키지명]&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0&quot;&gt;패키지 검색:&lt;/b&gt; sudo yum search [키워드]
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;내가 찾는 프로그램의 정확한 이름을 모를 때 유용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,3,0&quot;&gt;시스템 전체 업데이트:&lt;/b&gt; sudo yum update&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. 핵심 비교 및 요약표&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;14&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;기능&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;APT (Ubuntu계열)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;YUM/DNF (RedHat계열)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,1,0,0&quot;&gt;목록 새로고침&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,1,1,0&quot;&gt;apt update&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,1,2,0&quot;&gt;yum check-update&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,2,0,0&quot;&gt;프로그램 설치&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,2,1,0&quot;&gt;apt install&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,2,2,0&quot;&gt;yum install&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,3,0,0&quot;&gt;프로그램 삭제&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,3,1,0&quot;&gt;apt remove&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,3,2,0&quot;&gt;yum remove&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,4,0,0&quot;&gt;패키지 검색&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,4,1,0&quot;&gt;apt search&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,4,2,0&quot;&gt;yum search&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,5,0,0&quot;&gt;전체 업그레이드&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,5,1,0&quot;&gt;apt upgrade&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;14,5,2,0&quot;&gt;yum update&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;5. 서버 관리자가 꼭 알아야 할 팁&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size23&quot;&gt;① update와 upgrade의 차이&lt;/h3&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;가장 많이 하는 실수입니다. update는 &quot;목록 업데이트&quot;이고, upgrade는 &quot;실제 설치된 프로그램들의 버전 올리기&quot;입니다. 새로운 프로그램을 깔기 전에는 항상 update를 먼저 해주는 것이 매너입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size23&quot;&gt;② 의존성(Dependency) 해결&lt;/h3&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;패키지 관리자의 가장 큰 장점은 &lt;b data-index-in-node=&quot;18&quot; data-path-to-node=&quot;19&quot;&gt;의존성 관리&lt;/b&gt;입니다. 예를 들어 A라는 프로그램을 깔기 위해 B와 C가 필요하다면, 패키지 관리자가 알아서 B와 C까지 한꺼번에 설치해 줍니다. 윈도우처럼 &quot;DLL 파일이 없습니다&quot;라는 오류를 일일이 해결할 필요가 없죠.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;③ -y 옵션 활용&lt;/h3&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;명령어 뒤에 -y를 붙이면(예: apt install nginx -y), 설치 중간에 물어보는 &quot;정말 설치하시겠습니까? (Y/n)&quot; 질문에 자동으로 Yes라고 답합니다. 자동화 스크립트를 짤 때 필수입니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;22&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;23&quot; data-ke-size=&quot;size23&quot;&gt;결론: 도구를 잘 다뤄야 고수가 됩니다&lt;/h3&gt;
&lt;p data-path-to-node=&quot;24&quot; data-ke-size=&quot;size16&quot;&gt;패키지 관리자 사용법을 익히는 것은 서버라는 거대한 시스템을 자유자재로 다루기 위한 첫 단추입니다. 내 서버의 운영체제가 무엇인지 확인하고, 필요한 프로그램을 직접 설치해 보며 터미널과 친해져 보세요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/70</guid>
      <comments>https://fiveoceans.tistory.com/70#entry70comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:14:20 +0900</pubDate>
    </item>
    <item>
      <title>SSL 보안 인증서(HTTPS)의 개념과 설치 이유</title>
      <link>https://fiveoceans.tistory.com/69</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;브라우저 주소창에 사이트 주소를 입력했을 때, 주소 왼쪽에 초록색 '자물쇠 아이콘'이 떠 있는 것을 본 적이 있으시죠? 반대로 어떤 사이트는 &quot;이 사이트는 안전하지 않습니다&quot;라는 경고가 뜨기도 합니다. 이 차이를 만드는 것이 바로 &lt;b data-index-in-node=&quot;129&quot; data-path-to-node=&quot;3&quot;&gt;SSL(Secure Sockets Layer) 보안 인증서&lt;/b&gt;입니다. 오늘은 내 서버와 사용자를 보호하는 강력한 방패, SSL과 HTTPS에 대해 알아보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. SSL과 HTTPS란 무엇인가?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;SSL (Secure Sockets Layer):&lt;/b&gt; 웹 서버와 사용자 브라우저 사이에서 주고받는 데이터를 &lt;b data-index-in-node=&quot;58&quot; data-path-to-node=&quot;5,0,0&quot;&gt;암호화&lt;/b&gt;하는 보안 표준 기술입니다. (현재는 더 발전된 버전인 TLS가 쓰이지만, 보통 SSL이라는 용어로 통용됩니다.)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;HTTPS (HyperText Transfer Protocol Secure):&lt;/b&gt; 우리가 흔히 아는 웹 통신 규약인 HTTP 뒤에 'Secure(보안)'가 붙은 것입니다. 즉, SSL 인증서가 설치된 웹 서버는 HTTP 대신 HTTPS라는 보안 경로를 통해 데이터를 주고받습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size26&quot;&gt;2. 왜 SSL을 반드시 설치해야 할까?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;과거에는 결제 페이지나 로그인 페이지에만 SSL을 적용했지만, 지금은 모든 페이지에 설치하는 것이 글로벌 표준입니다. 그 이유는 크게 세 가지입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;① 데이터 도청 및 변조 방지 (보안)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;HTTP 방식은 데이터를 가로채면 누구나 내용을 읽을 수 있는 '평문' 상태로 전송됩니다. 카페 공용 와이파이 등을 사용 중일 때 해커가 중간에서 비밀번호나 개인정보를 훔쳐보는 '스니핑(Sniffing)' 공격에 매우 취약합니다. SSL을 설치하면 데이터를 복잡한 암호로 바꾸어 설령 가로채더라도 내용을 알 수 없게 만듭니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;② 사용자 신뢰도와 경고 메시지 방지&lt;/h3&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;구글 크롬을 포함한 최신 브라우저들은 SSL이 설치되지 않은 사이트(HTTP)에 접속할 때 &lt;b data-index-in-node=&quot;51&quot; data-path-to-node=&quot;11&quot;&gt;'주의 요함'&lt;/b&gt; 또는 '안전하지 않음'이라는 빨간색 경고 문구를 띄웁니다. 일반 사용자들에게 이 문구는 사이트의 신뢰도를 급격히 떨어뜨리는 요인이 됩니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;③ 구글 SEO(검색 엔진 최적화) 가산점&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;구글은 공식적으로 &quot;HTTPS를 사용하는 사이트에 검색 순위 가산점을 주겠다&quot;고 발표했습니다. 같은 정보를 담은 글이라도 HTTPS가 적용된 블로그가 구글 검색 상단에 노출될 확률이 훨씬 높습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size26&quot;&gt;3. SSL의 작동 원리: '대칭키'와 '공개키'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;SSL은 복잡한 수학적 원리로 작동하지만, 간단히 요약하면 다음과 같은 &lt;b data-index-in-node=&quot;40&quot; data-path-to-node=&quot;15&quot;&gt;'핸드쉐이크(Handshake)'&lt;/b&gt; 과정을 거칩니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;인사:&lt;/b&gt; 클라이언트가 서버에 접속하여 &quot;안녕, 보안 통신 가능해?&quot;라고 물어봅니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;인증서 전달:&lt;/b&gt; 서버는 자신의 SSL 인증서와 '공개키'를 보냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0&quot;&gt;검증:&lt;/b&gt; 브라우저는 이 인증서가 믿을만한 기관(CA)에서 발급된 것인지 확인합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,3,0&quot;&gt;암호화 통로 개설:&lt;/b&gt; 브라우저와 서버가 서로만 아는 비밀키를 공유하고, 이때부터 모든 데이터를 암호화하여 주고받습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size26&quot;&gt;4. SSL 인증서, 어떻게 발급받나?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;유료 인증서:&lt;/b&gt; Sectigo, Digicert 등 전문 보안 기업에서 발급합니다. 보안 사고 발생 시 보상 보험이 포함되며, 기업의 신원 확인 절차가 까다로운 대신 높은 신뢰도를 줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;무료 인증서 (Let's Encrypt):&lt;/b&gt; 비영리 기관에서 제공하며, 현재 전 세계에서 가장 많이 사용됩니다. 90일마다 갱신해야 하지만 자동화 도구가 잘 되어 있어 개인 블로그나 중소규모 서버 운영자에게 가장 추천하는 방식입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;5. 결론: 선택이 아닌 필수입니다&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;이제 SSL은 &quot;하면 좋은 것&quot;이 아니라 &quot;하지 않으면 안 되는 것&quot;이 되었습니다. 내 서버의 보안을 지키고 방문자에게 신뢰를 주며, 구글 검색 유입까지 챙기고 싶다면 지금 당장 여러분의 서버에 SSL 인증서를 설치해 보세요.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/69</guid>
      <comments>https://fiveoceans.tistory.com/69#entry69comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:14:12 +0900</pubDate>
    </item>
    <item>
      <title>DNS 서버의 역할과 동작 원리 한눈에 보기</title>
      <link>https://fiveoceans.tistory.com/68</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;우리가 브라우저 주소창에 naver.com이나 google.com을 입력하면 어떻게 단 몇 초 만에 해당 사이트로 연결되는 걸까요? 컴퓨터는 사실 문자로 된 이름을 이해하지 못합니다. 오직 숫자로 된 IP 주소만 알 수 있죠. 이 사이에서 &lt;b data-index-in-node=&quot;134&quot; data-path-to-node=&quot;3&quot;&gt;문자 이름을 숫자 주소로 번역해 주는 시스템&lt;/b&gt;이 바로 DNS(Domain Name System)입니다. 오늘은 인터넷의 내비게이션이자 전화번호부인 DNS의 정체를 파헤쳐 보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. DNS란 무엇인가?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;DNS는 &lt;b data-index-in-node=&quot;5&quot; data-path-to-node=&quot;5&quot;&gt;도메인 이름을 IP 주소로 변환&lt;/b&gt;하거나 그 반대의 역할을 수행하는 분산 데이터베이스 시스템입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;비유:&lt;/b&gt; 우리가 친구에게 전화를 걸 때 이름을 검색하면 휴대폰이 저장된 번호로 연결해 주는 것과 같습니다. '홍길동'이라는 이름이 &lt;b data-index-in-node=&quot;72&quot; data-path-to-node=&quot;6,0,0&quot;&gt;도메인&lt;/b&gt;이라면, '010-1234-5678'이라는 번호는 &lt;b data-index-in-node=&quot;103&quot; data-path-to-node=&quot;6,0,0&quot;&gt;IP 주소&lt;/b&gt;이고, 이를 관리하는 '연락처 앱'이 바로 &lt;b data-index-in-node=&quot;132&quot; data-path-to-node=&quot;6,0,0&quot;&gt;DNS 서버&lt;/b&gt;입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. DNS의 계층 구조&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;DNS는 전 세계의 모든 정보를 한 곳에 모아두지 않습니다. 대신 거대한 나무뿌리처럼 계층화되어 정보를 나누어 관리합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;Root DNS 서버:&lt;/b&gt; 모든 DNS의 시작점입니다. 최상위 도메인(TLD) 정보를 가진 서버의 위치를 알려줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;TLD(Top Level Domain) 서버:&lt;/b&gt; .com, .net, .kr 등 도메인의 확장자를 관리합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;Authoritative(권한 있는) DNS 서버:&lt;/b&gt; 실제 도메인의 IP 주소가 기록되어 있는 최종 목적지입니다. 가비아, 후이즈 같은 도메인 등록 업체나 클라우드 업체가 운영합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. 웹사이트 접속 시 DNS 동작 과정 (Step-by-Step)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;사용자가 www.example.com을 입력했을 때 내부에서 일어나는 일은 다음과 같습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;Local Cache 확인:&lt;/b&gt; 먼저 내 컴퓨터나 브라우저가 과거에 방문했던 기록(캐시)이 있는지 확인합니다. 있으면 바로 접속합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;Recursive DNS(통신사 DNS) 요청:&lt;/b&gt; 캐시가 없다면 SK, KT 같은 통신사 DNS 서버에 &quot;이 주소 뭐야?&quot;라고 물어봅니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0&quot;&gt;Root 서버 탐색:&lt;/b&gt; 통신사 DNS도 모른다면 Root 서버에 물어봅니다. Root는 &quot;.com 서버로 가봐&quot;라고 답합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,3,0&quot;&gt;TLD 서버 탐색:&lt;/b&gt; .com 서버는 다시 &quot;example.com을 관리하는 서버로 가봐&quot;라고 알려줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,4,0&quot;&gt;IP 획득:&lt;/b&gt; 최종적으로 권한 있는 서버에서 실제 IP 주소(93.184.216.34)를 받아옵니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,5,0&quot;&gt;접속 완료:&lt;/b&gt; 이제 내 컴퓨터는 이 숫자를 가지고 실제 서버를 찾아가 화면을 띄웁니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. 왜 내 사이트 주소가 바로 안 바뀔까? (TTL과 전파 시간)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;도메인 설정을 변경했는데 &quot;전파되는 데 최대 24~48시간이 걸립니다&quot;라는 문구를 본 적이 있으실 겁니다. 그 이유는 &lt;b data-index-in-node=&quot;66&quot; data-path-to-node=&quot;14&quot;&gt;TTL(Time To Live)&lt;/b&gt; 때문입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;TTL이란?:&lt;/b&gt; DNS 정보를 얼마나 오랫동안 캐시에 저장해둘 것인지를 정한 시간입니다.&lt;/li&gt;
&lt;li&gt;전 세계의 수많은 DNS 서버들이 각자 가지고 있는 이전 기록(캐시)이 만료되어야만 새로운 주소로 업데이트되기 때문에 시간이 걸리는 것입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size26&quot;&gt;5. 서버 관리자가 알아야 할 주요 DNS 레코드&lt;/h2&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;서버를 운영하다 보면 마주치게 되는 용어들입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;A 레코드:&lt;/b&gt; 도메인을 &lt;b data-index-in-node=&quot;12&quot; data-path-to-node=&quot;18,0,0&quot;&gt;IPv4 주소&lt;/b&gt;와 직접 연결합니다. (예: example.com -&amp;gt; 1.2.3.4)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;CNAME 레코드:&lt;/b&gt; 도메인을 &lt;b data-index-in-node=&quot;16&quot; data-path-to-node=&quot;18,1,0&quot;&gt;다른 도메인&lt;/b&gt; 이름과 연결합니다. (별칭 지정)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,2,0&quot;&gt;MX 레코드:&lt;/b&gt; 해당 도메인으로 오는 &lt;b data-index-in-node=&quot;20&quot; data-path-to-node=&quot;18,2,0&quot;&gt;이메일&lt;/b&gt;을 처리할 서버를 지정합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,3,0&quot;&gt;TXT 레코드:&lt;/b&gt; 도메인 소유권 인증 등 텍스트 정보를 기록할 때 씁니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;19&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;결론: 보이지 않는 곳에서 인터넷을 연결하는 힘&lt;/h3&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;DNS는 우리가 인터넷 주소를 하나하나 외우지 않아도 전 세계를 자유롭게 서핑할 수 있게 해주는 고마운 기술입니다. 서버를 구축하거나 도메인을 연결할 때 이 원리를 이해하고 있다면, 접속 장애가 발생했을 때 어디를 먼저 점검해야 할지 명확하게 파악할 수 있습니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/68</guid>
      <comments>https://fiveoceans.tistory.com/68#entry68comment</comments>
      <pubDate>Wed, 29 Apr 2026 16:14:02 +0900</pubDate>
    </item>
    <item>
      <title>서버 과부하 원인과 CPU 사용률 낮추는 팁</title>
      <link>https://fiveoceans.tistory.com/67</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;평소 잘 돌아가던 서버가 갑자기 느려지거나 접속이 끊긴다면 가장 먼저 의심해야 할 것이 바로 '서버 과부하'입니다. 특히 CPU 사용률이 100%에 근접하면 서버는 모든 요청을 처리하지 못하고 비명을 지르게 되죠. 오늘은 서버가 왜 지치는지 그 원인을 파악하고, 시스템을 다시 쾌적하게 만드는 실전 최적화 팁을 정리해 드립니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 서버 과부하의 주요 원인 3가지&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;서버가 느려지는 이유는 다양하지만, 크게 다음 세 가지 범주로 나뉩니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;갑작스러운 트래픽 증가:&lt;/b&gt; 이벤트나 뉴스 보도로 인해 평소보다 수십 배 많은 사용자가 동시에 접속할 때 발생합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;비효율적인 코드 및 쿼리:&lt;/b&gt; 프로그램이 루프(Loop)에 빠지거나, 데이터베이스에서 수만 개의 데이터를 한꺼번에 불러오는 '나쁜 쿼리'가 CPU를 점유하는 경우입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;백그라운드 프로세스와 좀비 프로세스:&lt;/b&gt; 정기적인 업데이트, 백업 작업, 혹은 종료되지 않고 남아 자원을 갉아먹는 유령 프로세스들이 원인이 될 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;[Image showing a high CPU usage graph in a monitoring dashboard with red warning signs]&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size26&quot;&gt;2. 실시간 CPU 사용량 확인하기 (Linux 기준)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;문제를 해결하려면 먼저 어디서 자원을 쓰는지 알아야 합니다. 터미널에서 다음 명령어를 입력해 보세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;top 명령:&lt;/b&gt; 리눅스 기본 도구로 현재 CPU를 가장 많이 쓰는 프로세스 순위를 보여줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;htop 명령:&lt;/b&gt; top보다 훨씬 보기 편한 UI를 제공합니다. 각 CPU 코어별 점유율을 직관적으로 확인할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;uptime 명령:&lt;/b&gt; 최근 1분, 5분, 15분간의 평균 부하(Load Average)를 확인하여 서버가 지속적으로 과부하 상태인지 판단합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. CPU 사용률을 낮추는 실전 최적화 팁&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;① 웹 서버 캐싱(Caching) 활용&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;모든 요청을 매번 새로 계산하는 대신, 자주 쓰는 데이터를 메모리에 미리 담아두는 방식입니다. &lt;b data-index-in-node=&quot;53&quot; data-path-to-node=&quot;13&quot;&gt;Redis&lt;/b&gt;나 &lt;b data-index-in-node=&quot;60&quot; data-path-to-node=&quot;13&quot;&gt;Memcached&lt;/b&gt;를 도입하거나, 웹 서버(Nginx)의 캐시 설정을 활성화하는 것만으로도 CPU 부하를 획기적으로 줄일 수 있습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size23&quot;&gt;② 데이터베이스 인덱스(Index) 최적화&lt;/h3&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;많은 서버 과부하가 사실은 '느린 DB 쿼리'에서 시작됩니다. 인덱스가 설정되지 않은 테이블을 전체 스캔(Full Scan)하면 CPU는 엄청난 연산을 수행해야 합니다. 자주 검색되는 컬럼에 인덱스를 추가하고, 불필요한 JOIN 연산을 줄이세요.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size23&quot;&gt;③ 이미지 및 정적 파일 압축&lt;/h3&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;서버가 직접 이미지를 리사이징하거나 너무 큰 파일을 전송하는 것도 부담이 됩니다. CDN(Content Delivery Network)을 사용하여 서버의 짐을 덜어주거나, 파일 크기를 미리 최적화해 두는 것이 좋습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size23&quot;&gt;④ 좀비 프로세스 정리 및 좀비 킬(Kill)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;종료되었어야 할 프로세스가 죽지 않고 남아 있다면 kill -9 [PID] 명령어로 강제 종료해야 합니다. 또한 정기적인 리부팅 스케줄을 통해 자원을 초기화하는 것도 하나의 방법입니다.&lt;/p&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwjd4K7wkZCUAxUAAAAAHQAAAAAQ3gM&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;gherkin&quot;&gt;&lt;code&gt;# CPU 점유율이 높은 프로세스 찾아서 확인 후 종료하기
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size26&quot;&gt;4. 하드웨어 업그레이드 vs 스케일 아웃&lt;/h2&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;소프트웨어 최적화로 해결이 안 된다면 인프라 구조를 고민해야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;스케일 업(Scale-up):&lt;/b&gt; 기존 서버의 CPU나 RAM 사양을 더 높은 것으로 교체합니다. 설정 변경이 적어 간편하지만 비용 상승 폭이 큽니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;스케일 아웃(Scale-out):&lt;/b&gt; 저렴한 서버를 여러 대 이어 붙여 부하를 나누는 방식입니다(로드 밸런싱). 한 대가 고장 나도 서비스가 유지되는 장점이 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size26&quot;&gt;5. 결론: 예방이 최선의 치료입니다&lt;/h2&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;서버 과부하는 발생한 뒤에 대처하면 이미 서비스 중단이라는 손실을 입은 뒤입니다. 평소 모니터링 도구(Grafana, Netdata 등)를 설치하여 임계치에 도달했을 때 알림을 받도록 설정하는 것이 중요합니다. 건강한 서버 관리는 꾸준한 관찰과 작은 최적화 습관에서 시작됩니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/67</guid>
      <comments>https://fiveoceans.tistory.com/67#entry67comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:59:28 +0900</pubDate>
    </item>
    <item>
      <title>웹호스팅과 서버 임대의 차이 쉽게 설명</title>
      <link>https://fiveoceans.tistory.com/66</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;웹사이트를 하나 만들려고 알아보면 &quot;웹호스팅을 써라&quot;, &quot;서버를 임대해라&quot; 같은 말들을 듣게 됩니다. 둘 다 내 사이트를 인터넷에 띄워준다는 점은 같지만, 실제 운영 방식은 '고시원'과 '단독 주택'만큼이나 큰 차이가 있습니다. 오늘은 초보자도 한 번에 이해할 수 있도록 두 서비스의 개념과 장단점을 비교해 보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 웹호스팅 (Web Hosting): 가성비 좋은 '고시원'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;웹호스팅은 커다란 서버 한 대를 아주 많은 사람이 조금씩 나누어 쓰는 방식입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;개념:&lt;/b&gt; 업체가 미리 다 세팅해 놓은 서버 공간의 일부를 빌리는 것입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;비유:&lt;/b&gt; 모든 가구와 옵션이 갖춰진 '풀옵션 고시원'에 몸만 들어가는 것과 같습니다. 주방(CPU, 메모리)은 공용으로 쓰며, 정해진 방 크기(저장공간)만큼만 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;장점:&lt;/b&gt; 가격이 매우 저렴합니다. 서버 관리(보안, 업데이트)를 업체가 대신 해주므로 전문 지식이 없어도 웹사이트 운영이 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,0&quot;&gt;단점:&lt;/b&gt; 내 마음대로 서버 설정을 바꿀 수 없습니다. 같은 서버를 쓰는 다른 사이트에 트래픽이 몰리면 내 사이트까지 느려질 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 서버 임대 (Dedicated / VPS): 자유로운 '단독 주택'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;서버 임대는 컴퓨터 한 대를 통째로 빌리거나(단독 서버), 가상으로 완벽히 분리된 독립 공간을 빌리는(VPS) 방식입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;개념:&lt;/b&gt; 컴퓨터의 운영체제(OS)부터 모든 설정을 내가 직접 관리하는 방식입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;비유:&lt;/b&gt; 내가 원하는 대로 인테리어를 하고 구조를 바꿀 수 있는 '단독 주택'을 빌리는 것과 같습니다. 집 마당(자원)을 나 혼자 다 쓰기 때문에 옆집 눈치를 볼 필요가 없습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;장점:&lt;/b&gt; 성능이 강력하고 자유도가 매우 높습니다. 특수한 프로그램이나 대규모 데이터베이스를 내 마음대로 설치할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,3,0&quot;&gt;단점:&lt;/b&gt; 비쌉니다. 보안 설정부터 백업, 장애 대응까지 &lt;b data-index-in-node=&quot;30&quot; data-path-to-node=&quot;9,3,0&quot;&gt;모두 본인이 직접&lt;/b&gt; 해야 하므로 서버 관리 지식이 필수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;[Image showing a shared apartment building (Web Hosting) versus a separate private house (Server Rental)]&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. 웹호스팅 vs 서버 임대, 핵심 비교표&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;비교 항목&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;웹호스팅 (Shared)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;서버 임대 (VPS / Dedicated)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0,0&quot;&gt;관리 주체&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,1,0&quot;&gt;서비스 업체 (전담 관리)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,2,0&quot;&gt;사용자 본인 (직접 관리)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0,0&quot;&gt;자유도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,1,0&quot;&gt;낮음 (정해진 기능만 사용)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,2,0&quot;&gt;매우 높음 (OS 설치부터 자유)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,3,0,0&quot;&gt;비용&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,3,1,0&quot;&gt;매우 저렴 (월 커피 한 잔 값)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,3,2,0&quot;&gt;보통~높음 (사양에 따라 다름)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,4,0,0&quot;&gt;추천 대상&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,4,1,0&quot;&gt;개인 블로그, 소형 쇼핑몰&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,4,2,0&quot;&gt;대규모 커뮤니티, 전문 개발 환경&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,5,0,0&quot;&gt;난이도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,5,1,0&quot;&gt;쉬움 (클릭 위주)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,5,2,0&quot;&gt;어려움 (명령어 위주)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. 나에게 맞는 서비스 고르는 팁&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;어떤 것을 선택할지 결정하기 어렵다면 아래의 기준을 따라가 보세요.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;이런 분은 '웹호스팅'을 추천합니다!&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;워드프레스나 그누보드 같은 툴로 가벼운 홈페이지를 만들고 싶다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;서버 명령어(Linux 등)는 배우기 싫고, 오직 콘텐츠 제작에만 집중하고 싶다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;방문자가 많지 않아 월 1,000원~5,000원 정도의 소액만 투자하고 싶다.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;이런 분은 '서버 임대'를 추천합니다!&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;나만의 특수한 기능이 들어간 웹 애플리케이션을 개발하고 싶다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;서버 관리 기술을 익혀서 IT 전문가로 성장하고 싶다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;방문자가 급증해도 견딜 수 있는 안정적이고 빠른 퍼포먼스가 필요하다.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;5. 결론: 시작은 작게, 성장은 크게!&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;처음부터 비싼 서버 임대를 고집할 필요는 없습니다. 대부분의 유명 업체(카페24, 가비아, AWS 등)는 서비스 간 이전 기능을 제공합니다. 처음엔 &lt;b data-index-in-node=&quot;83&quot; data-path-to-node=&quot;20&quot;&gt;웹호스팅&lt;/b&gt;으로 작게 시작했다가, 사이트가 커지고 관리가 더 필요해질 때 &lt;b data-index-in-node=&quot;122&quot; data-path-to-node=&quot;20&quot;&gt;서버 임대&lt;/b&gt;로 이사하는 것이 가장 현명하고 경제적인 전략입니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/66</guid>
      <comments>https://fiveoceans.tistory.com/66#entry66comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:58:58 +0900</pubDate>
    </item>
    <item>
      <title>포트포워딩이란? 원리부터 설정법까지</title>
      <link>https://fiveoceans.tistory.com/65</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;집에서 공들여 만든 로컬 서버나 게임 서버를 친구에게 보여주려고 할 때, 가장 먼저 마주치는 난관이 바로 포트포워딩(Port Forwarding)입니다. 주소를 제대로 알려준 것 같은데 외부에서는 접속이 안 된다고 하죠. 오늘은 네트워크의 '문'을 열어주는 핵심 기술, 포트포워딩의 개념과 설정 방법을 아주 쉽게 풀어보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 포트포워딩이 왜 필요한가? (공유기의 역할)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;우리가 집에서 사용하는 인터넷은 보통 하나의 공인 IP(외부 주소)를 가집니다. 하지만 집 안에는 스마트폰, 노트북, TV 등 여러 기기가 있죠. 공유기는 이 기기들에게 사설 IP(내부 주소)를 할당해 '나눠 쓰기'를 시킵니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;문제는 외부에서 우리 집 주소로 접속을 시도할 때 발생합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;외부 사용자:&lt;/b&gt; &quot;너네 집(1.2.3.4)으로 들어갈게!&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;공유기:&lt;/b&gt; &quot;우리 집에 기기가 5대나 있는데, 누구한테 가라는 거야? 난 몰라!&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;이때 공유기에게 &quot;80번 포트로 들어오는 신호는 내 노트북(192.168.0.10)으로 보내줘!&quot;라고 길을 정해주는 것이 바로 포트포워딩입니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size26&quot;&gt;2. 포트포워딩의 작동 원리: '아파트 동호수' 비유&lt;/h2&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;이해를 돕기 위해 아파트 택배 시스템에 비유해 보겠습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;공인 IP:&lt;/b&gt; 아파트의 '전체 지번 주소' (예: 서울시 OO구 OO아파트)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0&quot;&gt;포트(Port):&lt;/b&gt; 아파트 현관문에 적힌 '호수' (예: 101호, 202호)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,2,0&quot;&gt;포트포워딩:&lt;/b&gt; 경비실(공유기)에 &quot;택배 상자에 '80번'이라고 적혀 있으면 101호로 전달해 주세요&quot;라고 미리 약속해 두는 것과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 약속이 되어 있으면, 외부 사람은 아파트 주소와 호수(IP:Port)만 알면 정확히 내 방까지 찾아올 수 있게 됩니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;3. 포트포워딩 설정 방법 (일반적인 순서)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;제조사(아이피타임, ASUS, TP-Link 등)마다 메뉴 이름은 조금씩 다르지만 기본적인 흐름은 같습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;서버 PC의 내부 IP 확인:&lt;/b&gt; 윈도우 실행창(Win+R)에 cmd를 입력하고 ipconfig를 쳐서 'IPv4 주소'를 메모합니다. (예: 192.168.0.15)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;공유기 관리 페이지 접속:&lt;/b&gt; 브라우저 주소창에 보통 192.168.0.1을 입력하여 접속합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,2,0&quot;&gt;포트포워딩 메뉴 찾기:&lt;/b&gt; 보통 [고객 설정] -&amp;gt; [고급 설정] -&amp;gt; [NAT/라우터 관리] 메뉴에 위치합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,3,0&quot;&gt;규칙 추가:&lt;/b&gt; 아래 정보를 입력합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15,3,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,3,1,0,0&quot;&gt;규칙 이름:&lt;/b&gt; 자유롭게 (예: MyWebServer)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,3,1,1,0&quot;&gt;내부 IP 주소:&lt;/b&gt; 아까 메모한 내 PC 주소 (192.168.0.15)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,3,1,2,0&quot;&gt;프로토콜:&lt;/b&gt; TCP (웹 서버인 경우)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,3,1,3,0&quot;&gt;외부 포트:&lt;/b&gt; 외부에서 접속할 포트 (예: 8080)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,3,1,4,0&quot;&gt;내부 포트:&lt;/b&gt; 내 PC에서 돌아가는 서버 포트 (예: 80)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size26&quot;&gt;4. 설정 시 주의사항 및 꿀팁&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;고정 IP 설정 필수:&lt;/b&gt; 공유기는 기기를 껐다 켤 때 내부 IP를 바꿀 수 있습니다. 포트포워딩을 걸어둔 PC는 반드시 공유기 설정에서 '수동 IP 할당'을 해두어야 규칙이 깨지지 않습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;보안 주의:&lt;/b&gt; 포트를 연다는 것은 대문을 열어두는 것과 같습니다. 꼭 필요한 서비스(웹, 게임 등) 포트만 열고, 사용하지 않을 때는 규칙을 꺼두는 것이 안전합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,2,0&quot;&gt;이중 공유기 문제:&lt;/b&gt; 통신사 모뎀 뒤에 또 다른 공유기를 연결해 쓰는 경우, 양쪽 기기 모두 포트포워딩을 해주거나 모뎀을 브릿지 모드로 변경해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size26&quot;&gt;5. 확인 방법&lt;/h2&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;설정을 마쳤다면, 내 PC가 아닌 외부망(스마트폰 LTE 등)에서 내공인IP:외부포트를 입력해 접속이 되는지 확인해 보세요. (네이버에서 '내 IP'를 검색하면 공인 IP를 쉽게 알 수 있습니다.)&lt;/p&gt;
&lt;hr data-path-to-node=&quot;20&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size23&quot;&gt;결론: 서버를 세상 밖으로 내보내는 첫걸음&lt;/h3&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;포트포워딩은 내 방 안의 작은 실험실을 전 세계와 연결해 주는 통로입니다. 처음에는 '게이트웨이', '프로토콜' 같은 단어가 낯설겠지만, 원리만 이해하면 어떤 공유기를 만나도 당당하게 설정할 수 있습니다. 이제 여러분의 멋진 서비스를 외부 친구들에게 자랑해 보세요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/65</guid>
      <comments>https://fiveoceans.tistory.com/65#entry65comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:58:10 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 서버 기본 명령어 10가지 정리 (입문자 필수)</title>
      <link>https://fiveoceans.tistory.com/64</link>
      <description>&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;폴더 사이를 이동할 때 사용합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;사용법:&lt;/b&gt; cd /var/log (특정 경로로 이동), cd .. (상위 폴더로 이동)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;팁:&lt;/b&gt; cd ~를 입력하면 언제든 사용자의 홈 디렉토리로 바로 돌아옵니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. pwd (Print working directory) - 현재 위치 확인&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;서버 작업을 하다 보면 내가 지금 어느 깊이의 폴더에 있는지 헷갈릴 때가 많습니다. 이때 현재 경로를 전체 주소로 출력해 줍니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;사용법:&lt;/b&gt; pwd&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. mkdir (Make directory) - 새 폴더 생성&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;새로운 디렉토리(폴더)를 만들 때 사용합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;사용법:&lt;/b&gt; mkdir my_project&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;팁:&lt;/b&gt; -p 옵션을 쓰면 하위 폴더까지 한 번에 만들 수 있습니다. (예: mkdir -p a/b/c)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size26&quot;&gt;5. cp (Copy) - 파일 및 디렉토리 복사&lt;/h2&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;파일을 복사합니다. 설정 파일을 수정하기 전 백업본을 만들 때 매우 자주 쓰입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;사용법:&lt;/b&gt; cp origin.txt backup.txt&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;팁:&lt;/b&gt; 폴더 전체를 복사할 때는 -r 옵션을 붙여야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;6. mv (Move) - 파일 이동 및 이름 변경&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;파일을 다른 곳으로 옮기거나 이름을 바꿀 때 사용합니다. 리눅스에서는 '이동'과 '이름 변경'이 같은 원리로 작동합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;21&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0,0&quot;&gt;사용법:&lt;/b&gt; mv old_name.txt new_name.txt (이름 변경), mv file.txt /home/user/ (이동)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size26&quot;&gt;7. rm (Remove) - 파일 및 디렉토리 삭제&lt;/h2&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;파일을 삭제합니다. 리눅스에는 '휴지통'이 없으므로 신중하게 사용해야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;24&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24,0,0&quot;&gt;사용법:&lt;/b&gt; rm file.txt&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24,1,0&quot;&gt;팁:&lt;/b&gt; 폴더를 강제로 삭제할 때는 rm -rf [폴더명]을 쓰지만, 실수로 중요한 시스템 파일을 지울 수 있으니 주의가 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;25&quot; data-ke-size=&quot;size26&quot;&gt;8. cat / tail / head - 파일 내용 확인&lt;/h2&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;파일의 내용을 화면에 출력합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;27&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,0,0&quot;&gt;cat:&lt;/b&gt; 파일 전체 내용을 보여줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,1,0&quot;&gt;tail:&lt;/b&gt; 파일의 마지막 부분만 보여줍니다. 로그 파일을 실시간으로 확인할 때 tail -f [파일명] 형태로 자주 쓰입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,2,0&quot;&gt;head:&lt;/b&gt; 파일의 앞부분만 보여줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;28&quot; data-ke-size=&quot;size26&quot;&gt;9. sudo (Substitute user do) - 관리자 권한으로 실행&lt;/h2&gt;
&lt;p data-path-to-node=&quot;29&quot; data-ke-size=&quot;size16&quot;&gt;일반 사용자가 시스템 설정 변경 등 관리자 권한이 필요한 명령을 수행할 때 명령어 앞에 붙입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;30&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;30,0,0&quot;&gt;사용법:&lt;/b&gt; sudo apt update&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;30,1,0&quot;&gt;팁:&lt;/b&gt; 'SuperUser Do'의 약자로 이해하면 기억하기 쉽습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;31&quot; data-ke-size=&quot;size26&quot;&gt;10. top / htop - 시스템 리소스 모니터링&lt;/h2&gt;
&lt;p data-path-to-node=&quot;32&quot; data-ke-size=&quot;size16&quot;&gt;현재 서버의 CPU, 메모리 사용량과 어떤 프로세스가 돌아가고 있는지 실시간으로 확인합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;33&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;33,0,0&quot;&gt;사용법:&lt;/b&gt; top (기본 설치), htop (더 가시성이 좋으며 별도 설치 필요)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;34&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;35&quot; data-ke-size=&quot;size23&quot;&gt;결론: 명령어가 익숙해지면 서버가 보입니다&lt;/h3&gt;
&lt;p data-path-to-node=&quot;36&quot; data-ke-size=&quot;size16&quot;&gt;처음에는 명령어를 일일이 치는 것이 번거롭게 느껴질 수 있지만, 익숙해지면 마우스보다 훨씬 빠르고 강력한 제어가 가능해집니다. 오늘 배운 10가지만 자유자재로 사용할 수 있어도 서버 관리의 기초는 마스터한 셈입니다. 터미널을 열고 직접 파일을 만들고 옮기며 연습해 보세요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/64</guid>
      <comments>https://fiveoceans.tistory.com/64#entry64comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:57:35 +0900</pubDate>
    </item>
    <item>
      <title>클라우드 서버(VPS)와 물리 서버의 장단점 비교</title>
      <link>https://fiveoceans.tistory.com/63</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;나만의 서버를 운영하기로 마음먹었다면 가장 먼저 부딪히는 벽이 있습니다. 바로 &quot;내 방에 진짜 컴퓨터(물리 서버)를 놓을 것인가, 아니면 빌려 쓰는 클라우드(VPS)를 이용할 것인가?&quot;입니다. 과거에는 서버를 직접 사는 것이 당연했지만, 지금은 선택지가 다양해졌습니다. 오늘은 이 두 방식의 차이점을 분석하여 여러분의 상황에 맞는 최적의 선택을 도와드리겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 물리 서버 (On-Premise / Home Server)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;물리 서버란 실제 하드웨어를 구매하여 내 집이나 사무실에 두고 운영하는 방식을 말합니다. 남는 PC를 재활용하거나 전용 서버 장비를 구매하는 경우가 이에 해당합니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;  장점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;완전한 소유권:&lt;/b&gt; 하드웨어부터 소프트웨어까지 내 마음대로 구성할 수 있습니다. 한 번 구매하면 추가적인 월 이용료가 거의 들지 않습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;압도적 가성비:&lt;/b&gt; 중고 워크스테이션이나 PC를 개조하면, 같은 사양의 클라우드 서버 대비 수십 배 저렴하게 고성능 환경을 구축할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,0&quot;&gt;학습 효과:&lt;/b&gt; 하드웨어 조립부터 네트워크 배선, OS 설치까지 서버의 모든 것을 직접 경험하며 배울 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;  단점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;소음과 열기:&lt;/b&gt; 서버는 24시간 돌아가야 하므로 팬 소음과 열기가 발생합니다. 여름철에는 냉방비(전기세) 부담이 커질 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;초기 비용:&lt;/b&gt; 고사양 서버를 구축하려면 초기 부품 구매 비용이 크게 발생합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;관리의 어려움:&lt;/b&gt; 하드웨어가 고장 나면 직접 부품을 사서 수리해야 하며, 정전 시 대처가 어렵습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;2. 클라우드 서버 (VPS: Virtual Private Server)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;클라우드 서버는 대형 데이터 센터에 있는 고성능 서버의 자원을 가상화 기술로 쪼개서 사용자에게 빌려주는 방식입니다. 대표적으로 AWS(Lighsail), Google Cloud, 카페24 등이 있습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;  장점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;즉각적인 시작:&lt;/b&gt; 클릭 몇 번이면 수 분 내로 서버 생성이 완료됩니다. 하드웨어를 기다릴 필요가 없습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;안정적인 인프라:&lt;/b&gt; 24시간 365일 전력이 보장되고, 초고속 전용 회선을 사용하므로 네트워크가 매우 안정적입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;유연한 확장:&lt;/b&gt; 트래픽이 늘어나면 사양을 바로 높일 수 있고, 필요 없으면 즉시 삭제하여 비용을 절감할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size23&quot;&gt;  단점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;지속적인 월 비용:&lt;/b&gt; 사용량이나 사양에 따라 매달 고정 지출이 발생합니다. 사양을 높일수록 비용 부담이 기하급수적으로 늘어납니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;하드웨어 제어 불가:&lt;/b&gt; 실제 기계를 만질 수 없으므로 하드웨어 수준의 튜닝이나 특수 장치 연결이 불가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size26&quot;&gt;3. 한눈에 비교하는 체크리스트&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;17&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;비교 항목&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;물리 서버 (Home Server)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;클라우드 서버 (VPS)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0,0&quot;&gt;초기 비용&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,1,1,0&quot;&gt;높음 (장비 구매비)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,1,2,0&quot;&gt;낮음 (가입 즉시 이용)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,2,0,0&quot;&gt;유지 비용&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,2,1,0&quot;&gt;낮음 (전기세 정도)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,2,2,0&quot;&gt;보통~높음 (매월 구독료)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,3,0,0&quot;&gt;안정성&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,3,1,0&quot;&gt;낮음 (정전, 회선 장애 위험)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,3,2,0&quot;&gt;매우 높음 (전문 데이터 센터)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,4,0,0&quot;&gt;관리 난이도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,4,1,0&quot;&gt;높음 (하드웨어 관리 포함)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,4,2,0&quot;&gt;낮음 (소프트웨어 관리 집중)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,5,0,0&quot;&gt;확장성&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,5,1,0&quot;&gt;보통 (부품 추가 필요)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;17,5,2,0&quot;&gt;매우 높음 (클릭 한 번으로 업그레이드)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size26&quot;&gt;4. 나에게 맞는 선택은?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;아직 결정이 어렵다면 다음 가이드라인을 참고해 보세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;20&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,0,0&quot;&gt;이런 분은 '클라우드(VPS)'를 선택하세요:&lt;/b&gt; * &quot;내 블로그나 홈페이지를 전 세계에 안정적으로 서비스하고 싶다.&quot;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;20,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;하드웨어 관리보다는 서비스 개발과 코딩에 집중하고 싶다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;커피 한 잔 값으로 가볍게 서버 공부를 시작하고 싶다.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,1,0&quot;&gt;이런 분은 '물리 서버'를 선택하세요:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;20,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;고사양 리소스를 펑펑 쓰며 대용량 데이터를 처리하고 싶다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;서버 하드웨어 그 자체를 만지고 배우는 것이 즐겁다.&quot;&lt;/li&gt;
&lt;li&gt;&quot;집에서 영화 저장소(NAS) 겸용으로 쓰며 온 가족이 함께 쓰고 싶다.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;21&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;결론: 목적에 따른 영리한 선택이 필요합니다&lt;/h3&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;최근에는 &lt;b data-index-in-node=&quot;5&quot; data-path-to-node=&quot;23&quot;&gt;'로컬(물리)에서 개발하고, 서비스는 클라우드에서'&lt;/b&gt; 하는 하이브리드 방식이 대세입니다. 처음 시작하신다면 가벼운 VPS(월 5천 원 내외)로 감을 익힌 뒤, 필요에 따라 집에 남는 PC로 물리 서버를 구축해 보시는 것을 추천드립니다. 서버는 도구일 뿐, 중요한 것은 그 위에서 여러분이 만들어낼 가치니까요!&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/63</guid>
      <comments>https://fiveoceans.tistory.com/63#entry63comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:55:45 +0900</pubDate>
    </item>
    <item>
      <title>NAS와 서버의 차이</title>
      <link>https://fiveoceans.tistory.com/62</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;데이터가 자산인 시대, 개인이나 기업 모두 소중한 자료를 안전하게 보관하고 어디서든 접속하고 싶어 합니다. 이때 가장 먼저 고민하게 되는 두 가지 선택지가 바로 NAS(Network Attached Storage)와 범용 서버(General Purpose Server)입니다. 겉보기에는 둘 다 네트워크에 연결되어 데이터를 주고받는 장비지만, 용도와 성격은 확연히 다릅니다. 오늘 그 차이점을 완벽하게 비교해 드리겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. NAS(Network Attached Storage)란?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;NAS는 이름 그대로 '네트워크에 연결된 저장소'입니다. 쉽게 말해 우리 집이나 사무실 공유기에 꽂아 쓰는 '똑똑한 외장 하드'라고 생각하면 쉽습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;특징:&lt;/b&gt; 파일 공유와 백업에 최적화되어 있습니다. 시놀로지(Synology)나 아이피타임(ipTIME) 같은 제조사에서 하드웨어와 운영체제(OS)를 패키지로 제공합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;장점:&lt;/b&gt; 설정이 매우 간편합니다. 스마트폰 앱이나 웹 브라우저를 통해 마치 윈도우 창을 쓰듯 직관적으로 관리할 수 있습니다. 전력 소모가 적고 소음이 적어 가정용으로 적합합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;단점:&lt;/b&gt; 정해진 기능 외에 복잡한 연산이나 전문적인 개발 환경을 구축하기에는 성능적 한계가 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 서버(Server)란?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;여기서 말하는 서버는 흔히 말하는 &lt;b data-index-in-node=&quot;19&quot; data-path-to-node=&quot;8&quot;&gt;범용 컴퓨터 서버&lt;/b&gt;를 의미합니다. 우리가 쓰는 PC와 비슷하지만, 24시간 가동과 고성능 처리를 목적으로 만들어진 장비입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;특징:&lt;/b&gt; 특정 용도가 정해져 있지 않습니다. 윈도우 서버나 리눅스(Linux) 같은 운영체제를 직접 설치하여 웹 서버, 게임 서버, 데이터베이스 서버 등 원하는 모든 기능을 구현할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;장점:&lt;/b&gt; 자유도가 무한대입니다. 고사양 CPU와 많은 메모리를 장착하여 복잡한 데이터 분석이나 가상화 기술을 돌릴 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;단점:&lt;/b&gt; 설정이 어렵습니다. 검은색 터미널 창에 명령어를 입력하는 능력이 필요하며, NAS에 비해 전기를 많이 먹고 소음이 클 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. NAS vs 서버: 핵심 비교&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;두 장비의 결정적인 차이를 4가지 항목으로 나누어 보았습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;비교 항목&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;NAS (나스)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;범용 서버 (Server)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0,0&quot;&gt;주 목적&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,1,0&quot;&gt;파일 보관, 스트리밍, 백업&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,2,0&quot;&gt;서비스 제공, 개발, 복잡한 연산&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0,0&quot;&gt;난이도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,1,0&quot;&gt;쉬움 (GUI 기반, 클릭 위주)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,2,0&quot;&gt;어려움 (명령어 입력, 직접 설정)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,3,0,0&quot;&gt;확장성&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,3,1,0&quot;&gt;낮음 (제조사 제공 앱 위주)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,3,2,0&quot;&gt;매우 높음 (무한한 소프트웨어 설치)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,4,0,0&quot;&gt;유지 보수&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,4,1,0&quot;&gt;자동 업데이트 및 간편 관리&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,4,2,0&quot;&gt;관리자가 직접 보안 및 패치 관리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;4. 나에게 맞는 선택은 무엇일까?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;아직도 고민 중이시라면 아래 상황 중 본인이 어디에 해당하는지 확인해 보세요.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;이런 분께는 NAS를 추천합니다!&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;가족들과 찍은 사진과 영상을 안전하게 백업하고 싶어요.&quot;&lt;/li&gt;
&lt;li&gt;&quot;넷플릭스처럼 나만의 영화 스트리밍 서버를 만들고 싶어요.&quot;&lt;/li&gt;
&lt;li&gt;&quot;어려운 명령어 공부는 싫고, 스마트폰 앱으로 편하게 관리하고 싶어요.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;이런 분께는 서버를 추천합니다!&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;웹사이트를 직접 만들어서 운영하고 싶어요.&quot;&lt;/li&gt;
&lt;li&gt;&quot;파이썬이나 도커(Docker) 같은 최신 개발 환경을 마음껏 써보고 싶어요.&quot;&lt;/li&gt;
&lt;li&gt;&quot;리눅스를 공부하며 시스템 전문가가 되고 싶어요.&quot;&lt;/li&gt;
&lt;li&gt;&quot;가성비 좋은 중고 PC를 개조해서 저렴하게 고성능 환경을 맞추고 싶어요.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;5. 결론: 하이브리드라는 대안도 있습니다&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;최근에는 NAS의 성능이 좋아져서 NAS 위에서 '도커'를 돌려 서버처럼 쓰는 경우도 많고, 남는 PC에 '헤르메스(HeXOS)' 같은 전용 OS를 깔아 직접 NAS를 만들기도(자작 NAS) 합니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;중요한 것은 &quot;내가 이 장비를 사서 무엇을 할 것인가&quot;입니다. 단순히 자료 저장이 목적이라면 NAS가 답이고, 기술적인 탐구와 서비스 운영이 목적이라면 서버가 정답입니다. 여러분의 목적에 맞는 든든한 데이터 창고를 오늘부터 구축해 보시는 건 어떨까요?&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/62</guid>
      <comments>https://fiveoceans.tistory.com/62#entry62comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:55:26 +0900</pubDate>
    </item>
    <item>
      <title>로컬 서버 구축이란? 개인 서버 실습 입문 가이드</title>
      <link>https://fiveoceans.tistory.com/61</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;서버를 공부하고 싶지만, 클라우드 비용이 걱정되거나 실제 장비를 사기에는 부담스러운 분들이 가장 먼저 시작해야 할 단계가 있습니다. 바로 &lt;b data-index-in-node=&quot;77&quot; data-path-to-node=&quot;3&quot;&gt;'로컬 서버(Local Server)'&lt;/b&gt; 구축입니다. 오늘은 로컬 서버가 정확히 무엇인지, 그리고 어떻게 하면 내 PC를 서버로 변신시켜 실습할 수 있는지 입문 가이드를 정리해 드립니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 로컬 서버(Local Server)란 무엇인가?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;일반적으로 서버라고 하면 저 멀리 데이터 센터에 있는 거대한 컴퓨터를 떠올리지만, 사실 &lt;b data-index-in-node=&quot;49&quot; data-path-to-node=&quot;5&quot;&gt;서버는 기계의 종류가 아니라 '역할'의 이름&lt;/b&gt;입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;로컬 서버:&lt;/b&gt; 내가 지금 사용하고 있는 PC나 노트북에 서버 프로그램을 설치하여, 그 컴퓨터 내부에서만 혹은 같은 와이파이(공유기) 범위 내에서만 접속할 수 있도록 만든 환경을 말합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;로컬호스트(localhost):&lt;/b&gt; 로컬 서버를 지칭하는 대표적인 주소로, 내 컴퓨터 자신을 가리키는 127.0.0.1이라는 IP 주소와 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 왜 로컬 서버로 시작해야 할까? (장점)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;많은 전문가가 초보자에게 로컬 서버 구축을 먼저 권하는 이유는 명확합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;비용 제로(0원):&lt;/b&gt; AWS 같은 클라우드는 설정 실수로 '요금 폭탄'을 맞을 수 있지만, 내 PC를 쓰는 로컬 서버는 전기세 외에 비용이 전혀 들지 않습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;빠른 속도:&lt;/b&gt; 인터넷망을 거치지 않고 내 컴퓨터 안에서 통신하므로 응답 속도가 매우 빠릅니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;안전한 실험실:&lt;/b&gt; 설정이 꼬이거나 보안 문제가 생겨도 내 컴퓨터 안에서만 일어나는 일이므로 외부에 노출될 위험이 적어 마음껏 테스트할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,3,0&quot;&gt;인터넷 불필요:&lt;/b&gt; 오프라인 환경에서도 서버를 켜고 코딩 실습을 할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size26&quot;&gt;3. 로컬 서버 구축 방법 (대표 도구들)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;내 운영체제에 직접 서버 프로그램을 깔 수도 있지만, 최근에는 클릭 몇 번으로 환경을 만들어주는 도구들이 잘 나와 있습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;① 통합 개발 환경 (XAMPP, WAMP, MAMP)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;웹 서비스에 필수적인 &lt;b data-index-in-node=&quot;12&quot; data-path-to-node=&quot;13&quot;&gt;Apache(웹서버), MySQL(DB), PHP&lt;/b&gt;를 한꺼번에 설치해 주는 도구입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;14&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,0,0&quot;&gt;XAMPP:&lt;/b&gt; 윈도우, 리눅스, 맥 모두 지원하는 가장 대중적인 도구입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,1,0&quot;&gt;비전공자 추천:&lt;/b&gt; 복잡한 명령어 입력 없이 버튼 하나로 서버를 켜고 끌 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;② 도커 (Docker)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;최근 현업에서 가장 많이 쓰이는 방식입니다. 내 PC의 원래 환경은 건드리지 않고, 가상의 '컨테이너' 안에 서버를 띄우는 방식입니다. 나중에 로컬에서 만든 설정을 그대로 클라우드 서버로 옮기기 매우 편리합니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;③ 내장 서버 (VS Code, Python)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;가벼운 HTML/CSS 실습만 원한다면 비주얼 스튜디오 코드(VS Code)의 &lt;b data-index-in-node=&quot;44&quot; data-path-to-node=&quot;18&quot;&gt;'Live Server'&lt;/b&gt; 확장 프로그램을 쓰거나, 터미널에 python -m http.server를 입력하는 것만으로도 훌륭한 로컬 서버가 가동됩니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;4. 로컬 서버 구축 후 다음 단계: &quot;나만 보는 서버?&quot;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;로컬 서버를 구축하고 브라우저에 http://localhost를 입력했을 때 환영 페이지가 뜬다면 성공입니다! 하지만 로컬 서버는 기본적으로 &lt;b data-index-in-node=&quot;79&quot; data-path-to-node=&quot;20&quot;&gt;'나'&lt;/b&gt; 혹은 '우리 집 와이파이 사용자'만 접속할 수 있습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;만약 내가 만든 로컬 서버를 친구에게 보여주고 싶다면 다음과 같은 추가 작업이 필요합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,0,0&quot;&gt;포트 포워딩(Port Forwarding):&lt;/b&gt; 외부에서 우리 집 공유기로 들어오는 신호를 내 컴퓨터로 연결해 주는 작업입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,1,0&quot;&gt;ngrok 활용:&lt;/b&gt; 복잡한 설정 없이 내 로컬 서버를 임시로 외부 인터넷에 노출해 주는 유용한 도구입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;23&quot; data-ke-size=&quot;size26&quot;&gt;5. 입문자를 위한 실습 팁&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;24&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24,0,0&quot;&gt;가장 쉬운 것부터:&lt;/b&gt; 처음엔 &lt;b data-index-in-node=&quot;15&quot; data-path-to-node=&quot;24,0,0&quot;&gt;XAMPP&lt;/b&gt;를 설치해서 index.html 파일을 띄워보는 것부터 시작하세요.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24,1,0&quot;&gt;포트 충돌 주의:&lt;/b&gt; 가끔 스카이프나 다른 프로그램이 80번 포트를 쓰고 있으면 서버가 안 켜질 수 있습니다. 이럴 땐 포트 번호를 8080 등으로 바꿔보는 연습도 좋은 공부가 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;25&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;26&quot; data-ke-size=&quot;size23&quot;&gt;결론: 당신의 컴퓨터는 이미 서버가 될 준비가 되었습니다&lt;/h3&gt;
&lt;p data-path-to-node=&quot;27&quot; data-ke-size=&quot;size16&quot;&gt;서버 구축은 거창한 장비에서 시작되는 것이 아닙니다. 오늘 당장 여러분의 PC에 로컬 서버 환경을 만들어보세요. 내 브라우저에 내가 만든 페이지가 뜨는 순간, 여러분은 단순한 웹 사용자가 아닌 '서비스 제공자(Server)'로서의 첫걸음을 떼게 되는 것입니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/61</guid>
      <comments>https://fiveoceans.tistory.com/61#entry61comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:54:33 +0900</pubDate>
    </item>
    <item>
      <title>IP, 포트, 도메인 관계</title>
      <link>https://fiveoceans.tistory.com/60</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;인터넷 세상에서 특정 서버에 접속하기 위해서는 반드시 세 가지 개념을 거쳐야 합니다. 바로 IP 주소, 포트(Port), 그리고 도메인(Domain)입니다. 네트워크를 공부할 때 가장 먼저 마주치지만, 서로 어떤 관계인지 헷갈리기 쉽죠. 오늘은 이 세 가지를 실생활의 '집 주소'와 '상점'에 비유하여 완벽하게 정리해 보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. IP 주소: 인터넷 세상의 '집 주소'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5&quot;&gt;IP(Internet Protocol) 주소&lt;/b&gt;는 인터넷에 연결된 모든 기기(컴퓨터, 스마트폰, 서버 등)가 가지는 고유한 식별 번호입니다. 마치 우리가 편지를 보낼 때 필요한 '서울시 OO구 OO동 123-4번지' 같은 실제 주소와 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;IPv4:&lt;/b&gt; 192.168.0.1 처럼 4개의 숫자로 이루어진 형태 (가장 흔히 쓰임)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;IPv6:&lt;/b&gt; 주소 고갈 문제를 해결하기 위해 만든 더 긴 형태의 주소&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;서버를 운영한다는 것은 인터넷상에 이 'IP 주소'를 가진 컴퓨터 한 대를 24시간 켜두는 것을 의미합니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size26&quot;&gt;2. 포트(Port): 건물에 들어가는 '상점 번호' 또는 '방 번호'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;IP 주소가 건물의 위치를 알려준다면, 포트(Port)는 그 건물 안에서 어떤 서비스를 이용할지 결정하는 '방 번호'나 '상점의 호수'입니다. 하나의 서버(IP) 안에서는 여러 가지 서비스가 동시에 돌아갈 수 있기 때문입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;웹 서비스 (HTTP):&lt;/b&gt; 주로 80번 포트를 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;보안 웹 서비스 (HTTPS):&lt;/b&gt; 주로 443번 포트를 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;원격 접속 (SSH):&lt;/b&gt; 주로 22번 포트를 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,0&quot;&gt;데이터베이스 (MySQL):&lt;/b&gt; 주로 3306번 포트를 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어, 1.2.3.4:80이라고 입력하면 &quot;1.2.3.4라는 주소의 건물에 가서 80번 방(웹 서비스)으로 들어갈게!&quot;라는 뜻이 됩니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size26&quot;&gt;3. 도메인(Domain): 외우기 힘든 주소 대신 쓰는 '상호명'&lt;/h2&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;IP 주소는 숫자로 되어 있어 사람이 외우기 매우 어렵습니다. 우리가 친구를 만날 때 &quot;위도 37.5, 경도 127.0에서 만나자&quot;라고 하지 않고 &quot;스타벅스 강남점에서 만나자&quot;라고 하는 것과 같습니다. &lt;b data-index-in-node=&quot;113&quot; data-path-to-node=&quot;13&quot;&gt;도메인&lt;/b&gt;은 숫자로 된 IP 주소에 이름을 붙인 것입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;14&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,0,0&quot;&gt;예시:&lt;/b&gt; naver.com, google.com&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,1,0&quot;&gt;DNS(Domain Name System):&lt;/b&gt; 우리가 브라우저에 도메인을 입력하면, 이를 실제 IP 주소로 변환해 주는 전화번호부 역할을 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;4. IP, 포트, 도메인의 유기적인 관계 (요약)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;이 세 가지가 합쳐져서 우리가 웹사이트에 접속하는 과정은 다음과 같습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;도메인 입력:&lt;/b&gt; 사용자가 브라우저에 www.example.com을 입력합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;IP 변환 (DNS):&lt;/b&gt; 컴퓨터는 DNS 서버에 물어봅니다. &quot;example.com의 주소(IP)가 뭐야?&quot; -&amp;gt; &quot;그건 93.184.216.34야.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,2,0&quot;&gt;포트 연결:&lt;/b&gt; 브라우저는 기본적으로 웹 포트인 80 또는 443을 생략하고 호출합니다. 즉, 실제로는 93.184.216.34:443으로 접속을 시도하는 것입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,3,0&quot;&gt;서비스 제공:&lt;/b&gt; 해당 서버의 443번 포트에서 대기하던 웹 서버 프로그램이 요청을 받아 화면을 보여줍니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;18&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;비유&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;역할&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0,0&quot;&gt;IP 주소&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,1,1,0&quot;&gt;건물의 지번 주소&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,1,2,0&quot;&gt;인터넷상 기기의 실제 위치 식별&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,2,0,0&quot;&gt;포트(Port)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,2,1,0&quot;&gt;건물 내 호수(방 번호)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,2,2,0&quot;&gt;해당 기기 내 특정 서비스(프로그램) 식별&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,3,0,0&quot;&gt;도메인&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,3,1,0&quot;&gt;건물의 이름(상호명)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,3,2,0&quot;&gt;숫자를 대신하여 사람이 기억하기 쉽게 만듦&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;5. 서버 관리자가 알아야 할 팁&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;서버를 운영하다 보면 이 관계를 설정하는 일이 잦습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;21&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0,0&quot;&gt;포트 포워딩:&lt;/b&gt; 공유기를 사용할 때 외부 주소와 내부 서버 포트를 연결해 주는 작업입니다. (8번 주제에서 자세히 다룰 예정입니다.)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,1,0&quot;&gt;도메인 연결 (A 레코드):&lt;/b&gt; 구매한 도메인에 내 서버의 IP 주소를 등록하는 과정입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,2,0&quot;&gt;보안:&lt;/b&gt; 사용하지 않는 포트는 방화벽으로 닫아두어야 해킹 위험을 줄일 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;22&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;23&quot; data-ke-size=&quot;size23&quot;&gt;결론: 인터넷 항해의 내비게이션&lt;/h3&gt;
&lt;p data-path-to-node=&quot;24&quot; data-ke-size=&quot;size16&quot;&gt;IP, 포트, 도메인은 우리가 인터넷이라는 넓은 바다에서 길을 잃지 않게 해주는 내비게이션 시스템과 같습니다. 이 세 가지의 관계만 명확히 이해해도 서버 설정의 절반은 이해한 것이나 다름없습니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/60</guid>
      <comments>https://fiveoceans.tistory.com/60#entry60comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:46:33 +0900</pubDate>
    </item>
    <item>
      <title>웹서버와 데이터베이스</title>
      <link>https://fiveoceans.tistory.com/59</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;서버의 세계에 막 입문하신 분들이 가장 많이 헷갈려 하는 것 중 하나가 바로 웹서버(Web Server)와 데이터베이스 서버(Database Server)의 차이입니다. &quot;둘 다 서버인데 왜 나누어서 부를까?&quot; 혹은 &quot;하나의 서버에서 다 하면 안 될까?&quot;라는 의문이 생길 수 있죠. 오늘은 이 두 서버의 결정적인 차이점을 아주 쉽게 정리해 보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;1. 식당에 비유하면 이해가 빠릅니다&lt;/h2&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;이해를 돕기 위해 서버의 구조를 식당에 비유해 보겠습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;웹서버(Web Server) = 홀의 '종업원(Server)':&lt;/b&gt; 손님(클라이언트)을 맞이하고, 메뉴판(웹페이지)을 보여주며, 주문을 받아 주방에 전달합니다. 완성된 요리를 손님에게 서빙하는 역할도 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;데이터베이스 서버(DB Server) = '식재료 창고':&lt;/b&gt; 요리에 필요한 모든 재료(데이터)가 보관되어 있는 곳입니다. 종업원이 직접 들어가는 대신, 주방장(WAS 등)의 요청에 따라 필요한 재료를 꺼내줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 웹서버(Web Server)의 역할과 특징&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;웹서버는 사용자와 가장 가까운 곳에서 소통하는 서버입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;주요 임무:&lt;/b&gt; 사용자가 브라우저를 통해 요청(HTTP)을 보내면, 미리 준비된 &lt;b data-index-in-node=&quot;43&quot; data-path-to-node=&quot;9,0,0&quot;&gt;정적인 콘텐츠&lt;/b&gt;를 응답합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;정적인 콘텐츠란?:&lt;/b&gt; 누가 접속해도 똑같이 보이는 파일들을 말합니다. HTML 문서, CSS 스타일시트, 이미지 파일(JPG, PNG), 자바스크립트 파일 등이 해당합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;대표적인 소프트웨어:&lt;/b&gt; Nginx(엔진엑스), Apache(아파치), Microsoft IIS 등이 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;웹서버는 복잡한 계산을 하기보다는, 요청받은 파일을 빠르게 찾아 던져주는 &lt;b data-index-in-node=&quot;41&quot; data-path-to-node=&quot;10&quot;&gt;'배달원'&lt;/b&gt; 역할에 집중합니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. 데이터베이스 서버(DB Server)의 역할과 특징&lt;/h2&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;데이터베이스 서버는 정보를 체계적으로 저장하고 검색하는 데 특화된 서버입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;주요 임무:&lt;/b&gt; 수많은 데이터를 표(Table) 형태로 저장하고, 필요할 때마다 특정 데이터를 추출, 수정, 삭제(CRUD)합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;데이터의 예시:&lt;/b&gt; 사용자의 아이디와 비밀번호, 게시판의 글 내용, 상품의 가격과 재고량 등 &lt;b data-index-in-node=&quot;50&quot; data-path-to-node=&quot;13,1,0&quot;&gt;동적인 데이터&lt;/b&gt;들이 보관됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;대표적인 소프트웨어:&lt;/b&gt; MySQL, MariaDB, Oracle, PostgreSQL, MS-SQL 등이 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;DB 서버는 보안이 매우 중요하기 때문에 외부 인터넷과 직접 연결하지 않고, 웹서버나 애플리케이션 서버를 통해서만 접근할 수 있도록 설계하는 것이 일반적입니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;4. 웹서버와 DB 서버, 왜 나누어서 운영할까?&lt;/h2&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;소규모 프로젝트에서는 하나의 컴퓨터에 웹서버와 DB를 모두 설치하기도 합니다. 하지만 서비스가 커질수록 이 둘을 분리해야 하는 결정적인 이유가 있습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;부하 분산 (Performance):&lt;/b&gt; 웹서버는 많은 연결을 처리하느라 CPU를 많이 쓰고, DB 서버는 데이터를 읽고 쓰느라 디스크 I/O와 메모리를 많이 씁니다. 서버를 나누면 각자의 자원을 효율적으로 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;보안 강화 (Security):&lt;/b&gt; 웹서버가 해킹당하더라도 물리적으로 분리된 DB 서버는 안전하게 보호할 수 있는 방어선을 구축할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,2,0&quot;&gt;장애 대응 (Scalability):&lt;/b&gt; 웹 접속자가 갑자기 늘어나면 웹서버만 여러 대로 늘려 대응할 수 있고, 데이터가 많아지면 DB 서버의 사양만 높이면 됩니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size26&quot;&gt;5. 핵심 차이점 한눈에 보기 (요약 표)&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;19&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;웹서버 (Web Server)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;데이터베이스 서버 (DB Server)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,1,0,0&quot;&gt;주요 역할&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,1,1,0&quot;&gt;사용자의 요청 접수 및 화면 전달&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,1,2,0&quot;&gt;데이터 저장, 검색 및 관리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,2,0,0&quot;&gt;처리 데이터&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,2,1,0&quot;&gt;정적 콘텐츠 (HTML, 이미지 등)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,2,2,0&quot;&gt;동적 데이터 (사용자 정보, 글 등)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,3,0,0&quot;&gt;직접 접속&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,3,1,0&quot;&gt;사용자(브라우저)가 직접 접속함&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,3,2,0&quot;&gt;웹서버나 어플리케이션을 통해서만 접속&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,4,0,0&quot;&gt;대표 도구&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,4,1,0&quot;&gt;Nginx, Apache&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;19,4,2,0&quot;&gt;MySQL, Oracle, MariaDB&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-path-to-node=&quot;20&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size23&quot;&gt;결론: 협력이 만들어내는 웹사이트&lt;/h3&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;우리가 보는 예쁜 웹사이트는 웹서버가 그려주는 '틀' 위에 데이터베이스 서버가 꺼내준 '내용물'이 합쳐진 결과물입니다. 어느 한쪽만 있어서는 제대로 된 서비스를 제공할 수 없죠. 두 서버의 차이를 이해하는 것은 서버 인프라 구축의 가장 중요한 기초 공사와 같습니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/59</guid>
      <comments>https://fiveoceans.tistory.com/59#entry59comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:45:30 +0900</pubDate>
    </item>
    <item>
      <title>서버란 무엇인가?</title>
      <link>https://fiveoceans.tistory.com/58</link>
      <description>&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;우리가 매일 사용하는 카카오톡, 유튜브, 네이버 뒤에는 항상 '서버(Server)'라는 존재가 있습니다. IT 분야에 입문하거나 블로그를 운영하려 할 때 가장 먼저 마주치는 단어지만, 막상 설명하려면 막막한 경우가 많죠. 오늘은 서버의 아주 기초적인 개념부터 우리 일상에서 어떻게 작동하는지 초보자의 눈높이에서 쉽게 정리해 보겠습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size26&quot;&gt;1. 서버의 어원과 기본 정의&lt;/h2&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;서버(Server)의 어원은 '제공하다', '봉사하다'라는 뜻을 가진 영어 단어 &lt;b data-index-in-node=&quot;45&quot; data-path-to-node=&quot;6&quot;&gt;Serve&lt;/b&gt;에서 왔습니다. 식당에서 음식을 제공하는 사람을 '서버'라고 부르는 것과 일맥상통합니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;IT 세상에서의 서버는 '데이터나 서비스를 요청하는 컴퓨터에게 결과물을 제공하는 컴퓨터'를 말합니다. 반대로 서비스를 요청하는 컴퓨터는 '클라이언트(Client)'라고 부릅니다. 즉, 서버는 정보를 주는 쪽, 클라이언트는 정보를 받는 쪽이라고 이해하면 가장 쉽습니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size26&quot;&gt;2. 서버와 일반 PC의 차이점&lt;/h2&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;&quot;내 노트북도 정보를 줄 수 있는데, 그럼 서버인가요?&quot;라는 의문이 생길 수 있습니다. 이론적으로는 가능하지만, 실제 서버는 일반 PC와 몇 가지 결정적인 차이점이 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;365일 24시간 가동:&lt;/b&gt; 서버는 언제 어디서 올지 모르는 요청에 응답해야 합니다. 따라서 1년 내내 꺼지지 않고 돌아가야 하며, 이를 견딜 수 있는 내구성이 필수입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;안정성과 신뢰성:&lt;/b&gt; 수천 명의 사람이 동시에 접속해도 서버가 멈추면 안 됩니다. 그래서 부품의 신뢰도가 높고, 전원이 꺼지지 않도록 이중화 장치가 되어 있는 경우가 많습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;고성능 사양:&lt;/b&gt; 수많은 요청을 동시에 처리해야 하므로 고성능의 CPU와 대용량의 메모리(RAM)를 장착합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. 우리 일상 속의 서버 작동 원리&lt;/h2&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;우리가 웹사이트에 접속하는 과정을 서버와 클라이언트 모델로 살펴보겠습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;요청 (Request):&lt;/b&gt; 여러분이 브라우저 주소창에 www.naver.com을 입력하고 엔터를 누릅니다. 이것은 네이버 서버에 &quot;메인 화면 페이지를 보여줘!&quot;라고 &lt;b data-index-in-node=&quot;91&quot; data-path-to-node=&quot;13,0,0&quot;&gt;요청&lt;/b&gt;을 보낸 것입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;처리 (Process):&lt;/b&gt; 네이버 서버는 여러분의 요청을 받고, 저장된 데이터 중에서 메인 화면 구성 요소(이미지, 글자 등)를 찾습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;응답 (Response):&lt;/b&gt; 서버가 찾은 데이터를 여러분의 브라우저로 다시 &lt;b data-index-in-node=&quot;41&quot; data-path-to-node=&quot;13,2,0&quot;&gt;보내줍니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,0&quot;&gt;완료:&lt;/b&gt; 브라우저가 받은 데이터를 화면에 예쁘게 그려주면, 우리는 네이버 메인 화면을 보게 됩니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;이 모든 과정은 1초도 안 되는 짧은 시간 안에 전 세계 수만 대의 서버에서 동시에 일어납니다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;4. 서버의 종류 (역할에 따른 분류)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;서버는 어떤 서비스를 제공하느냐에 따라 이름이 달라집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;웹 서버 (Web Server):&lt;/b&gt; 웹사이트의 화면(HTML, CSS)을 제공하는 서버입니다. (예: Nginx, Apache)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;데이터베이스 서버 (DB Server):&lt;/b&gt; 사용자 정보나 게시글 내용 등 데이터를 저장하고 관리하는 서버입니다. (예: MySQL, Oracle)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,2,0&quot;&gt;파일 서버 (File Server):&lt;/b&gt; 대용량 파일을 업로드하거나 다운로드할 수 있게 해주는 서버입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,3,0&quot;&gt;메일 서버 (Mail Server):&lt;/b&gt; 이메일을 주고받을 수 있게 처리해 주는 서버입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size26&quot;&gt;5. 나만의 서버를 갖는다는 것의 의미&lt;/h2&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;예전에는 서버를 운영하려면 수백만 원짜리 장비를 직접 사서 집에 둬야 했지만, 지금은 &lt;b data-index-in-node=&quot;48&quot; data-path-to-node=&quot;19&quot;&gt;클라우드(Cloud)&lt;/b&gt; 기술 덕분에 커피 한 잔 값으로 나만의 서버를 빌릴 수 있습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;블로그를 직접 구축하거나, 나만의 클라우드 저장소를 만들거나, 혹은 코딩한 프로그램을 전 세계 사람들이 사용하게 하고 싶다면 서버에 대한 이해는 필수입니다. 서버를 공부하는 것은 단순히 기계를 공부하는 것이 아니라, &lt;b data-index-in-node=&quot;121&quot; data-path-to-node=&quot;20&quot;&gt;인터넷이라는 거대한 세상의 규칙&lt;/b&gt;을 배우는 것과 같습니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;21&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;  결론 및 요약&lt;/h3&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;서버는 어렵게 생각할 필요 없이 '인터넷 세상의 서비스 제공자'입니다. 여러분이 지금 이 글을 읽고 있는 것도 제 글이 담긴 서버가 여러분의 기기에 데이터를 보내주었기 때문입니다. 앞으로 이어질 포스팅에서는 이 서버를 어떻게 구축하고, 어떻게 관리하는지 하나씩 알아가 보겠습니다.&lt;/p&gt;</description>
      <category>기타</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/58</guid>
      <comments>https://fiveoceans.tistory.com/58#entry58comment</comments>
      <pubDate>Tue, 28 Apr 2026 17:44:32 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 7탄: 나만의 기능 구현, 툴바 버튼 추가 및 이벤트 핸들링</title>
      <link>https://fiveoceans.tistory.com/56</link>
      <description>&lt;div&gt;SAP ABAP SALV 시리즈 7탄. 표준 툴바를 넘어 사용자 정의 버튼을 추가하고, 이를 클릭했을 때 작동하는 전용 로직을 구현하는 방법을 상세히 다룹니다.&lt;/div&gt;
&lt;div class=&quot;alive-toc&quot; style=&quot;position: relative; background-color: #ffffff; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 30px; text-align: left;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -5px; right: 25px; width: 35px; height: 55px; background-color: #52cfb9; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 85%, 0 100%); z-index: 10;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #f1f5f9; font-weight: bold; padding-bottom: 10px; margin-bottom: 15px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1e293b; font-size: 1.2em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SALV 7탄 - 툴바 버튼 추가 및 기능 구현&lt;/span&gt;&lt;/p&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-left: 0;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Custom Toolbar Button)&lt;/h2&gt;
&lt;pre id=&quot;code_77102&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; 1. 아이콘 상수를 사용하기 위한 선언
TYPE-POOLS: icon.

&quot; 2. 데이터 선언 (전역 변수)
DATA: gt_flight TYPE TABLE OF sflight.
DATA: go_alv    TYPE REF TO cl_salv_table.

&quot; -----------------------------------------------------------------------
&quot; 3. 이벤트 핸들러 클래스 정의 (Definition)
&quot; -----------------------------------------------------------------------
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    METHODS:
      on_user_command FOR EVENT added_function OF cl_salv_events_table
        IMPORTING e_salv_function.
ENDCLASS.
&quot; -----------------------------------------------------------------------
&quot; 4. 메인 실행 로직 (START-OF-SELECTION)
&quot; -----------------------------------------------------------------------
START-OF-SELECTION.

  &quot; 1. BACK 버튼 버그 방지용 더미 화면 생성 (매우 중요!)
  WRITE: space.

  &quot; 데이터 준비
  SELECT * FROM sflight INTO TABLE @gt_flight UP TO 50 ROWS.

  TRY.
      &quot; 2. 다시 컨테이너를 지정하여 Grid View 모드로 생성 (그래야 버튼 추가 오류가 안 납니다)
      cl_salv_table=&amp;gt;factory(
        EXPORTING
          r_container    = cl_gui_container=&amp;gt;default_screen
        IMPORTING
          r_salv_table   = go_alv
        CHANGING
          t_table        = gt_flight
      ).

      &quot; 툴바 기능 활성화
      DATA(lo_functions) = go_alv-&amp;gt;get_functions( ).
      lo_functions-&amp;gt;set_all( abap_true ).

      &quot; 사용자 정의 버튼 추가 (이제 오류 없이 정상 작동합니다)
      TRY.
          lo_functions-&amp;gt;add_function(
            name     = 'MY_FUNC'
            icon     = '@15@'
            text     = '실행버튼'
            tooltip  = '커스텀 로직 실행'
            position = if_salv_c_function_position=&amp;gt;right_of_salv_functions
          ).
        CATCH cx_salv_existing cx_salv_wrong_call.
      ENDTRY.

      &quot; 이벤트 핸들러 등록 및 출력
      DATA(lo_handler) = NEW lcl_event_handler( ).
      DATA(lo_events)  = go_alv-&amp;gt;get_event( ).
      SET HANDLER lo_handler-&amp;gt;on_user_command FOR lo_events.

      go_alv-&amp;gt;display( ).

    CATCH cx_root INTO DATA(lx_root).
      MESSAGE lx_root-&amp;gt;get_text( ) TYPE 'E'.
  ENDTRY.

&quot; -----------------------------------------------------------------------
&quot; 5. 클래스 구현부 (Implementation) - 반드시 최하단!
&quot; -----------------------------------------------------------------------
CLASS lcl_event_handler IMPLEMENTATION.
  METHOD on_user_command.
    CASE e_salv_function.
      WHEN 'MY_FUNC'.
        MESSAGE '사용자 정의 버튼 클릭 성공!' TYPE 'I'.
    ENDCASE.
  ENDMETHOD.
ENDCLASS.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;2. 기술 상세 설명: SALV 툴바 제어의 메커니즘&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 Function 기반 ALV(REUSE_ALV_GRID_DISPLAY)에서는 툴바를 수정하기 위해 &lt;b&gt;SE41(GUI Status)&lt;/b&gt;을 직접 복사하고 관리해야 하는 번거로움이 있었습니다. 하지만 SALV는 객체 지향 메서드인 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;add_function&lt;/span&gt;을 통해 프로그램 내부에서 동적으로 버튼을 생성하고 제어합니다.&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;CL_SALV_FUNCTIONS_LIST 클래스의 역할&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 클래스는 SALV 툴바의 모든 버튼과 기능을 관리하는 컨트롤 타워입니다. &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;get_functions( )&lt;/span&gt; 메서드를 통해 인스턴스를 가져오며, 주요 기능은 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;set_all( ):&lt;/b&gt; 정렬, 필터, 합계 등 모든 표준 기능을 한 번에 활성화/비활성화합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;add_function( ):&lt;/b&gt; 개발자가 원하는 ID와 아이콘을 가진 버튼을 툴바에 추가합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;remove_function( ):&lt;/b&gt; 특정 표준 기능이나 커스텀 기능을 툴바에서 제거합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;3. 비즈니스 시나리오: 버튼 하나로 업무 자동화&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서 커스텀 버튼은 단순한 클릭 이상의 가치를 지닙니다. 데이터 조회 후 후속 프로세스를 연결하는 &lt;b&gt;'워크플로우의 허브'&lt;/b&gt; 역할을 하기 때문입니다.&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;시나리오 A: 대량 전표 생성 및 BDC 처리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영업 사원이 당일 판매 내역을 ALV로 조회한 후, 이상이 없는 내역을 다중 선택(Multiple Selection)합니다. 이후 툴바의 '전표 생성' 버튼을 누르면 내부적으로 BDC나 BAPI가 호출되어 수백 건의 회계 전표가 자동으로 생성되는 시나리오입니다. 이때 5탄에서 배운 &lt;b&gt;이벤트 핸들링&lt;/b&gt;과 결합하여 강력한 시너지를 냅니다.&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;시나리오 B: 외부 시스템으로 데이터 전송&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 리스트에 표시된 정보를 인터페이스 테이블로 전송하거나, 특정 API를 호출하여 타 시스템(Legacy)에 정보를 동기화하는 버튼을 구현할 수 있습니다. 사용자는 별도의 티코드(T-Code)를 실행할 필요 없이 ALV 화면 내에서 모든 작업을 끝낼 수 있습니다.&lt;/p&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;4. 주의사항 및 트러블슈팅 (Q&amp;amp;A)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;툴바 구현 시 초보 개발자들이 가장 많이 겪는 오류와 해결 방안입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;버튼이 보이지 않아요:&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;add_function&lt;/span&gt; 호출 후 반드시 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;lo_alv-&amp;gt;display( )&lt;/span&gt;가 호출되는지 확인하세요. 또한, 컨테이너 타입(Popup 등)에 따라 툴바가 제한적으로 표시될 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;아이콘 이름 찾기:&lt;/b&gt; SAP 표준 아이콘의 이름과 코드는 티코드 &lt;b&gt;'ICON'&lt;/b&gt;에서 확인할 수 있습니다. 텍스트 대신 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;@15@&lt;/span&gt;와 같은 시스템 코드를 사용하면 더 직관적인 툴바를 만들 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Duplicate ID 에러:&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;name&lt;/span&gt; 파라미터에 전달하는 버튼 ID는 프로그램 내에서 유일해야 합니다. 반복문 내에서 버튼을 추가하거나 재호출되는 로직이 있다면 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;TRY-CATCH&lt;/span&gt;로 예외 처리를 반드시 해주어야 합니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ABAP/SALV</category>
      <category>SAP #ABAP #SALV #Toolbar #CustomButton #AddedFunction #EventHandling #ABAP_Series #NewSyntax</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/56</guid>
      <comments>https://fiveoceans.tistory.com/56#entry56comment</comments>
      <pubDate>Thu, 9 Apr 2026 12:00:52 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 6탄: 데이터 시각화의 정점, 컬럼 및 행 색상 변경 (Color)</title>
      <link>https://fiveoceans.tistory.com/55</link>
      <description>&lt;div&gt;SAP ABAP SALV 시리즈 6탄. 특정 조건에 따라 행(Row)이나 셀(Cell)의 색상을 변경하여 가독성을 극대화하는 시각화 전략을 다룹니다. LVC_T_SCOL 구조를 활용한 동적 색상 제어 기법 정리했습니다.&lt;/div&gt;
&lt;div class=&quot;alive-toc&quot; style=&quot;position: relative; background-color: #ffffff; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 30px; text-align: left;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -5px; right: 25px; width: 35px; height: 55px; background-color: #52cfb9; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 85%, 0 100%); z-index: 10;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #f1f5f9; font-weight: bold; padding-bottom: 10px; margin-bottom: 15px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1e293b; font-size: 1.2em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SALV 6탄 - 컬럼 및 행 색상 제어&lt;/span&gt;&lt;/p&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-left: 0;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Dynamic Color Handling)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 조건(예: 잔여 좌석 부족)에 따라 행 전체 또는 특정 셀에 색상을 입히는 실무형 로직입니다. 데이터 구조에 색상 정보 테이블을 포함하는 것이 핵심입니다.&lt;/p&gt;
&lt;pre id=&quot;code_66281&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; --- 1. 색상 정보를 포함할 데이터 구조 정의 ---
TYPES: BEGIN OF ty_flight.
         INCLUDE TYPE sflight.
TYPES:   t_color TYPE lvc_t_scol, &quot; 셀/행 색상을 제어할 딥 구조체 추가
       END OF ty_flight.

DATA: lt_display TYPE TABLE OF ty_flight.

&quot; --- 2. 데이터 조회 및 동적 색상 로직 적용 ---
SELECT * FROM sflight INTO TABLE @DATA(lt_flight) UP TO 50 ROWS.

lt_display = CORRESPONDING #( lt_flight ).

LOOP AT lt_display ASSIGNING FIELD-SYMBOL(&amp;lt;ls_flight&amp;gt;).
  &quot; 시나리오: 좌석 점유율이 95% 이상인 경우 해당 행을 '빨간색'으로 강조
  IF &amp;lt;ls_flight&amp;gt;-seatsocc &amp;gt;= &amp;lt;ls_flight&amp;gt;-seatsmax * '0.95'.
    &quot; 행 전체 색상 지정 (Color: 6-Red, Intensified: 1)
    &amp;lt;ls_flight&amp;gt;-t_color = VALUE #( ( color = VALUE #( col = 6 int = 1 ) ) ).
  
  &quot; 시나리오: 특정 항공사(AA)의 항공편명 셀만 '노란색'으로 강조
  ELSEIF &amp;lt;ls_flight&amp;gt;-carrid = 'AA'.
    &amp;lt;ls_flight&amp;gt;-t_color = VALUE #( ( fname = 'CONNID' color = VALUE #( col = 3 int = 1 ) ) ).
  ENDIF.
ENDLOOP.

TRY.
    &quot; 3. SALV 객체 생성
    cl_salv_table=&amp;gt;factory(
      IMPORTING r_salv_table = DATA(lo_alv)
      CHANGING  t_table      = lt_display
    ).

    &quot; --- [핵심] 4. SALV에 색상 정보 필드 알려주기 ---
    DATA(lo_columns) = lo_alv-&amp;gt;get_columns( ).
    &quot; 데이터 테이블 내의 'T_COLOR' 필드가 색상 컨트롤 필드임을 지정합니다.
    lo_columns-&amp;gt;set_color_column( 'T_COLOR' ).

    &quot; 5. 컬럼 단위 고정 색상 지정 (예: 비행일자 컬럼은 항상 파란색)
    DATA(lo_column) = CAST cl_salv_column_table( lo_columns-&amp;gt;get_column( 'FLDATE' ) ).
    lo_column-&amp;gt;set_color( VALUE #( col = 1 int = 0 ) ).

    &quot; 6. 화면 출력
    lo_alv-&amp;gt;display( ).

  CATCH cx_root INTO DATA(lx_root).
    MESSAGE lx_root-&amp;gt;get_text( ) TYPE 'E'.
ENDTRY.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;2. 기술 상세 설명: SALV 색상 모델의 이해&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SALV에서 색상을 적용하는 방식은 단순히 '무슨 색을 칠해라'는 명령보다 훨씬 정교한 구조를 가집니다. 특히 &lt;b&gt;LVC_T_SCOL&lt;/b&gt; 구조를 이해하는 것이 동적 ALV 개발의 시작입니다.&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;색상 지정의 3단계 계층 구조&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SALV는 데이터 표시 시 다음의 우선순위에 따라 색상을 결정합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;1단계: Cell Color (최우선):&lt;/b&gt; 특정 셀에 지정된 색상입니다. 행 색상보다 우선합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2단계: Row Color:&lt;/b&gt; 행 전체에 적용된 색상입니다. 특정 조건에 맞는 데이터 라인을 강조할 때 씁니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;3단계: Column Color:&lt;/b&gt; 특정 컬럼 전체에 고정으로 적용되는 색상입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;SAP 표준 컬러 코드 (Color Code)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP 색상 시스템은 4자리 숫자(Cxyz)의 조합으로 이해할 수 있지만, ABAP 구문에서는 보통 구조체 필드로 제어합니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border: 1px solid #e2e8f0; margin: 15px 0;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;background-color: #f8fafc;&quot;&gt;
&lt;th style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;코드(COL)&lt;/th&gt;
&lt;th style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;색상 의미&lt;/th&gt;
&lt;th style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;실무적 활용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td&gt;Blue (Gray blue)&lt;/td&gt;
&lt;td&gt;일반 텍스트, 헤더 정보&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;3&lt;/td&gt;
&lt;td&gt;Yellow&lt;/td&gt;
&lt;td&gt;경고, 선택된 항목&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;5&lt;/td&gt;
&lt;td&gt;Green&lt;/td&gt;
&lt;td&gt;정상 처리 완료, 성공&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;6&lt;/td&gt;
&lt;td&gt;Red&lt;/td&gt;
&lt;td&gt;오류 발생, 위험 수치 강조&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;7&lt;/td&gt;
&lt;td&gt;Orange&lt;/td&gt;
&lt;td&gt;특별 관리 대상&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;3. 비즈니스 시나리오 기반 실무 팁&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 프로젝트에서 색상 제어는 단순 미관용이 아닌 &lt;b&gt;'의사결정 지원 도구'&lt;/b&gt;입니다. 현업 사용자는 수천 줄의 데이터를 보며 즉각적으로 판단해야 하기 때문입니다.&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;예외 상황 강조 (Exception Highlighting)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재고 관리 리스트에서 &lt;b&gt;안전 재고 수량보다 현재고가 적은 경우&lt;/b&gt; 해당 행을 빨간색으로 처리하면, 사용자는 필터링 없이도 즉시 발주 대상을 인지할 수 있습니다. 이때 &lt;span style=&quot;font-family: 'D2Coding'; color: #c7254e;&quot;&gt;INT (Intensified)&lt;/span&gt; 값을 1로 주어 진하게 표시하는 것이 효과적입니다.&lt;/p&gt;
&lt;h3 style=&quot;border-left: 5px solid #52cfb9; padding-left: 12px; font-family: 'D2Coding'; color: #334155;&quot; data-ke-size=&quot;size23&quot;&gt;입력 가능 필드 구분&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Edit 모드가 포함된 ALV(주로 Grid 방식이지만 SALV 조회용으로도 씀)에서 특정 컬럼이 계산된 결과값임을 알리기 위해 해당 컬럼에만 연한 파란색(COL=1, INT=0)을 주어 '읽기 전용'임을 시각적으로 암시할 수 있습니다.&lt;/p&gt;
&lt;h2 style=&quot;border-left: 8px solid #52cfb9; padding-left: 15px; font-family: 'D2Coding'; color: #1e293b;&quot; data-ke-size=&quot;size26&quot;&gt;4. 주의사항 및 트러블슈팅 (Q&amp;amp;A)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;색상 처리 로직 구현 중 자주 발생하는 병목 지점과 해결책입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;왜 색상이 안 나오나요?&lt;/b&gt; 가장 흔한 실수는 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_color_column&lt;/span&gt; 메서드에 필드명을 대문자로 전달하지 않았거나, 필드 지정을 아예 누락한 경우입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;성능 문제:&lt;/b&gt; 수만 건의 데이터 루프 내에서 매번 색상 정보(Internal Table)를 추가하는 행위는 성능에 영향을 줄 수 있습니다. 대량 데이터 처리 시에는 꼭 필요한 행에만 조건부로 로직을 수행하도록 최적화해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Zebra 패턴과의 충돌:&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_striped_pattern&lt;/span&gt;을 적용한 상태에서 연한 색상을 쓰면 가독성이 더 떨어질 수 있습니다. 색상 적용 시에는 배경과의 명도 대비를 충분히 고려하세요.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ABAP/SALV</category>
      <category>#SAP #ABAP #SALV #ColorHandling #DataVisualization #LVC_T_SCOL #NewSyntax #ABAP_Series</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/55</guid>
      <comments>https://fiveoceans.tistory.com/55#entry55comment</comments>
      <pubDate>Wed, 8 Apr 2026 12:00:36 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 5탄: 이벤트 핸들링 (Double Click &amp;amp; Hotspot)</title>
      <link>https://fiveoceans.tistory.com/54</link>
      <description>&lt;div&gt;SAP ABAP SALV 시리즈 5탄. 리스트 조회 화면에서 더블 클릭(Double Click)과 핫스팟(Hotspot) 이벤트를 감지하여 특정 로직을 수행하는 이벤트 핸들링 가이드를 공유합니다. 로컬 클래스를 활용한 Observer 패턴 구현법을 정리했습니다..&lt;/div&gt;
&lt;div class=&quot;alive-toc&quot;&gt;&lt;span class=&quot;toc-title&quot;&gt;CONTENTS: SALV 5탄 - 이벤트 핸들링&lt;/span&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Interactive SALV).&lt;/h2&gt;
&lt;pre id=&quot;code_55000&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; 1. 글로벌 데이터 선언 (클래스 내부에서도 참조할 수 있도록 상단에 선언)
DATA: gt_flight TYPE TABLE OF sflight.
&quot; 2. 데이터 준비 (Standard 연습용 SFLIGHT 테이블 활용)
SELECT * FROM sflight INTO TABLE gt_flight UP TO 50 ROWS.

&quot; --- [핵심] 3. 이벤트 수신을 위한 로컬 클래스 정의 ---
&quot; SALV는 이벤트를 처리하기 위해 별도의 핸들러 클래스가 필요합니다.
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    METHODS:
      &quot; 행을 더블 클릭했을 때 발생하는 이벤트
      on_double_click FOR EVENT double_click OF cl_salv_events_table
        IMPORTING row column,
      &quot; 핫스팟(밑줄) 설정된 셀을 클릭했을 때 발생하는 이벤트
      on_link_click   FOR EVENT link_click   OF cl_salv_events_table
        IMPORTING row column.
ENDCLASS.

CLASS lcl_event_handler IMPLEMENTATION.
  METHOD on_double_click.
    &quot; 선택된 행의 데이터를 읽어와서 메시지를 출력합니다.
    READ TABLE gt_flight INTO DATA(ls_row) INDEX row.
    IF sy-subrc = 0.
      MESSAGE |[Double Click] 항공사: { ls_row-carrid }, 항공편: { ls_row-connid }| TYPE 'I'.
    ENDIF.
  ENDMETHOD.

  METHOD on_link_click.
    &quot; 클릭된 컬럼명을 인식하여 분기 처리가 가능합니다.
    MESSAGE |핫스팟 필드 '{ column }'이 클릭되었습니다.| TYPE 'S'.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.

TRY.
    &quot; 3. SALV 객체 생성
    cl_salv_table=&amp;gt;factory(
      IMPORTING r_salv_table = DATA(lo_alv)
      CHANGING  t_table      = gt_flight
    ).

    &quot; 4. 특정 컬럼을 핫스팟(Hotspot) 필드로 지정
    &quot; CARRID 컬럼을 클릭 가능한 링크 형태로 변경합니다.
    DATA(lo_columns) = lo_alv-&amp;gt;get_columns( ).
    TRY.
        DATA(lo_col_carr) = CAST cl_salv_column_table( lo_columns-&amp;gt;get_column( 'CARRID' ) ).
        lo_col_carr-&amp;gt;set_cell_type( if_salv_c_cell_type=&amp;gt;hotspot ).
      CATCH cx_salv_not_found.
    ENDTRY.

    &quot; --- [중요] 5. 이벤트 핸들러 인스턴스 생성 및 연결 ---
    DATA(lo_events)  = lo_alv-&amp;gt;get_event( ).
    DATA(lo_handler) = NEW lcl_event_handler( ).

    SET HANDLER lo_handler-&amp;gt;on_double_click FOR lo_events.
    SET HANDLER lo_handler-&amp;gt;on_link_click   FOR lo_events.

    &quot; 6. 화면 출력
    lo_alv-&amp;gt;display( ).

  CATCH cx_salv_msg INTO DATA(lx_msg).
    MESSAGE lx_msg-&amp;gt;get_text( ) TYPE 'E'.
ENDTRY.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 왜 이벤트 핸들링이 중요한가? (Business Insight)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현업에서 ALV 리스트는 단순한 결과 보고서에 그치지 않습니다. 리스트를 보던 사용자가 특정 주문 번호를 눌렀을 때 해당 주문의 상세 화면으로 이동(Drill-down)하거나, 고객 코드 위를 클릭했을 때 고객 마스터 정보를 팝업으로 띄워주는 기능은 &lt;b&gt;업무 효율성을 결정짓는 핵심 요소&lt;/b&gt;입니다. SALV의 이벤트 핸들링은 이러한 '대화형 인터페이스'를 구축하는 가장 표준적이고 깔끔한 방법입니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 기술 상세 설명: Observer 패턴의 활용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SALV에서 이벤트를 구현하는 방식은 디자인 패턴 중 하나인 &lt;b&gt;옵저버 패턴(Observer Pattern)&lt;/b&gt;을 기반으로 합니다. 이는 객체의 상태 변화가 발생했을 때(사용자가 클릭했을 때), 이를 구독하고 있는 다른 객체에게 알림을 보내 로직을 수행하게 만드는 방식입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;방송국(Subject):&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding'; color: #c7254e;&quot;&gt;CL_SALV_EVENTS_TABLE&lt;/span&gt; 클래스입니다. 사용자의 클릭 이벤트를 방송합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수신기(Observer):&lt;/b&gt; 우리가 작성한 로컬 클래스인 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;lcl_event_handler&lt;/span&gt;입니다. 방송되는 신호를 수신하여 준비된 메서드를 실행합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;연결(Connection):&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;SET HANDLER&lt;/span&gt; 구문이 안테나 역할을 하여 방송국과 수신기를 이어줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 실무 트러블슈팅 및 팁 (Troubleshooting)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발 과정에서 가장 자주 발생하는 실수와 해결 방안을 정리했습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border: 1px solid #e9ecef;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #f8f9fa;&quot;&gt;
&lt;td style=&quot;padding: 10px; font-weight: bold; width: 30%;&quot;&gt;현상&lt;/td&gt;
&lt;td style=&quot;padding: 10px; font-weight: bold; width: 70%;&quot;&gt;해결 방법 및 원인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;클릭해도 아무 반응이 없음&lt;/td&gt;
&lt;td&gt;해당 컬럼에 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_cell_type&lt;/span&gt;이 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;hotspot&lt;/span&gt;으로 설정되었는지 확인하세요. 텍스트에 밑줄이 가야만 이벤트가 발생합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;메서드 실행 시 덤프 발생&lt;/td&gt;
&lt;td&gt;메서드 정의 시 파라미터 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;row&lt;/span&gt;와 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;column&lt;/span&gt;의 이름을 표준 정의와 동일하게 작성했는지 확인하십시오.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 5탄에서는 단순 조회를 넘어 시스템과 사용자가 소통하는 인터랙티브 ALV의 기초를 다졌습니다. 이 개념을 응용하면 &lt;b&gt;트랜잭션 이동, 팝업 메시지 송출, 동적 데이터 변경&lt;/b&gt; 등 무궁무진한 기능을 구현할 수 있습니다. 다음 6탄에서는 리스트에 화려한 색상을 입혀 시각적 직관성을 높이는 &lt;b&gt;'Color 최적화'&lt;/b&gt; 방법을 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ABAP/SALV</category>
      <category>SAP #ABAP #SALV #EventHandler #DoubleClick #Hotspot #ABAP_Series #NewSyntax</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/54</guid>
      <comments>https://fiveoceans.tistory.com/54#entry54comment</comments>
      <pubDate>Tue, 7 Apr 2026 15:28:25 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 4탄: 레이아웃 및 디스플레이 설정 (Variant, Title, Stripe)</title>
      <link>https://fiveoceans.tistory.com/53</link>
      <description>&lt;div&gt;SAP ABAP SALV 시리즈 4탄. 사용자가 직접 컬럼 순서와 필터 조건을 저장할 수 있는 레이아웃(Variant) 기능의 핵심인 CL_SALV_LAYOUT 설정법을 상세히 알아봅니다. 또한 리스트의 시각적 가독성을 높여주는 줄무늬(Stripe) 패턴과 타이틀 설정 등 디스플레이 최적화 전략을 정리합니다.&lt;/div&gt;
&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px; margin-bottom: 10px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SALV 4탄 - 레이아웃 및 디스플레이 심화 가이드&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-bottom: 0px !important; padding-bottom: 0px !important;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Layout &amp;amp; Display Settings)&lt;/h2&gt;
&lt;pre id=&quot;code_40283&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; 1. 데이터 조회 (Inline Declaration 활용)
SELECT * FROM sflight INTO TABLE @DATA(lt_flight) UP TO 100 ROWS.

TRY.
    &quot; 2. SALV 인스턴스 생성
    cl_salv_table=&amp;gt;factory(
      IMPORTING r_salv_table = DATA(lo_alv)
      CHANGING  t_table      = lt_flight
    ).

    &quot; --- [기능 1] 레이아웃(Variant) 관리 설정 ---
    DATA(lo_layout) = lo_alv-&amp;gt;get_layout( ).
    
    &quot; 레이아웃 저장을 위한 고유 키값 설정 (현재 프로그램명 기준)
    &quot; VALUE # 구조체 생성을 통해 코드를 간결하게 유지합니다.
    lo_layout-&amp;gt;set_key( VALUE #( report = sy-repid ) ).
    
    &quot; 레이아웃 저장 제한 해제 (사용자별/공용 저장 모두 허용)
    lo_layout-&amp;gt;set_save_restriction( if_salv_c_layout=&amp;gt;restrict_none ).

    &quot; --- [기능 2] 디스플레이(Style) 설정 ---
    DATA(lo_display) = lo_alv-&amp;gt;get_display_settings( ).
    
    &quot; 가독성을 위한 줄무늬(Striped) 패턴 적용
    lo_display-&amp;gt;set_striped_pattern( abap_true ).
    
    &quot; ALV 상단 타이틀 텍스트 설정
    lo_display-&amp;gt;set_list_header( '항공편 운항 현황 통합 리스트' ).
    
    &quot; 수평/수직 구분선 표시 (선택 사항)
    lo_display-&amp;gt;set_horizontal_lines( abap_true ).
    lo_display-&amp;gt;set_vertical_lines( abap_true ).

    &quot; 3. 화면 출력
    lo_alv-&amp;gt;display( ).

  CATCH cx_salv_msg INTO DATA(lx_msg).
    MESSAGE lx_msg-&amp;gt;get_text( ) TYPE 'E'.
ENDTRY.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 기술 상세 설명 및 실무 시나리오&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;레이아웃(Variant)의 중요성 (Why Variant?)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대규모 ERP 환경에서 하나의 리스트 화면은 수많은 사용자가 공유하게 됩니다. 영업팀 직원은 '날짜'를 앞에 두고 싶어 하고, 물류팀 직원은 '수량'을 먼저 보고 싶어 합니다. 매번 실행할 때마다 컬럼 순서를 바꾸는 것은 엄청난 업무 낭비입니다. &lt;b&gt;레이아웃(Variant)&lt;/b&gt; 기능은 사용자가 설정한 최적의 뷰를 서버에 저장하고 호출함으로써 개인화된 업무 환경을 제공합니다. 이는 사용자 만족도와 직결되는 매우 중요한 기능입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;아키텍처: CL_SALV_LAYOUT 클래스&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SALV에서 레이아웃 관리는 전용 클래스인 &lt;span style=&quot;font-family: 'D2Coding'; color: #c7254e;&quot;&gt;CL_SALV_LAYOUT&lt;/span&gt;이 담당합니다. 기존 Function 기반 ALV에서는 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;IS_VARIANT&lt;/span&gt;와 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;I_SAVE&lt;/span&gt; 파라미터를 수동으로 세팅해야 했으나, SALV는 객체 지향 메서드 호출 방식을 통해 훨씬 직관적으로 제어할 수 있습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 주요 설정 포인트 딥다이브&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 레이아웃 키(Layout Key) 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SALV에서 레이아웃 저장 버튼이 활성화되지 않는 가장 큰 이유는 &lt;span style=&quot;font-family: 'D2Coding'; color: #12b886;&quot;&gt;set_key( )&lt;/span&gt;를 누락했기 때문입니다. 시스템은 이 키값을 통해 &quot;이 레이아웃이 어떤 프로그램 소유인가&quot;를 판단합니다. 보통 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;sy-repid&lt;/span&gt;를 할당하여 현재 실행 중인 프로그램과 매핑시킵니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 저장 제한(Save Restriction) 옵션&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상황에 따라 레이아웃 저장 권한을 제어해야 할 때가 있습니다. &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;if_salv_c_layout&lt;/span&gt; 인터페이스에서 제공하는 상수를 활용합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;RESTRICT_NONE:&lt;/b&gt; 사용자별 저장 및 공용 저장 모두 허용 (가장 일반적)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RESTRICT_USER_DEPENDANT:&lt;/b&gt; 현재 로그인한 사용자 본인만 사용 가능한 레이아웃만 저장 가능&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RESTRICT_NONE_GLOBAL:&lt;/b&gt; 공용 레이아웃 저장만 허용&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3) 시각적 가독성 (Striped Pattern &amp;amp; Header)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 양이 많은 리스트에서는 행 간 구분이 어려워 오독이 발생할 수 있습니다. &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_striped_pattern( abap_true )&lt;/span&gt;를 적용하면 홀수 행과 짝수 행에 미세한 색상 차이를 주어 눈의 피로도를 획기적으로 낮춥니다. 또한 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_list_header&lt;/span&gt;는 리스트의 정체성을 한눈에 보여주는 이정표 역할을 합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 주의사항 및 트러블슈팅 (Q&amp;amp;A)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;왜 저장 버튼이 회색으로 비활성화되어 있나요?&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;lo_layout-&amp;gt;set_key( )&lt;/span&gt;가 호출되었는지 다시 확인하세요. 키 설정 없이는 저장이 불가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기존 레이아웃이 자동으로 불러와지지 않습니다.&lt;/b&gt; 프로그램 시작 시 특정 레이아웃을 로드하려면 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_initial_layout&lt;/span&gt; 메서드를 활용하여 사용자나 관리자가 지정한 기본값을 불러오도록 로직을 추가해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;HANA New Syntax 활용:&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;VALUE #( ... )&lt;/span&gt; 구문을 사용하여 구조체를 즉석에서 생성하면, 불필요한 보조 변수(Helper Variable) 선언을 줄여 메모리 효율과 코드 가독성을 동시에 잡을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레이아웃과 디스플레이 설정은 프로그램의 '기능'을 넘어 '사용성'을 완성하는 단계입니다. 단순히 데이터를 보여주는 것을 넘어 사용자가 데이터를 편하게 다룰 수 있도록 배려하는 것이 전문 ABAP 개발자의 자질입니다. 다음 5탄에서는 이 화면에 생동감을 불어넣는 &lt;b&gt;이벤트 핸들링(Event Handling)&lt;/b&gt;에 대해 다루어 보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ABAP/SALV</category>
      <category>SAP #ABAP #SALV #Layout #Variant #DisplaySettings #StripePattern #ABAP_Series #NewSyntax</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/53</guid>
      <comments>https://fiveoceans.tistory.com/53#entry53comment</comments>
      <pubDate>Mon, 6 Apr 2026 14:26:56 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 3탄: 컬럼 속성 제어 (Text, Alignment, Technical)</title>
      <link>https://fiveoceans.tistory.com/52</link>
      <description>&lt;div &gt;SAP ABAP SALV 시리즈 3탄. 컬럼명 변경, 데이터 중앙 정렬, 그리고 레이아웃에서 아예 숨겨버리는 기술적 필드(Technical Field) 설정법을 가장 쉬운 코드로 설명합니다.&lt;/div&gt;
&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px; margin-bottom: 10px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SALV 3탄 - 컬럼 속성 제어 기초&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-bottom: 0px !important; padding-bottom: 0px !important;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Column Control)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 직관적인 코드로 컬럼의 이름, 정렬, 숨김 상태를 제어하는 방법입니다.&lt;/p&gt;
&lt;pre id=&quot;code_30192&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; 1. 데이터 조회
SELECT * FROM sflight INTO TABLE @DATA(lt_flight) UP TO 50 ROWS.

TRY.
    &quot; 2. SALV 생성
    cl_salv_table=&amp;gt;factory(
      IMPORTING r_salv_table = DATA(lo_alv)
      CHANGING  t_table      = lt_flight
    ).

    &quot; 3. 전체 컬럼 관리 객체 가져오기
    DATA(lo_columns) = lo_alv-&amp;gt;get_columns( ).
    lo_columns-&amp;gt;set_optimize( abap_true ). &quot; 너비 자동 최적화

    &quot; 4. 특정 컬럼 제어 (TRY-CATCH로 안전하게 처리)
    TRY.
        &quot; [기능] 컬럼 숨기기 (Technical Field: 레이아웃 리스트에서도 삭제)
        lo_columns-&amp;gt;get_column( 'MANDT' )-&amp;gt;set_technical( abap_true ).

        &quot; [기능] 컬럼명 및 툴팁 변경
        DATA(lo_col) = lo_columns-&amp;gt;get_column( 'PRICE' ).
        lo_col-&amp;gt;set_long_text( '항공운임(최종)' ).
        lo_col-&amp;gt;set_tooltip( '세금이 포함된 가격입니다' ).

        &quot; [기능] 데이터 중앙 정렬
        &quot; * 정렬 기능을 쓰기 위해 전용 클래스로 형변환(Casting)이 필요합니다.
        DATA(lo_col_tab) = CAST cl_salv_column_table( lo_columns-&amp;gt;get_column( 'CARRID' ) ).
        lo_col_tab-&amp;gt;set_alignment( if_salv_c_alignment=&amp;gt;centered ).

      CATCH cx_salv_not_found.
    ENDTRY.

    &quot; 5. 화면 출력
    lo_alv-&amp;gt;display( ).

  CATCH cx_salv_msg INTO DATA(lx_msg).
    MESSAGE lx_msg-&amp;gt;get_text( ) TYPE 'E'.
ENDTRY.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 기술 상세 설명&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Technical Field (기술적 필드)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 안 보이게 하는 &lt;span style=&quot;font-family: 'D2Coding'; color: #c7254e;&quot;&gt;set_visible&lt;/span&gt;과 달리, &lt;span style=&quot;font-family: 'D2Coding'; color: #c7254e;&quot;&gt;set_technical&lt;/span&gt;은 사용자가 레이아웃 변경 설정에서도 해당 컬럼을 아예 찾을 수 없게 만듭니다. 클라이언트(MANDT)나 시스템 내부 ID처럼 굳이 현업이 알 필요 없는 필드에 사용합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정렬 (Alignment)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 숫자는 오른쪽, 문자는 왼쪽으로 정렬됩니다. 항공사 코드나 날짜처럼 고정된 길이의 데이터는 &lt;span style=&quot;font-family: 'D2Coding'; color: #12b886;&quot;&gt;Centered(중앙 정렬)&lt;/span&gt;를 적용하면 훨씬 보기 좋은 리스트가 됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;툴팁 (Tooltip)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컬럼 헤더가 짧아서 의미 전달이 어려울 때 사용합니다. 마우스를 컬럼 제목 위에 올리면 풍선 도움말 형태로 긴 설명이 나타나 사용자 편의성을 높여줍니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 주의사항&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Casting (형변환):&lt;/b&gt; SALV의 기본 컬럼 객체에는 '정렬' 기능이 없습니다. 따라서 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;CAST cl_salv_column_table&lt;/span&gt; 구문을 통해 기능을 확장해줘야 정렬 메서드를 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컬럼명 오타:&lt;/b&gt; &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;get_column( 'FIELD' )&lt;/span&gt; 안의 필드명이 틀리면 프로그램이 멈출 수 있으므로 반드시 대문자로 작성하고 예외 처리를 해주는 것이 좋습니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ABAP/SALV</category>
      <category>#SAP #ABAP #SALV #ColumnControl #Alignment #TechnicalField #ABAP_Series #NewSyntax</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/52</guid>
      <comments>https://fiveoceans.tistory.com/52#entry52comment</comments>
      <pubDate>Fri, 27 Mar 2026 16:44:51 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 2탄: 표준 기능 확장 (Toolbar, Selection, Sort/Filter)</title>
      <link>https://fiveoceans.tistory.com/51</link>
      <description>&lt;div &gt;SAP ABAP SALV 시리즈 2탄. 표준 툴바 활성화는 물론, 실무 필수 기능인 행 선택 모드(Selection), 데이터 정렬/필터 및 합계(Aggregation) 설정법을 정리합니다.&lt;/div&gt;
&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px; margin-bottom: 10px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SALV 2탄 - 표준 기능 확장&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-bottom: 0px !important; padding-bottom: 0px !important;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Standard Functions Pack)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 SALV에 툴바, 행 선택, 자동 합계 기능을 한 번에 적용한 코드입니다.&lt;/p&gt;
&lt;pre id=&quot;code_22931&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; 1. 데이터 준비 (Inline Declaration)
SELECT * FROM sflight INTO TABLE @DATA(lt_flight) UP TO 50 ROWS.

TRY.
    &quot; 2. SALV 생성
    cl_salv_table=&amp;gt;factory(
      IMPORTING r_salv_table = DATA(lo_alv)
      CHANGING  t_table      = lt_flight
    ).

    &quot; --- [기능 1] 표준 툴바 활성화 ---
    lo_alv-&amp;gt;get_functions( )-&amp;gt;set_all( abap_true ).

    &quot; --- [기능 2] 행 선택 모드 설정 (체크박스/라인선택) ---
    DATA(lo_selections) = lo_alv-&amp;gt;get_selections( ).
    lo_selections-&amp;gt;set_selection_mode( if_salv_c_selection_mode=&amp;gt;row_column ).

    &quot; --- [기능 3] 합계(Aggregation) 설정 ---
    DATA(lo_aggr) = lo_alv-&amp;gt;get_aggregations( ).
    lo_aggr-&amp;gt;add_aggregation( columnname = 'PRICE' ). &quot; PRICE 컬럼 합계 추가

    &quot; --- [기능 4] 정렬 및 소계(Subtotal) 설정 ---
    DATA(lo_sorts) = lo_alv-&amp;gt;get_sorts( ).
    lo_sorts-&amp;gt;add_sort(
      columnname = 'CARRID'
      subtotal   = abap_true &quot; 항공사별 소계(PRICE 합계가 여기 반영됨)
    ).

    &quot; 3. 화면 출력
    lo_alv-&amp;gt;display( ).

  CATCH cx_salv_msg INTO DATA(lx_msg).
    MESSAGE lx_msg-&amp;gt;get_text( ) TYPE 'E'.
ENDTRY.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 기술 상세 설명&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;행 선택 모드 (Selection Mode)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SALV는 기본적으로 행을 선택할 수 없는 상태로 생성됩니다. &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;get_selections( )&lt;/span&gt;를 통해 가져온 객체에서 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;set_selection_mode&lt;/span&gt;를 설정해야만 사용자가 라인을 선택하거나 좌측 버튼을 클릭할 수 있습니다. (주요 값: &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;row_column&lt;/span&gt;, &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;multiple&lt;/span&gt; 등)&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;합계 및 소계 (Aggregation &amp;amp; Subtotal)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 툴바에서 합계 버튼을 누르는 것이 아니라, 프로그램 실행 시 자동으로 특정 컬럼(금액, 수량 등)의 합계를 구하려면 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;add_aggregation&lt;/span&gt;이 필요합니다. 이때 정렬(Sort) 객체에서 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;subtotal = abap_true&lt;/span&gt;를 함께 설정하면 그룹별 중간 합계가 자동으로 생성됩니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 주의사항&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Selection Mode의 제약:&lt;/b&gt; 다중 선택(Multiple) 모드를 활성화하더라도, SALV는 조회용이므로 선택된 행을 가져오는 로직은 별도의 이벤트 처리가 필요합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;합계 대상 필드:&lt;/b&gt; 합계(Aggregation)는 반드시 숫자형 타입(P, I, F 등)의 필드에만 적용 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;정렬 우선순위:&lt;/b&gt; 소계를 보고 싶다면 해당 그룹 필드에 정렬이 반드시 먼저 적용되어야 합니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ABAP/SALV</category>
      <category>#SAP #ABAP #SALV #SelectionMode #Aggregation #Subtotal</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/51</guid>
      <comments>https://fiveoceans.tistory.com/51#entry51comment</comments>
      <pubDate>Fri, 27 Mar 2026 16:32:11 +0900</pubDate>
    </item>
    <item>
      <title>[SALV] 1탄: 기본 생성</title>
      <link>https://fiveoceans.tistory.com/49</link>
      <description>&lt;div &gt;SAP ABAP SALV 시리즈 1탄. CL_SALV_TABLE 객체를 생성하고 데이터를 출력하는 가장 기초적이고 핵심적인 방법을 설명합니다.&lt;/div&gt;
&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px; margin-bottom: 10px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SALV 1탄 - 객체 생성 기초&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-bottom: 0px !important; padding-bottom: 0px !important;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 실무 적용 코드 예시 (Basic SALV)&lt;/h2&gt;
&lt;pre id=&quot;code_5521&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;
&quot; 1. 데이터 조회 (New SQL &amp;amp; Inline Declaration)
SELECT *
  FROM sflight
  INTO TABLE @DATA(lt_flight)
  UP TO 100 ROWS.

IF lt_flight IS NOT INITIAL.
  &quot; 2. SALV 객체 생성 및 인스턴스화
  TRY.
      cl_salv_table=&amp;gt;factory(
        IMPORTING
          r_salv_table = DATA(lo_alv)
        CHANGING
          t_table      = lt_flight
      ).

      &quot; 3. 화면 출력
      lo_alv-&amp;gt;display( ).

    CATCH cx_salv_msg INTO DATA(lx_msg).
      MESSAGE lx_msg-&amp;gt;get_text( ) TYPE 'E'.
  ENDTRY.
ELSE.
  MESSAGE '조회된 데이터가 없습니다.' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 기술 상세 설명&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정의 (Definition)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SALV(SAP ALV Object Model)&lt;/b&gt;는 기존 Function 기반(REUSE_ALV_*) 방식의 한계를 극복하기 위해 도입된 &lt;b&gt;객체 지향형 ALV 모델&lt;/b&gt;입니다. &lt;b&gt;CL_SALV_TABLE&lt;/b&gt; 클래스를 핵심으로 하며, 개발자가 일일이 필드 카탈로그를 작성하지 않아도 인터널 테이블의 구조를 스스로 파악하여 화면을 구성합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;아키텍처 및 특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Factory Pattern:&lt;/b&gt; 개발자가 직접 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;CREATE OBJECT&lt;/span&gt;를 수행하지 않고, 클래스 메서드인 &lt;span style=&quot;font-family: 'D2Coding';&quot;&gt;factory&lt;/span&gt;를 통해 시스템이 최적화된 객체를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Encapsulation:&lt;/b&gt; 그리드 설정, 컬럼 제어, 정렬 기능 등이 각각의 서브 클래스로 캡슐화되어 있어 관리가 용이합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;장점 및 주의사항&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; background-color: #f0fdf4; font-weight: bold; text-align: center;&quot;&gt;장점 (Pros)&lt;/td&gt;
&lt;td style=&quot;width: 50%; background-color: #fef2f2; font-weight: bold; text-align: center;&quot;&gt;주의사항 (Cons)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Field Catalog 수동 생성 불필요&lt;/td&gt;
&lt;td&gt;기본적으로 &lt;b&gt;조회 전용&lt;/b&gt; (Editable 불가)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inline Declaration으로 코드 최소화&lt;/td&gt;
&lt;td&gt;HANA 외 환경에서 성능 차이 발생 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;객체 지향 코드로 가독성 우수&lt;/td&gt;
&lt;td&gt;복잡한 다중 컨테이너 구현 시 추가 설정 필요&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 핵심 구현 포인트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;@DATA(lt_flight):&lt;/b&gt; 데이터 조회와 동시에 테이블 구조와 변수를 선언합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IMPORTING r_salv_table:&lt;/b&gt; 생성된 SALV 객체를 담을 참조 변수를 별도 선언 없이 그 자리에서 선언합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Exception Handling:&lt;/b&gt; SALV는 런타임 오류 방지를 위해 &lt;span style=&quot;font-family: 'D2Coding'; color: #c7254e;&quot;&gt;cx_salv_msg&lt;/span&gt; 예외 처리를 권장합니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ABAP/SALV</category>
      <category>SAP #ABAP #SALV #ALV기초#CL_SALV_TABLE</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/49</guid>
      <comments>https://fiveoceans.tistory.com/49#entry49comment</comments>
      <pubDate>Thu, 26 Mar 2026 10:27:29 +0900</pubDate>
    </item>
    <item>
      <title>[Syntax] WITH 구문</title>
      <link>https://fiveoceans.tistory.com/47</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em 1.5em 0.1em 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px; margin-bottom: 10px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: [Syntax] WITH 구문 활용 가이드&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0; margin-bottom: 0px !important; padding-bottom: 0px !important;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. WITH 구문의 정의 및 아키텍처&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP ABAP의 New SQL 문법인 &lt;b&gt;WITH&lt;/b&gt; 구문은 SQL 표준의 &lt;b&gt;CTE(Common Table Expression)&lt;/b&gt;를 기반으로 합니다. 이는 하나 이상의 임시 결과 집합(Temporary Result Set)을 정의한 후, 이를 메인 쿼리에서 참조하여 사용하는 방식입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 S/4HANA 및 HANA DB 환경에서는 대용량 데이터를 처리할 때 쿼리의 가독성을 높이고 로직을 논리적으로 분리함으로써, 유지보수 효율성을 비약적으로 향상시킵니다. 중첩된 서브쿼리(Subquery)를 절차적인 형태로 구현할 수 있다는 점이 핵심입니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 주요 장점 및 필요성&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;가독성 극대화:&lt;/b&gt; 복잡한 Join 및 Union 로직을 단계별로 정의하여 쿼리 흐름을 명확하게 파악할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;코드 재사용성:&lt;/b&gt; 정의된 임시 테이블을 메인 쿼리 내에서 여러 번 참조하여 중복 로직을 제거합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;HANA 엔진 최적화:&lt;/b&gt; 데이터베이스 옵티마이저가 논리적 구조를 정확히 인지하여 최적의 실행 계획을 수립하도록 지원합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 실무 적용 코드 예시 (Copy &amp;amp; Paste 가능)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 판매 오더(SO) 헤더와 아이템 데이터를 집계하여, 총 금액이 특정 기준을 초과하는 대상을 추출하는 실무형 코드입니다..&lt;/p&gt;
&lt;pre id=&quot;code_1711879723420&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot; S/4HANA 2022 ABAP WITH 구문 활용 실무 예제
REPORT zr_with_syntax_demo.

&quot; 1. 임시 결과 집합(+so_items) 정의 및 메인 쿼리 실행
WITH
  +so_items AS (
    SELECT vbeln,
           SUM( netwr ) AS total_amount,
           waerk
      FROM vbap
      GROUP BY vbeln, waerk
  )
SELECT FROM vbak AS h
         INNER JOIN +so_items AS i ON h~vbeln = i~vbeln
  FIELDS h~vbeln,
         h~erdat,
         h~kunnr,
         i~total_amount,
         i~waerk
  WHERE i~total_amount &amp;gt; 50000
  INTO TABLE @DATA(lt_target_orders).

&quot; 2. 실행 결과 처리
IF sy-subrc = 0.
  cl_demo_output=&amp;gt;display( lt_target_orders ).
ENDIF.&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;#SAP #ABAP #NewSyntax #WITH #CTE #HANA #S4HANA2022 #ABAP_Cloud&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 사용 시 기술적 주의사항&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WITH 구문 도입 시 반드시 준수해야 할 문법적 제약 사항은 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;임시 테이블 식별자 앞에는 반드시 &lt;b&gt;플러스(+)&lt;/b&gt; 기호를 접두어로 명시해야 합니다.&lt;/li&gt;
&lt;li&gt;정의된 모든 임시 테이블은 메인 쿼리에서 최소 1회 이상 참조되어야 하며, 참조되지 않을 경우 구문 오류가 발생합니다.&lt;/li&gt;
&lt;li&gt;마침표(.)는 오직 전체 문장의 끝(Main Query 종료 지점)에만 사용해야 합니다.&lt;/li&gt;
&lt;li&gt;복잡한 로직일수록 CTE를 적절히 분할하여 DB 옵티마이저의 부하를 최소화할 것을 권장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;S/4HANA 개발 환경에서 &lt;b&gt;WITH&lt;/b&gt; 구문은 현대적인 ABAP 코딩의 표준으로 자리 잡고 있습니다. 기존의 복잡한 서브쿼리를 CTE로 리팩토링함으로써 클린 코어(Clean Core)를 유지하고 고성능 HANA DB의 이점을 극대화하시기 바랍니다.&lt;/p&gt;</description>
      <category>ABAP/Syntax</category>
      <category>ABAP #SQL최적화</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/47</guid>
      <comments>https://fiveoceans.tistory.com/47#entry47comment</comments>
      <pubDate>Wed, 25 Mar 2026 12:45:28 +0900</pubDate>
    </item>
    <item>
      <title>[Function] GOS_ATTACHMENT_LIST_POPUP</title>
      <link>https://fiveoceans.tistory.com/43</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
    &lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;
        &lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: SAP GOS 첨부파일 리스트 구현 가이드&lt;/span&gt;
    &lt;/p&gt;
    &lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
    &lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. ABAP GOS 첨부파일 팝업 함수 요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP 개발 중 특정 데이터나 전표에 파일(PDF, 이미지 등) 또는 메모를 첨부해야 할 때, 가장 빠르고 표준적인 방법은 &lt;b&gt;GOS(Generic Object Services)&lt;/b&gt; 기능을 활용하는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별도의 테이블을 설계하지 않아도 SAP 표준 저장소를 이용하므로 매우 효율적입니다. 아래는 첨부파일 리스트 팝업을 호출하는 핵심 코드입니다.&lt;/p&gt;



&lt;pre id=&quot;code_1713189941563&quot; class=&quot;lang-abap&quot; data-ke-language=&quot;lang-abap&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot; GOS 오브젝트 정보 정의
DATA: LS_OBJECT TYPE SIBFLPORB.

LS_OBJECT-CATID  = 'BO'.      &quot; Category ID
LS_OBJECT-TYPEID = 'ZOTYPE'.  &quot; Object Type
LS_OBJECT-INSTID = '100001'.  &quot; Instance ID (Key값)

CALL FUNCTION 'GOS_ATTACHMENT_LIST_POPUP'
  EXPORTING
    IS_OBJECT = LS_OBJECT
    IP_MODE   = 'C'.          &quot; C: 편집모드, D: 조회모드&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4JRi8/btsGC3PAoRV/hrLDk8qdCiVmykrsZ8p2BK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4JRi8/btsGC3PAoRV/hrLDk8qdCiVmykrsZ8p2BK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4JRi8/btsGC3PAoRV/hrLDk8qdCiVmykrsZ8p2BK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4JRi8%2FbtsGC3PAoRV%2FhrLDk8qdCiVmykrsZ8p2BK%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;627&quot; height=&quot;209&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 파라미터 상세 분석 및 테이블 구조&lt;/h2&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) LS_OBJECT: 데이터 저장 주소 지정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 구조체는 첨부파일이 DB 테이블(&lt;b&gt;SRGBTBREL&lt;/b&gt;)의 어느 위치에 저장될지를 결정합니다. 일종의 '메모리 주소'라고 이해하시면 좋습니다.&lt;/p&gt;

&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
    &lt;thead style=&quot;background-color: #f1f3f5;&quot;&gt;
        &lt;tr&gt;
            &lt;th style=&quot;padding: 10px;&quot;&gt;필드명&lt;/th&gt;
            &lt;th style=&quot;padding: 10px;&quot;&gt;설명&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;CATID&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;일반적으로 'BO' (Business Object)를 사용합니다.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;TYPEID&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;데이터 대분류입니다. (예: 구매오더 BUS2012 등)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;INSTID&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;각 행을 구분하는 Key값입니다. ALV 연동 시 이 값을 통해 개별 행마다 다른 파일을 매핑할 수 있습니다.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bICs60/btsGC0k1M9Y/2L2J1cTNfWsrIP0LnXIkDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bICs60/btsGC0k1M9Y/2L2J1cTNfWsrIP0LnXIkDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bICs60/btsGC0k1M9Y/2L2J1cTNfWsrIP0LnXIkDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbICs60%2FbtsGC0k1M9Y%2F2L2J1cTNfWsrIP0LnXIkDk%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;627&quot; height=&quot;209&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) SRGBTBREL 테이블 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모나 파일을 저장한 뒤 실제 데이터가 어떻게 쌓이는지 확인해 보겠습니다. (Table: &lt;b&gt;SRGBTBREL&lt;/b&gt;)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eebEZ4/btsGE3g394u/6uFCHJdjhdKj50B0v39Z7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eebEZ4/btsGE3g394u/6uFCHJdjhdKj50B0v39Z7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eebEZ4/btsGE3g394u/6uFCHJdjhdKj50B0v39Z7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeebEZ4%2FbtsGE3g394u%2F6uFCHJdjhdKj50B0v39Z7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;122&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 3가지 분류로 데이터가 저장되므로, 이를 잘 활용하면 ALV의 각 로우(Row)별로 독립된 파일 업로드 기능을 완벽하게 구현할 수 있습니다.&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;3) IP_MODE 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자의 역할에 따라 팝업의 권한을 제어할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
    &lt;li&gt;&lt;b&gt;C (Create):&lt;/b&gt; 생성, 변경, 삭제가 가능한 풀 권한 모드입니다.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;D (Display):&lt;/b&gt; 저장된 내용을 조회만 할 수 있는 읽기 전용 모드입니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;133&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QoKKL/btsGDAsVMPc/zAUSvcYiq7zkOwZEq9kxK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QoKKL/btsGDAsVMPc/zAUSvcYiq7zkOwZEq9kxK1/img.png&quot; data-alt=&quot;C 모드: 추가 버튼이 활성화됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QoKKL/btsGDAsVMPc/zAUSvcYiq7zkOwZEq9kxK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQoKKL%2FbtsGDAsVMPc%2FzAUSvcYiq7zkOwZEq9kxK1%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;600&quot; height=&quot;127&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;133&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;C 모드: 추가 버튼이 활성화됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FPXcy/btsGFj44O4u/wKdyw9IhOqDM7F67JyrsWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FPXcy/btsGFj44O4u/wKdyw9IhOqDM7F67JyrsWk/img.png&quot; data-alt=&quot;D 모드: 조회 기능만 제공됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FPXcy/btsGFj44O4u/wKdyw9IhOqDM7F67JyrsWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFPXcy%2FbtsGFj44O4u%2FwKdyw9IhOqDM7F67JyrsWk%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;600&quot; height=&quot;144&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;D 모드: 조회 기능만 제공됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 운영 보안을 위한 권한 설정 (S_GOS_ATT)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능 구현도 중요하지만, 운영 환경에서는 무분별한 파일 삭제를 막아야 합니다. SAP 권한 오브젝트인 &lt;b&gt;S_GOS_ATT&lt;/b&gt;를 통해 제어가 가능합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nXY0p/btsGEXaNH7j/6RHF2BmVwwhrlwrojCQ4nK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nXY0p/btsGEXaNH7j/6RHF2BmVwwhrlwrojCQ4nK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nXY0p/btsGEXaNH7j/6RHF2BmVwwhrlwrojCQ4nK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnXY0p%2FbtsGEXaNH7j%2F6RHF2BmVwwhrlwrojCQ4nK%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;1416&quot; height=&quot;442&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 오브젝트의 &lt;b&gt;ACTVT&lt;/b&gt; 필드에서 &lt;code&gt;02 (Change)&lt;/code&gt; 또는 &lt;code&gt;06 (Delete)&lt;/code&gt; 항목을 체크하여 사용자별로 권한을 부여해 주시면 안전하게 운영할 수 있습니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 알아본 GOS 기능은 별도의 첨부파일 엔진을 구축하지 않고도 SAP 표준 내에서 완벽한 솔루션을 제공합니다. 실무에서 ALV와 연동하여 사용해 보시길 적극 추천드립니다! 궁금하신 점은 언제든 댓글 남겨주세요.&lt;/p&gt;</description>
      <category>ABAP/Function</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/43</guid>
      <comments>https://fiveoceans.tistory.com/43#entry43comment</comments>
      <pubDate>Mon, 15 Apr 2024 23:11:18 +0900</pubDate>
    </item>
    <item>
      <title>SAP ABAP 무료 개발 서버 - (4) SAP GUI 설치 및 서버 실행</title>
      <link>https://fiveoceans.tistory.com/42</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: SAP GUI 설치 및 접속 환경 최적화&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 시간까지 리눅스 서버에 SAP NetWeaver 인스턴스를 성공적으로 설치했습니다. 하지만 서버만 띄워놓았을 뿐, 우리가 실제로 코딩을 진행할 '화면'은 아직 준비되지 않았죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 4편에서는 사용자가 SAP 서버에 접속하기 위해 사용하는 클라이언트 툴인 &lt;b&gt;SAP GUI 7.50 설치&lt;/b&gt;법과, 내 컴퓨터(Windows)에서 가상 머신(Linux)으로 신호를 보내주는 &lt;b&gt;네트워크 포트 포워딩&lt;/b&gt; 설정을 상세히 다루겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;1. SAP GUI (Client Tool) 설치하기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP GUI는 서버와 통신하며 사용자가 명령을 내릴 수 있게 해주는 인터페이스입니다. 별도의 파일을 구할 필요 없이, 우리가 1편에서 압축을 해제했던 서버 설치 폴더 안에 포함되어 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 설치 파일 경로 찾기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;압축 해제된 폴더 내에서 &lt;code&gt;Client&lt;/code&gt; 관련 디렉토리를 따라가면 설치 파일을 발견할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;855&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LzTE1/btsGvuT5vhv/e1IHIb2eIF5nfogDQh56B1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LzTE1/btsGvuT5vhv/e1IHIb2eIF5nfogDQh56B1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LzTE1/btsGvuT5vhv/e1IHIb2eIF5nfogDQh56B1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLzTE1%2FbtsGvuT5vhv%2Fe1IHIb2eIF5nfogDQh56B1%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;727&quot; height=&quot;576&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;855&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 경로의 가장 마지막 단계에서 &lt;b&gt;SetupAll.exe&lt;/b&gt; 파일을 실행해 주세요. 이 파일이 SAP GUI의 통합 설치 프로그램입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1952&quot; data-origin-height=&quot;1026&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTgC69/btsGwQaYQL2/2WEsLG9bGBZf0CZjBKuh31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTgC69/btsGwQaYQL2/2WEsLG9bGBZf0CZjBKuh31/img.png&quot; data-alt=&quot;SetupAll.exe 파일을 실행합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTgC69/btsGwQaYQL2/2WEsLG9bGBZf0CZjBKuh31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTgC69%2FbtsGwQaYQL2%2F2WEsLG9bGBZf0CZjBKuh31%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;860&quot; height=&quot;452&quot; data-origin-width=&quot;1952&quot; data-origin-height=&quot;1026&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SetupAll.exe 파일을 실행합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) SAP GUI 7.50 설치 진행&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 마법사가 실행되면 특별한 설정 변경 없이 설치를 완료하시면 됩니다. 완료 후 바탕화면에 &lt;b&gt;SAP Logon&lt;/b&gt; 아이콘이 생성되었는지 확인해 주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1475&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctjSpY/btsGuNmsV0t/zjlO9ZIUzXrkAhGJ7BwbzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctjSpY/btsGuNmsV0t/zjlO9ZIUzXrkAhGJ7BwbzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctjSpY/btsGuNmsV0t/zjlO9ZIUzXrkAhGJ7BwbzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctjSpY%2FbtsGuNmsV0t%2FzjlO9ZIUzXrkAhGJ7BwbzK%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;800&quot; height=&quot;303&quot; data-origin-width=&quot;1475&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1542&quot; data-origin-height=&quot;583&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CbZXs/btsGw9nQKMq/GZxDoVJu1On7yFVIfzvnFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CbZXs/btsGw9nQKMq/GZxDoVJu1On7yFVIfzvnFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CbZXs/btsGw9nQKMq/GZxDoVJu1On7yFVIfzvnFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCbZXs%2FbtsGw9nQKMq%2FGZxDoVJu1On7yFVIfzvnFK%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;800&quot; height=&quot;302&quot; data-origin-width=&quot;1542&quot; data-origin-height=&quot;583&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;2. 가상 머신(VM) 네트워크 포트 포워딩 설정&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 SAP 서버는 가상 머신 내부(IP 10.0.2.15)에 갇혀 있는 상태입니다. 우리 윈도우(호스트)에서 이 서버로 접속하려면 대문을 열어주는 &lt;b&gt;'포트 포워딩'&lt;/b&gt; 작업이 반드시 필요합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;필수 개방 포트 및 설정 이유&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP 접속에는 인스턴스 번호에 따라 결정되는 고유 포트가 사용됩니다. 우리는 인스턴스 00번을 사용하므로 다음 포트를 등록합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;3200 포트 (Dispatcher):&lt;/b&gt; GUI가 서버에 로그인하고 통신하기 위한 메인 통로입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;3300 포트 (Gateway/RFC):&lt;/b&gt; 외부 연결 및 ABAP Screen Painter 등이 정상 작동하기 위해 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;1013&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVBm1u/btsGuqkyclO/o37D3WLf02T5oeCHFgz7d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVBm1u/btsGuqkyclO/o37D3WLf02T5oeCHFgz7d0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVBm1u/btsGuqkyclO/o37D3WLf02T5oeCHFgz7d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVBm1u%2FbtsGuqkyclO%2Fo37D3WLf02T5oeCHFgz7d0%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;600&quot; height=&quot;471&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;1013&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1275&quot; data-origin-height=&quot;990&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rW83f/btsGwdR1ZDv/cOK5UQJ3BqFZrm2hj3tb7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rW83f/btsGwdR1ZDv/cOK5UQJ3BqFZrm2hj3tb7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rW83f/btsGwdR1ZDv/cOK5UQJ3BqFZrm2hj3tb7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrW83f%2FbtsGwdR1ZDv%2FcOK5UQJ3BqFZrm2hj3tb7k%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;600&quot; height=&quot;466&quot; data-origin-width=&quot;1275&quot; data-origin-height=&quot;990&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;  주의사항:&lt;/b&gt; 3300 포트를 등록하지 않으면, 나중에 ABAP 개발 시 &lt;b&gt;Screen Painter(화면 설계 도구)&lt;/b&gt;가 실행되지 않는 오류가 발생할 수 있습니다. 반드시 두 포트 모두 등록해 주세요.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1011&quot; data-origin-height=&quot;608&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m4kj7/btsGw7Q5YQt/i3TmKLKOrKOE39QNKpTKK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m4kj7/btsGw7Q5YQt/i3TmKLKOrKOE39QNKpTKK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m4kj7/btsGw7Q5YQt/i3TmKLKOrKOE39QNKpTKK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm4kj7%2FbtsGw7Q5YQt%2Fi3TmKLKOrKOE39QNKpTKK0%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;600&quot; height=&quot;361&quot; data-origin-width=&quot;1011&quot; data-origin-height=&quot;608&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;3. SAP 서버 실행 및 기동 확인&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 모든 준비가 끝났습니다. 터미널을 열고 관리자 계정으로 접속하여 실제 SAP 인스턴스를 기동해 보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1293&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tSPUn/btsGwgVI5Cb/ODs9ZXGcPFAqRkRMAMBce1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tSPUn/btsGwgVI5Cb/ODs9ZXGcPFAqRkRMAMBce1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tSPUn/btsGwgVI5Cb/ODs9ZXGcPFAqRkRMAMBce1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtSPUn%2FbtsGwgVI5Cb%2FODs9ZXGcPFAqRkRMAMBce1%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;600&quot; height=&quot;457&quot; data-origin-width=&quot;1293&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;629&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UdcLA/btsGws9gAiy/i1CXpgoJkK8uuKPyr865cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UdcLA/btsGws9gAiy/i1CXpgoJkK8uuKPyr865cK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UdcLA/btsGws9gAiy/i1CXpgoJkK8uuKPyr865cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUdcLA%2FbtsGws9gAiy%2Fi1CXpgoJkK8uuKPyr865cK%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;600&quot; height=&quot;457&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;629&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 관리자 계정인 &lt;code&gt;npladm&lt;/code&gt;으로 스위칭한 뒤 명령어를 입력합니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;su - npladm       
sapdev1!          
startsap ALL&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어 입력 후 모든 프로세스가 'OK'로 뜨며 서버가 실행되면 아래와 같이 정상 기동된 화면을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1288&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oAxOb/btsGx0Yuj1n/3SKi270lmkNhh3x6D5MuX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oAxOb/btsGx0Yuj1n/3SKi270lmkNhh3x6D5MuX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oAxOb/btsGx0Yuj1n/3SKi270lmkNhh3x6D5MuX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoAxOb%2FbtsGx0Yuj1n%2F3SKi270lmkNhh3x6D5MuX0%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;600&quot; height=&quot;459&quot; data-origin-width=&quot;1288&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;4. SAP Logon 접속 정보 입력&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 SAP GUI를 실행하여 우리가 만든 서버의 주소를 등록할 차례입니다. '새 항목 추가'를 눌러 다음 정보를 정확히 입력해 주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;1086&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y7ZTf/btsGwMmgdjv/uS790PYgKuUMM9IKQ3qzn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y7ZTf/btsGwMmgdjv/uS790PYgKuUMM9IKQ3qzn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y7ZTf/btsGwMmgdjv/uS790PYgKuUMM9IKQ3qzn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY7ZTf%2FbtsGwMmgdjv%2FuS790PYgKuUMM9IKQ3qzn1%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;700&quot; height=&quot;397&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;1086&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: square;&quot; data-ke-list-type=&quot;square&quot;&gt;
&lt;li&gt;&lt;b&gt;내역(Description):&lt;/b&gt; SAP ABAP 실습 (자유롭게 입력 가능)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;애플리케이션 서버:&lt;/b&gt; 127.0.0.1 (내 컴퓨터를 가리키는 로컬 주소)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인스턴스 번호:&lt;/b&gt; 00&lt;/li&gt;
&lt;li&gt;&lt;b&gt;시스템 ID:&lt;/b&gt; NPL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1913&quot; data-origin-height=&quot;967&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvOTBb/btsGxAlm5ja/aAKQ587OCP7idKnIZBHxVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvOTBb/btsGxAlm5ja/aAKQ587OCP7idKnIZBHxVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvOTBb/btsGxAlm5ja/aAKQ587OCP7idKnIZBHxVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvOTBb%2FbtsGxAlm5ja%2FaAKQ587OCP7idKnIZBHxVK%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;1913&quot; height=&quot;967&quot; data-origin-width=&quot;1913&quot; data-origin-height=&quot;967&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정을 저장하고 방금 생성한 항목을 더블 클릭하면 대망의 SAP 로그인 화면이 나타납니다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;1005&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m0t9N/btsGwLOsO2k/NRWhnKFKudckqKXGLAP6z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m0t9N/btsGwLOsO2k/NRWhnKFKudckqKXGLAP6z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m0t9N/btsGwLOsO2k/NRWhnKFKudckqKXGLAP6z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm0t9N%2FbtsGwLOsO2k%2FNRWhnKFKudckqKXGLAP6z0%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;1760&quot; height=&quot;1005&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;1005&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;5. 안전한 서버 종료 가이드&lt;/span&gt;&lt;/h2&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-origin-width=&quot;1288&quot; data-origin-height=&quot;987&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p5yEA/btsGwttyzF0/sLlOzeMAO4sWuszY5VWDNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p5yEA/btsGwttyzF0/sLlOzeMAO4sWuszY5VWDNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p5yEA/btsGwttyzF0/sLlOzeMAO4sWuszY5VWDNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp5yEA%2FbtsGwttyzF0%2FsLlOzeMAO4sWuszY5VWDNk%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;600&quot; height=&quot;460&quot; data-origin-width=&quot;1288&quot; data-origin-height=&quot;987&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;su - npladm       
sapdev1!          
stopsap&lt;/code&gt;&lt;/pre&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-origin-width=&quot;1290&quot; data-origin-height=&quot;987&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oYmUE/btsGuH7n1zc/RkzQangl2zxAfq8gDVHWxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oYmUE/btsGuH7n1zc/RkzQangl2zxAfq8gDVHWxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oYmUE/btsGuH7n1zc/RkzQangl2zxAfq8gDVHWxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoYmUE%2FbtsGuH7n1zc%2FRkzQangl2zxAfq8gDVHWxk%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;600&quot; height=&quot;459&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;987&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 개인 컴퓨터에서 SAP의 세계로 들어가는 문을 열었습니다. 고생 많으셨습니다! 다음 포스팅(5편)에서는 &lt;b&gt;실제 개발자 계정으로 로그인하여 라이선스를 등록하는 방법&lt;/b&gt;을 상세히 다루겠습니다.&lt;/p&gt;</description>
      <category>SAP/ABAP 무료서버 설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/42</guid>
      <comments>https://fiveoceans.tistory.com/42#entry42comment</comments>
      <pubDate>Thu, 11 Apr 2024 08:51:59 +0900</pubDate>
    </item>
    <item>
      <title>INDEX</title>
      <link>https://fiveoceans.tistory.com/pages/INDEX</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;test&lt;/p&gt;</description>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/pages/INDEX</guid>
      <pubDate>Thu, 4 Apr 2024 22:31:39 +0900</pubDate>
    </item>
    <item>
      <title>SAP Eclipse ADT(ABAP Development Tools) 실행</title>
      <link>https://fiveoceans.tistory.com/39</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;CONTENTS: Eclipse ADT 서버 연결 및 HelloWorld 실행&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요! 모든 설치 과정을 무사히 마치신 것을 축하드립니다. 이제 이클립스(Eclipse)라는 강력한 도구에 SAP 서버라는 날개를 달아줄 시간입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 포스팅에서는 &lt;b&gt;Eclipse ADT와 설치한 SAP 서버를 실시간으로 동기화&lt;/b&gt;하고, 실제 ABAP 프로그램을 생성하여 SAP 서버에 물리적으로 반영되는지 확인하는 전 과정을 상세히 알아보겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. SAP 서버 접속 및 ABAP Project 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Eclipse에서는 서버와의 연결을 &lt;b&gt;'ABAP Project'&lt;/b&gt;라는 단위로 관리합니다. 이를 위해 먼저 가상 머신(VM)에서 SAP 서버가 실행 중인지 확인해 주세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 프로젝트 생성 위저드 실행&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Eclipse 상단 메뉴에서 &lt;b&gt;File &amp;gt; New &amp;gt; ABAP Project&lt;/b&gt;를 클릭합니다. 만약 메뉴가 보이지 않는다면 &lt;i&gt;Other...&lt;/i&gt;에서 ABAP Project를 검색하여 선택할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1490&quot; data-origin-height=&quot;1125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKl4WV/btsGjDYLmnl/HH8RC2Nh8n2SW5FGqXKIWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKl4WV/btsGjDYLmnl/HH8RC2Nh8n2SW5FGqXKIWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKl4WV/btsGjDYLmnl/HH8RC2Nh8n2SW5FGqXKIWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKl4WV%2FbtsGjDYLmnl%2FHH8RC2Nh8n2SW5FGqXKIWk%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;600&quot; height=&quot;453&quot; data-origin-width=&quot;1490&quot; data-origin-height=&quot;1125&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 서버 정보 확인 및 로그인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 SAP Logon Pad에 등록했던 NPL 서버 정보를 선택하면 시스템 정보가 자동으로 불러와집니다. 이후 실습을 위해 다음 계정 정보를 입력하여 접속합니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border-color: #e5e5e5;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead style=&quot;background-color: #f1f3f5;&quot;&gt;
&lt;tr&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;항목&lt;/th&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;입력값&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;Client&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;User&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;Developer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;Password&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;Down1oad&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;1021&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duO2ic/btsGjJ5tASV/naMszp8lJbtiGfQzPhdoK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duO2ic/btsGjJ5tASV/naMszp8lJbtiGfQzPhdoK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duO2ic/btsGjJ5tASV/naMszp8lJbtiGfQzPhdoK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduO2ic%2FbtsGjJ5tASV%2FnaMszp8lJbtiGfQzPhdoK1%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;600&quot; height=&quot;632&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;1021&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;1029&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWatou/btsGjW4Aw5D/fCZH7GeMsW7D3ZxMBt3Rp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWatou/btsGjW4Aw5D/fCZH7GeMsW7D3ZxMBt3Rp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWatou/btsGjW4Aw5D/fCZH7GeMsW7D3ZxMBt3Rp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWatou%2FbtsGjW4Aw5D%2FfCZH7GeMsW7D3ZxMBt3Rp0%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;600&quot; height=&quot;634&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;1029&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;1023&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnTuKI/btsGkBex4zj/cjQDCmVKH6mgXaakCaRplk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnTuKI/btsGkBex4zj/cjQDCmVKH6mgXaakCaRplk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnTuKI/btsGkBex4zj/cjQDCmVKH6mgXaakCaRplk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnTuKI%2FbtsGkBex4zj%2FcjQDCmVKH6mgXaakCaRplk%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;600&quot; height=&quot;629&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;1023&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 첫 ABAP Program 생성 실습&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공적으로 서버에 접속되었다면 이제 내 컴퓨터의 Eclipse와 SAP 서버의 DB가 연결된 상태입니다. 간단한 리포트 프로그램을 하나 만들어 보며 실제 반영 여부를 테스트해 보겠습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) ABAP Program 생성 위저드&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 내에서 마우스 우클릭 후 &lt;b&gt;New &amp;gt; ABAP Program&lt;/b&gt;을 선택합니다. 프로그램 이름(예: ZECLIPSE_HELLO)과 명칭을 입력해 주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;887&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HCN0r/btsGlxXhBK3/RXOTDrSyBKayMVMb4uokOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HCN0r/btsGlxXhBK3/RXOTDrSyBKayMVMb4uokOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HCN0r/btsGlxXhBK3/RXOTDrSyBKayMVMb4uokOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHCN0r%2FbtsGlxXhBK3%2FRXOTDrSyBKayMVMb4uokOK%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;600&quot; height=&quot;603&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;887&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;987&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMop3z/dJMcabjJH9U/zQKJ2oAiCwgMomFClmkik1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMop3z/dJMcabjJH9U/zQKJ2oAiCwgMomFClmkik1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMop3z/dJMcabjJH9U/zQKJ2oAiCwgMomFClmkik1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMop3z%2FdJMcabjJH9U%2FzQKJ2oAiCwgMomFClmkik1%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;613&quot; height=&quot;614&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;987&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 패키지 지정 ($TMP)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실습용이므로 별도의 전송 요청(TR)이 필요 없는 &lt;b&gt;$TMP (Local Object)&lt;/b&gt; 패키지를 선택합니다. 이미 생성해 둔 전용 패키지가 있다면 해당 패키지를 지정하셔도 무방합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;956&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pCTb0/btsGlUdEdKS/E77PQlKlGwKWXHbkrnQBu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pCTb0/btsGlUdEdKS/E77PQlKlGwKWXHbkrnQBu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pCTb0/btsGlUdEdKS/E77PQlKlGwKWXHbkrnQBu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpCTb0%2FbtsGlUdEdKS%2FE77PQlKlGwKWXHbkrnQBu0%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;600&quot; height=&quot;548&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;956&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 소스 코드 작성 및 실행 (Activate &amp;amp; Execute)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램 편집 창이 열리면 아래와 같은 간단한 출력 구문을 작성합니다. Eclipse의 강력한 &lt;b&gt;코드 자동 완성(Content Assist)&lt;/b&gt; 기능을 맛볼 수 있는 지점입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 코드를 입력 후 Eclipse에서 실행했을 때 화면입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1359&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzOYJY/dJMcaaylz5c/7mWZR0ONDPiImOsnIGJW1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzOYJY/dJMcaaylz5c/7mWZR0ONDPiImOsnIGJW1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzOYJY/dJMcaaylz5c/7mWZR0ONDPiImOsnIGJW1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzOYJY%2FdJMcaaylz5c%2F7mWZR0ONDPiImOsnIGJW1k%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;219&quot; data-origin-width=&quot;1359&quot; data-origin-height=&quot;480&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;활성화(Activate):&lt;/b&gt; &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;F3&lt;/kbd&gt; - 서버에 코드를 반영하고 컴파일합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실행(Execute):&lt;/b&gt; &lt;kbd&gt;F8&lt;/kbd&gt; - 작성한 결과를 화면에 출력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1238&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTpaRL/dJMcabjJId6/8Dm1XlmpIwKM2yDvgSgTJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTpaRL/dJMcabjJId6/8Dm1XlmpIwKM2yDvgSgTJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTpaRL/dJMcabjJId6/8Dm1XlmpIwKM2yDvgSgTJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTpaRL%2FdJMcabjJId6%2F8Dm1XlmpIwKM2yDvgSgTJk%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;622&quot; height=&quot;159&quot; data-origin-width=&quot;1238&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1648&quot; data-origin-height=&quot;1101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8uver/btsGjMOCmft/klbK24mJNEaNvEskrLoIJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8uver/btsGjMOCmft/klbK24mJNEaNvEskrLoIJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8uver/btsGjMOCmft/klbK24mJNEaNvEskrLoIJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8uver%2FbtsGjMOCmft%2FklbK24mJNEaNvEskrLoIJ0%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;600&quot; height=&quot;401&quot; data-origin-width=&quot;1648&quot; data-origin-height=&quot;1101&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;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;  현직자 실무 팁:&lt;/b&gt; Eclipse에서 작성한 내용은 실시간으로 SAP 서버 DB에 저장됩니다. 실제로 &lt;b&gt;SAP Logon&lt;/b&gt;으로 서버에 접속하여 &lt;b&gt;SE38&lt;/b&gt; 트랜잭션에서 방금 만든 프로그램을 조회해 보세요. Eclipse에서 쓴 코드가 그대로 반영된 것을 확인할 수 있습니다!&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 여러분은 진보된 개발 환경인 Eclipse ADT를 완벽하게 다룰 수 있게 되었습니다. 단순히 과거의 방식(SE80)을 고수하는 것이 아니라, 새로운 기술을 수용하여 개발 생산성을 높이는 것은 개발자로서 매우 중요한 역량입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 성공적으로 첫 프로그램을 띄우셨다면, 다음 포스팅부터는 &lt;b&gt;New ABAP Syntax의 핵심 구문과 HANA DB에 최적화된 코딩 방법&lt;/b&gt;을 하나씩 풀어가 보겠습니다. 즐거운 코딩 되세요!&lt;/p&gt;</description>
      <category>SAP/Eclipse ADT 설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/39</guid>
      <comments>https://fiveoceans.tistory.com/39#entry39comment</comments>
      <pubDate>Wed, 3 Apr 2024 20:50:42 +0900</pubDate>
    </item>
    <item>
      <title>SAP Eclipse ADT (ABAP Development Tools) 설치</title>
      <link>https://fiveoceans.tistory.com/38</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: 현대적 ABAP 개발의 시작, Eclipse ADT 설치 가이드&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;SAP ABAP 개발의 필수 도구, Eclipse ADT 설치 및 환경 설정 완벽 가이드&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP NetWeaver AS ABAP Developer Edition 설치를 마치셨다면, 이제 개발 효율을 극대화할 차례입니다. 과거에는 SAP GUI의 SE80(Object Navigator)이 표준이었으나, 이제는 &lt;b&gt;Eclipse ADT(ABAP Development Tools)&lt;/b&gt;가 대세입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 최신 ABAP 구문(New ABAP Syntax)은 물론, S/4HANA 기반의 &lt;b&gt;CDS View, AMDP(ABAP Managed Database Procedures)&lt;/b&gt; 개발을 위해서는 ADT 사용이 선택이 아닌 필수입니다. 오늘은 Eclipse 설치부터 ADT 플러그인 이식까지 전 과정을 상세히 정리해 보겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 사전 체크: Eclipse 버전과 ADT 호환성 확인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ADT를 설치하기 전 가장 먼저 확인해야 할 것은 이클립스 소프트웨어와의 호환성입니다. SAP는 이클립스의 최신 버전에 맞춰 ADT 업데이트를 제공하지만, 안정적인 개발 환경을 위해 공식 가이드를 따르는 것이 좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #12b886; text-decoration: underline;&quot; href=&quot;https://tools.hana.ondemand.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;SAP Development Tools 공식 사이트&lt;/b&gt;&lt;/a&gt;에 접속하여 현재 지원되는 최신 버전을 확인하세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1828&quot; data-origin-height=&quot;943&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE4pCN/btsGhRbyRDQ/SLoG0x9J1VARrOMO8h4GX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE4pCN/btsGhRbyRDQ/SLoG0x9J1VARrOMO8h4GX0/img.png&quot; data-alt=&quot;초록색 박스의 URL은 나중에 플러그인 설치 시 필요하므로 메모해 두세요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE4pCN/btsGhRbyRDQ/SLoG0x9J1VARrOMO8h4GX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE4pCN%2FbtsGhRbyRDQ%2FSLoG0x9J1VARrOMO8h4GX0%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;1828&quot; height=&quot;943&quot; data-origin-width=&quot;1828&quot; data-origin-height=&quot;943&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;초록색 박스의 URL은 나중에 플러그인 설치 시 필요하므로 메모해 두세요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;  현직자 Tip:&lt;/b&gt; 만약 SAP HANA Tools(HANA Studio 기능)를 함께 사용하실 계획이라면, 현재 기준으로 2023-12 버전이 가장 안정적입니다. 최신인 2024-03 버전도 ADT를 지원하지만, 다른 부가 플러그인과의 호환성을 고려하여 버전을 선택하시기 바랍니다.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Java 실행 환경(JDK) 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이클립스는 Java 기반으로 동작하는 IDE이므로 &lt;b&gt;JDK(Java Development Kit)&lt;/b&gt; 설치가 선행되어야 합니다. JDK가 없으면 이클립스 실행 자체가 불가능합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;권장 버전:&lt;/b&gt; 최소 JDK 11 또는 17 이상을 권장합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다운로드:&lt;/b&gt; &lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/#jdk22-windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;오라클 JDK 다운로드 링크&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvrqv3/btsGkVpsdJP/69GqpKKRUxs1kDMkSiabk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvrqv3/btsGkVpsdJP/69GqpKKRUxs1kDMkSiabk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvrqv3/btsGkVpsdJP/69GqpKKRUxs1kDMkSiabk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcvrqv3%2FbtsGkVpsdJP%2F69GqpKKRUxs1kDMkSiabk1%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;800&quot; height=&quot;617&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;1117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;환경 변수 설정이 번거롭다면 설치 프로그램이 자동으로 경로를 잡아주지만, 오류 발생 시 &lt;code&gt;eclipse.ini&lt;/code&gt; 파일의 &lt;code&gt;-vm&lt;/code&gt; 옵션에서 직접 경로를 지정할 수 있다는 점도 기억해 두세요.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Eclipse IDE 설치 (2024-03 버전 기준)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.eclipse.org/downloads/packages/release&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;이클립스 공식 홈페이지&lt;/a&gt;에서 &lt;b&gt;'Eclipse IDE for Java Developers'&lt;/b&gt; 패키지를 다운로드하여 설치를 시작합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k0hMg/btsGiP49gfJ/2NkDAogg4i63hBw5HBcKU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k0hMg/btsGiP49gfJ/2NkDAogg4i63hBw5HBcKU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k0hMg/btsGiP49gfJ/2NkDAogg4i63hBw5HBcKU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk0hMg%2FbtsGiP49gfJ%2F2NkDAogg4i63hBw5HBcKU1%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;455&quot; height=&quot;395&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;706&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 관리자 실행 후 위 이미지와 같이 해당 패키지를 선택하고 설치 경로를 지정한 뒤 'Install'을 클릭하세요. 설치 완료 후 워크스페이스(Workspace) 경로를 지정하게 되는데, 이곳에 여러분의 프로젝트 메타데이터와 개인 설정이 저장됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1544&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/deDRUt/btsGiBTx60Z/VEJ49b5eG5QzAKrWfIZGX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/deDRUt/btsGiBTx60Z/VEJ49b5eG5QzAKrWfIZGX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/deDRUt/btsGiBTx60Z/VEJ49b5eG5QzAKrWfIZGX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdeDRUt%2FbtsGiBTx60Z%2FVEJ49b5eG5QzAKrWfIZGX0%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;1544&quot; height=&quot;680&quot; data-origin-width=&quot;1544&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. ADT (ABAP Development Tools) 플러그인 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 일반 이클립스에 SAP 개발용 '날개'를 다는 핵심 단계입니다. 아래 순서대로 정확하게 URL을 입력해 주세요.&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;Help &amp;gt; Install New Software...&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Work with&lt;/b&gt; 필드에 버전별 URL 입력
&lt;ul style=&quot;list-style-type: disc; margin-top: 10px;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최신 버전: &lt;code&gt;https://tools.hana.ondemand.com/latest&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;2024-03 버전: &lt;code&gt;https://tools.hana.ondemand.com/2024-03&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ABAP Development Tools&lt;/b&gt; 항목을 체크하고 'Next' 진행&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1356&quot; data-origin-height=&quot;1095&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTqd2B/btsGis3pRdL/K2YrCKdzt7mx7h68rPx5Y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTqd2B/btsGis3pRdL/K2YrCKdzt7mx7h68rPx5Y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTqd2B/btsGis3pRdL/K2YrCKdzt7mx7h68rPx5Y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTqd2B%2FbtsGis3pRdL%2FK2YrCKdzt7mx7h68rPx5Y0%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;1356&quot; height=&quot;1095&quot; data-origin-width=&quot;1356&quot; data-origin-height=&quot;1095&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;⚠️ 주의:&lt;/b&gt; 설치 도중 하단 상태 바를 보면 진행도가 나타납니다. 100%가 될 때까지 기다려야 하며, 중간에 보안 경고 팝업이 뜨면 'Select All'을 누르고 신뢰(Trust) 설정을 완료해 주어야 합니다.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1492&quot; data-origin-height=&quot;1128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dKCIu5/btsGh6feH9b/w2ndpHDziELw0rllYIrhI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dKCIu5/btsGh6feH9b/w2ndpHDziELw0rllYIrhI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dKCIu5/btsGh6feH9b/w2ndpHDziELw0rllYIrhI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKCIu5%2FbtsGh6feH9b%2Fw2ndpHDziELw0rllYIrhI0%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;1492&quot; height=&quot;1128&quot; data-origin-width=&quot;1492&quot; data-origin-height=&quot;1128&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며: ABAP 생산성의 새로운 차원&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Eclipse ADT 설치가 모두 완료되었습니다. 처음에는 SAP GUI의 단축키가 그리울 수 있지만, &lt;b&gt;코드 자동 완성(Content Assist)&lt;/b&gt;이나 &lt;b&gt;퀵 픽스(Quick Fix)&lt;/b&gt; 같은 강력한 생산성 도구를 경험하게 되면 다시는 과거의 SE80으로 돌아가기 어려울 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스팅에서는 설치한 ADT를 우리가 구축한 &lt;b&gt;SAP 서버에 실제로 연결하고 첫 번째 ABAP 프로그램을 작성하는 과정&lt;/b&gt;을 알아보겠습니다. 고생 많으셨습니다!&lt;/p&gt;</description>
      <category>SAP/Eclipse ADT 설치</category>
      <category>#EclipseADT #SAPEclipse #ABAPDevelopmentTools #ADT설치 #SAP개발도구 #Eclipse설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/38</guid>
      <comments>https://fiveoceans.tistory.com/38#entry38comment</comments>
      <pubDate>Tue, 2 Apr 2024 21:14:11 +0900</pubDate>
    </item>
    <item>
      <title>SAP ABAP 무료 개발 서버 - (6) 외부 접속 Network 세팅</title>
      <link>https://fiveoceans.tistory.com/29</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
    &lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;
        &lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: 외부 접속을 위한 네트워크 완벽 세팅&lt;/span&gt;
    &lt;/p&gt;
    &lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
    &lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 6부작 시리즈의 마지막 단계에 도달했습니다. 지난 시간까지 우리는 로컬 PC 내에서 SAP 서버를 구동하는 데 성공했습니다. 하지만 진정한 개발 환경의 완성은 **'장소에 구애받지 않는 접속'**에 있죠. 집 데스크탑을 서버로 켜두고, 카페나 회사에서 노트북으로 접속하는 환경입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 위해서는 외부 네트워크 신호가 내 방의 컴퓨터를 지나 가상 머신(VM) 속 SAP 서버까지 도달할 수 있도록 &lt;b&gt;'길(Path)'&lt;/b&gt;을 열어주는 &lt;b&gt;포트 포워딩(Port Forwarding)&lt;/b&gt; 작업이 필요합니다. 네트워크 구조부터 차근차근 알아보겠습니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;1. 홈 네트워크 구조의 이해&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 흔히 사용하는 가정용 인터넷은 &lt;b&gt;[외부 인터넷 → 모뎀 → 공유기 → PC]&lt;/b&gt;의 복잡한 단계를 거칩니다. 데이터가 정확한 목적지에 도달하기 위해서는 각 단계마다 '어느 장치로 데이터를 보낼 것인가'를 정의해 주어야 합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1489&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c91rIt/btsGe9Ipuum/bC4toTOJIRWgWHXpDYKFFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c91rIt/btsGe9Ipuum/bC4toTOJIRWgWHXpDYKFFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c91rIt/btsGe9Ipuum/bC4toTOJIRWgWHXpDYKFFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc91rIt%2FbtsGe9Ipuum%2FbC4toTOJIRWgWHXpDYKFFk%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;1489&quot; height=&quot;351&quot; data-origin-width=&quot;1489&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷 서비스 제공업체(ISP)로부터 받은 공인 IP 신호는 모뎀을 통해 들어옵니다. 이후 공유기가 이 신호를 받아 내부 네트워크(Private IP)로 나누어 주게 됩니다. 우리는 이 흐름의 역순, 즉 &lt;b&gt;[가상 머신 ← PC ← 공유기 ← 모뎀]&lt;/b&gt; 순서로 설정을 진행하여 외부 접근 경로를 완성하겠습니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;2. Step 1: PC에서 가상 머신(VM)으로 연결&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 먼저 내 물리적인 컴퓨터로 들어온 신호를 가상 머신 안의 SAP 서버로 전달해야 합니다. 이를 위해 현재 내 PC의 내부 IP 주소를 확인해야 합니다.&lt;/p&gt;

&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
    &lt;b&gt;명령 프롬프트(CMD) 실행:&lt;/b&gt; &lt;code&gt;ipconfig&lt;/code&gt; 입력 후 'IPv4 주소' 확인&lt;br&gt;
    (예시 기준 IP: &lt;span style=&quot;color: #ee2323;&quot;&gt;192.168.45.200&lt;/span&gt;)
&lt;/blockquote&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;918&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCATAF/btsGevZv4uG/uRGZaAYV8dswPQWvha1Vn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCATAF/btsGevZv4uG/uRGZaAYV8dswPQWvha1Vn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCATAF/btsGevZv4uG/uRGZaAYV8dswPQWvha1Vn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCATAF%2FbtsGevZv4uG%2FuRGZaAYV8dswPQWvha1Vn0%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;600&quot; height=&quot;374&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;918&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인된 컴퓨터 IP를 바탕으로 VirtualBox의 네트워크 설정에서 포트 포워딩을 수행합니다. 지난 4편에서 진행했던 포트 설정 페이지에 호스트 IP를 추가로 입력해 주는 과정입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;815&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MfqyY/btsGfJii074/fBuasUJX4Pbta1KQDVT7Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MfqyY/btsGfJii074/fBuasUJX4Pbta1KQDVT7Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MfqyY/btsGfJii074/fBuasUJX4Pbta1KQDVT7Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMfqyY%2FbtsGfJii074%2FfBuasUJX4Pbta1KQDVT7Q0%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;600&quot; height=&quot;330&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;815&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zricd/btsGePpLMat/q25phk6MIaww6sKBNp6j3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zricd/btsGePpLMat/q25phk6MIaww6sKBNp6j3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zricd/btsGePpLMat/q25phk6MIaww6sKBNp6j3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZricd%2FbtsGePpLMat%2Fq25phk6MIaww6sKBNp6j3k%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;600&quot; height=&quot;369&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;617&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;3. Step 2: 공유기에서 PC로 연결&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 공유기로 들어온 신호를 방금 확인한 PC(192.168.45.200)로 보내주어야 합니다. 공유기 관리 페이지 접속이 필요합니다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관리 페이지 접속:&lt;/b&gt; 웹 브라우저 주소창에 &lt;code&gt;192.168.x.1&lt;/code&gt;(기본 게이트웨이)을 입력합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;1058&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyqKpp/btsGfLmRAKi/pHiyxRSaij6zUmK3jsEvD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyqKpp/btsGfLmRAKi/pHiyxRSaij6zUmK3jsEvD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyqKpp/btsGfLmRAKi/pHiyxRSaij6zUmK3jsEvD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyqKpp%2FbtsGfLmRAKi%2FpHiyxRSaij6zUmK3jsEvD1%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;600&quot; height=&quot;417&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;1058&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
    &lt;b&gt;SK 브로드밴드 기준 로그인 정보:&lt;/b&gt;&lt;br&gt;
    - ID: admin&lt;br&gt;
    - PW: 유선 MAC 주소 뒤 6자리 + &lt;span style=&quot;color: #ee2323;&quot;&gt;_admin&lt;/span&gt; (예: 123A12_admin)
&lt;/blockquote&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1765&quot; data-origin-height=&quot;899&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dybT5t/btsGcO62iuf/9iRk2FGKvkhAAMlcfYBKk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dybT5t/btsGcO62iuf/9iRk2FGKvkhAAMlcfYBKk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dybT5t/btsGcO62iuf/9iRk2FGKvkhAAMlcfYBKk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdybT5t%2FbtsGcO62iuf%2F9iRk2FGKvkhAAMlcfYBKk0%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;1765&quot; height=&quot;899&quot; data-origin-width=&quot;1765&quot; data-origin-height=&quot;899&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공유기의 &lt;b&gt;[포트 포워드]&lt;/b&gt; 메뉴에서 외부 3200 포트로 들어오는 신호의 목적지를 내 PC IP로 지정해 줍니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;4. Step 3: 모뎀에서 공유기로 연결&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 외부에서 가장 먼저 만나는 장비인 '모뎀'의 설정을 변경합니다. 공유기 관리 화면에서 확인한 &lt;b&gt;WAN IP 주소&lt;/b&gt;(공유기가 모뎀으로부터 받은 IP)가 목적지가 됩니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1592&quot; data-origin-height=&quot;837&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mjcKC/btsGfgtSWr1/tWg8w9fUAupb9g0HWYaki0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mjcKC/btsGfgtSWr1/tWg8w9fUAupb9g0HWYaki0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mjcKC/btsGfgtSWr1/tWg8w9fUAupb9g0HWYaki0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmjcKC%2FbtsGfgtSWr1%2FtWg8w9fUAupb9g0HWYaki0%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;600&quot; height=&quot;315&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1592&quot; data-origin-height=&quot;837&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모뎀 관리 페이지(예: 192.168.75.1)에 접속하여 포트 포워딩을 수행합니다. 목적지 IP는 방금 확인한 &lt;b&gt;공유기의 WAN IP&lt;/b&gt;로 설정합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mv56y/btsGe6Y9Zhc/JI6hMLbKQdqiUdKZt0sZWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mv56y/btsGe6Y9Zhc/JI6hMLbKQdqiUdKZt0sZWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mv56y/btsGe6Y9Zhc/JI6hMLbKQdqiUdKZt0sZWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmv56y%2FbtsGe6Y9Zhc%2FJI6hMLbKQdqiUdKZt0sZWK%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;600&quot; height=&quot;278&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;737&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;5. 설정 확인: 포트 오픈 테스트&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 설정이 끝났다면 외부에서 실제로 대문이 열렸는지 확인해 봐야 합니다. 서버(가상 머신)를 기동한 상태에서 아래 사이트를 이용하세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
    &lt;li&gt;&lt;a href=&quot;https://canyouseeme.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CanYouSeeMe.org (포트 체크 사이트)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;공인 IP와 포트 번호 &lt;b&gt;3200&lt;/b&gt;을 입력하여 'Success'가 뜨는지 확인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dk8fBQ/btsGfNkIGui/qkBbkz2wjIhvhe9KdRp780/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dk8fBQ/btsGfNkIGui/qkBbkz2wjIhvhe9KdRp780/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dk8fBQ/btsGfNkIGui/qkBbkz2wjIhvhe9KdRp780/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdk8fBQ%2FbtsGfNkIGui%2FqkBbkz2wjIhvhe9KdRp780%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;500&quot; height=&quot;322&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;6. SAP Logon 정보 변경 및 접속&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공했다면 이제 외부 노트북의 SAP GUI에서 접속 정보를 수정합니다. 애플리케이션 서버 주소에 127.0.0.1 대신 &lt;b&gt;나의 공인 IP&lt;/b&gt;를 입력하면 외부에서도 집 서버로 로그인이 가능해집니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;968&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MCujo/btsGc5U6urC/2FEcZsvAeAHXnCjuegKcBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MCujo/btsGc5U6urC/2FEcZsvAeAHXnCjuegKcBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MCujo/btsGc5U6urC/2FEcZsvAeAHXnCjuegKcBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMCujo%2FbtsGc5U6urC%2F2FEcZsvAeAHXnCjuegKcBK%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;600&quot; height=&quot;613&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;968&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
    &lt;b&gt;⚠️ 보안 주의사항:&lt;/b&gt; 포트 개방 후에는 외부로부터의 공격에 노출될 수 있습니다. 반드시 공유기와 모뎀의 관리자 비밀번호를 복잡하게 변경하시고, 사용하지 않을 때는 서버나 포트 포워딩 설정을 꺼두시는 것을 권장합니다.
&lt;/blockquote&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 6주간의 SAP ABAP 환경 구축 시리즈를 모두 마칩니다. 이제 언제 어디서나 나만의 SAP 서버에서 열정적으로 코딩하시길 응원합니다! 감사합니다.&lt;/p&gt;</description>
      <category>SAP/ABAP 무료서버 설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/29</guid>
      <comments>https://fiveoceans.tistory.com/29#entry29comment</comments>
      <pubDate>Sat, 30 Mar 2024 14:24:53 +0900</pubDate>
    </item>
    <item>
      <title>SAP ABAP 무료 개발 서버 - (5) 라이센스 세팅 및 재발급</title>
      <link>https://fiveoceans.tistory.com/25</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: SAP 라이선스 영구 사용을 위한 갱신 가이드&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 이번 게시글을 마지막으로 개인용 ABAP 실습 환경 구축이 모두 완료됩니다. 고생 많으셨습니다! 하지만 한 가지 기억해야 할 점이 있습니다. 우리가 설치한 SAP Developer Edition은 &lt;b&gt;기본적으로 3개월(90일)의 라이선스 유효기간&lt;/b&gt;을 가집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 3개월마다 라이선스를 새로 발급받아 갱신해 주어야 서버를 계속 사용할 수 있습니다. 이번 포스팅에서는 최초 라이선스 등록 방법부터, 만료 시 발생하는 시스템 번호 불일치 오류 해결법까지 상세히 다루어 보겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;1. 신규 라이선스 키 발급을 위한 정보 확인&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이선스를 발급받기 위해서는 설치된 서버 고유의 &lt;b&gt;Hardware Key&lt;/b&gt; 정보가 필요합니다. 이를 확인하기 위해 먼저 시스템 관리자 계정으로 로그인해야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 시스템 관리자(sap*) 로그인 정보&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이선스 관리를 위해 아래의 &lt;b&gt;000 클라이언트&lt;/b&gt; 관리자 계정으로 접속해 주세요.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border-color: #e5e5e5;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead style=&quot;background-color: #f1f3f5;&quot;&gt;
&lt;tr&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;항목&lt;/th&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;입력 정보&lt;/th&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;비고&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;Client&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;000&lt;/td&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;시스템 관리용 클라이언트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;User&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;sap*&lt;/td&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;대소문자 구분 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;Password&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;Down1oad&lt;/td&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;&lt;b&gt;대소문자 구분 필수&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;1005&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w2lya/btsGaaoauLO/Zo7WshP7DPZvQKggCc26U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w2lya/btsGaaoauLO/Zo7WshP7DPZvQKggCc26U1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w2lya/btsGaaoauLO/Zo7WshP7DPZvQKggCc26U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw2lya%2FbtsGaaoauLO%2FZo7WshP7DPZvQKggCc26U1%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;600&quot; height=&quot;394&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;1005&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) Hardware Key 복사 (T-Code: SLICENSE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 후 명령창에 트랜잭션 코드 &lt;b&gt;SLICENSE&lt;/b&gt;를 입력합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;1059&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd1MVy/btsGcKhhUOs/EsKMpwROmEVVSgYLl7Kj80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd1MVy/btsGcKhhUOs/EsKMpwROmEVVSgYLl7Kj80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd1MVy/btsGcKhhUOs/EsKMpwROmEVVSgYLl7Kj80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd1MVy%2FbtsGcKhhUOs%2FEsKMpwROmEVVSgYLl7Kj80%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;600&quot; height=&quot;416&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;1059&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면에 표시되는 &lt;b&gt;Hardware Key&lt;/b&gt; 값을 복사합니다. 이 키는 라이선스 발급 사이트에서 내 서버를 식별하는 유일한 정보입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;1057&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bESzYD/btsF9x5mX1J/KFVxm1t4CrunfKkzKkkViK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bESzYD/btsF9x5mX1J/KFVxm1t4CrunfKkzKkkViK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bESzYD/btsF9x5mX1J/KFVxm1t4CrunfKkzKkkViK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbESzYD%2FbtsF9x5mX1J%2FKFVxm1t4CrunfKkzKkkViK%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;600&quot; height=&quot;416&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;1057&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;2. SAP 공식 사이트에서 라이선스 키 다운로드&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 복사한 키를 가지고 &lt;a style=&quot;color: #0070d1; text-decoration: underline;&quot; href=&quot;https://go.support.sap.com/minisap/#/minisap&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;SAP License Key 발급 페이지&lt;/b&gt;&lt;/a&gt;로 이동합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;대상 시스템 선택 및 정보 입력&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목록에서 &lt;b&gt;NPL - SAP NetWeaver 7.x (Sybase ASE)&lt;/b&gt;를 선택해 주세요. 우리가 설치한 7.52 버전이 이 항목에 해당합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;1009&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjIZdc/btsF9EJ6WNU/yVuF0D3suzdPUUxIyBh2kK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjIZdc/btsF9EJ6WNU/yVuF0D3suzdPUUxIyBh2kK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjIZdc/btsF9EJ6WNU/yVuF0D3suzdPUUxIyBh2kK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjIZdc%2FbtsF9EJ6WNU%2FyVuF0D3suzdPUUxIyBh2kK%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;600&quot; height=&quot;425&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;1009&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름과 이메일 등 기본 인적사항을 적고, 마지막 칸에 SLICENSE에서 복사한 Hardware Key를 붙여넣은 뒤 동의 버튼을 누르면 &lt;b&gt;NPL.txt&lt;/b&gt; 파일이 자동으로 다운로드됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;3. 실습용 계정(Developer) 접속 및 라이선스 적용&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이선스 파일이 준비되었다면, 실제 우리가 개발 실습을 진행할 &lt;b&gt;001 클라이언트&lt;/b&gt;의 &lt;b&gt;Developer&lt;/b&gt; 계정으로 접속합니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; border-color: #e5e5e5;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead style=&quot;background-color: #f1f3f5;&quot;&gt;
&lt;tr&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;항목&lt;/th&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;입력 정보&lt;/th&gt;
&lt;th style=&quot;padding: 10px;&quot;&gt;비고&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;Client&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;001&lt;/td&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;실제 개발용 클라이언트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;User&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;Developer&lt;/td&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;ABAP 개발 권한 보유 계정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;&lt;b&gt;Password&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; text-align: center;&quot;&gt;Down1oad&lt;/td&gt;
&lt;td style=&quot;padding: 10px;&quot;&gt;&lt;b&gt;대소문자 구분 필수&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1528&quot; data-origin-height=&quot;1067&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8XTvM/btsF92qfdgX/ZoZe0JiGzDsE94jLkKGKsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8XTvM/btsF92qfdgX/ZoZe0JiGzDsE94jLkKGKsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8XTvM/btsF92qfdgX/ZoZe0JiGzDsE94jLkKGKsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8XTvM%2FbtsF92qfdgX%2FZoZe0JiGzDsE94jLkKGKsk%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;600&quot; height=&quot;419&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1528&quot; data-origin-height=&quot;1067&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1736&quot; data-origin-height=&quot;1007&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVT1vT/btsGcNkJHVz/oWO9AfkC9vpe8VQ908ROPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVT1vT/btsGcNkJHVz/oWO9AfkC9vpe8VQ908ROPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVT1vT/btsGcNkJHVz/oWO9AfkC9vpe8VQ908ROPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVT1vT%2FbtsGcNkJHVz%2FoWO9AfkC9vpe8VQ908ROPk%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;600&quot; height=&quot;348&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1736&quot; data-origin-height=&quot;1007&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 후 다시 &lt;b&gt;SLICENSE&lt;/b&gt;를 실행하고 상단의 &lt;b&gt;'Install'&lt;/b&gt; 버튼을 눌러 다운로드받은 &lt;code&gt;NPL.txt&lt;/code&gt; 파일을 선택해 주면 설치가 완료됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;4. 심화: 라이선스 갱신 시 오류 해결 (System Number Mismatch)&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이선스가 만료되어 재발급을 진행하다 보면 가끔 &lt;b&gt;&quot;System number mismatch&quot;&lt;/b&gt; 오류가 발생하며 등록이 되지 않을 때가 있습니다. 이는 라이선스 파일 내의 시스템 번호와 현재 설치된 서버의 정보가 꼬였을 때 나타나는 현상입니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;에러 메시지 예시:&lt;/b&gt;&lt;br /&gt;&quot;This system's system number is '000000000800901360', but there is a license key for system number '000000000800944675' in the file.&quot;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;258&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coU6ob/btsJOkzNz7F/L9KSfyQnmLi3PeueuvGX2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coU6ob/btsJOkzNz7F/L9KSfyQnmLi3PeueuvGX2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coU6ob/btsJOkzNz7F/L9KSfyQnmLi3PeueuvGX2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoU6ob%2FbtsJOkzNz7F%2FL9KSfyQnmLi3PeueuvGX2k%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;526&quot; height=&quot;258&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;258&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결 방법: NPL.txt 수동 수정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 오류는 메모장만 있으면 아주 간단하게 해결할 수 있습니다.&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;NPL.txt&lt;/b&gt; 파일을 메모장으로 엽니다.&lt;/li&gt;
&lt;li&gt;파일 내용 중 &lt;code&gt;SYSTEM-NR=...&lt;/code&gt; 뒤의 숫자를 오류 메시지에 나타난 &lt;b&gt;현재 시스템 번호&lt;/b&gt;(위 예시의 경우 000000000800901360)로 수정합니다.&lt;/li&gt;
&lt;li&gt;저장 후 다시 &lt;b&gt;SLICENSE&lt;/b&gt;에서 Install을 진행하면 정상적으로 등록됩니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcUz99/btsJOmEchff/0WnQdO9CszmwwGgiuVk4nk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcUz99/btsJOmEchff/0WnQdO9CszmwwGgiuVk4nk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcUz99/btsJOmEchff/0WnQdO9CszmwwGgiuVk4nk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcUz99%2FbtsJOmEchff%2F0WnQdO9CszmwwGgiuVk4nk%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;600&quot; height=&quot;212&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이로써 SAP ABAP 실습 환경 구축의 모든 과정이 끝났습니다. 이제 성공적으로 갱신된 라이선스와 함께 마음껏 ABAP 코딩의 세계를 탐험하시기 바랍니다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;700&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HLv0r/btsJM30q5f7/LEKAL9cr7m1VyLopAXSokk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HLv0r/btsJM30q5f7/LEKAL9cr7m1VyLopAXSokk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HLv0r/btsJM30q5f7/LEKAL9cr7m1VyLopAXSokk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHLv0r%2FbtsJM30q5f7%2FLEKAL9cr7m1VyLopAXSokk%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;600&quot; height=&quot;506&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;700&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스팅부터는 실제 &lt;b&gt;ABAP 구문 실습과 프로젝트 개발 노하우&lt;/b&gt;를 하나씩 공유해 드릴 예정입니다. 구축 과정에서 궁금한 점이나 막히는 부분이 있다면 언제든 댓글로 남겨주세요. 감사합니다!&lt;/p&gt;</description>
      <category>SAP/ABAP 무료서버 설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/25</guid>
      <comments>https://fiveoceans.tistory.com/25#entry25comment</comments>
      <pubDate>Thu, 28 Mar 2024 22:29:55 +0900</pubDate>
    </item>
    <item>
      <title>SAP ABAP 무료 개발 서버 - (3) SAP NetWeaver 설치</title>
      <link>https://fiveoceans.tistory.com/20</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
    &lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;
        &lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: SAP ABAP 7.52 본격 설치 및 트러블슈팅&lt;/span&gt;
    &lt;/p&gt;
    &lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
    &lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 본격적인 &lt;b&gt;SAP NetWeaver AS ABAP 설치&lt;/b&gt; 단계에 진입했습니다. 이번 포스팅은 리눅스 커맨드 입력이 많고 설치 과정 중 예상치 못한 라이선스 오류가 발생할 수 있어, 어느 때보다 집중력이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;독자분들이 한 번에 성공하실 수 있도록, 각 단계별 이미지 아래에 실제 사용되는 커맨드를 꼼꼼히 정리해 두었습니다. 그대로 복사하여 붙여넣으시면 큰 어려움 없이 따라오실 수 있습니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;1. ABAP Developer Edition 설치 파일 압축 해제&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 윈도우 환경에서 다운로드받은 11개의 분할 압축 파일을 해제해야 합니다. 첫 번째 파일(Part01)만 압축 해제하면 나머지 파일들도 자동으로 연결되어 풀립니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXXJ9p/btsF0muiySq/QbBdcA7jkANzV7R3dumoK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXXJ9p/btsF0muiySq/QbBdcA7jkANzV7R3dumoK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXXJ9p/btsF0muiySq/QbBdcA7jkANzV7R3dumoK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXXJ9p%2FbtsF0muiySq%2FQbBdcA7jkANzV7R3dumoK0%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;600&quot; height=&quot;264&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1jKfC/btsF2wc69a4/4JkmZg2KJ7mFlMrsKmpTL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1jKfC/btsF2wc69a4/4JkmZg2KJ7mFlMrsKmpTL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1jKfC/btsF2wc69a4/4JkmZg2KJ7mFlMrsKmpTL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1jKfC%2FbtsF2wc69a4%2F4JkmZg2KJ7mFlMrsKmpTL0%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;600&quot; height=&quot;222&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;압축이 완료되면 수많은 설치 스크립트와 데이터 파일이 나타납니다. 이 파일들은 나중에 Virtual Box의 '공유 폴더' 기능을 통해 리눅스 서버로 전달될 예정입니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;2. 리눅스 환경 설정: IP 및 호스트네임 세팅&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP 서버는 네트워크 이름(Hostname) 기반으로 동작하므로, 리눅스 시스템 내에서 IP와 호스트네임을 일치시키는 작업이 필수적입니다.&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;(1) 가상 머신(VM) 내부 IP 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널을 열고 현재 할당된 가상 IP 주소를 먼저 확인해야 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blCb3W/btsFZL2gyOa/aXUoPn0wRI6zScL2aaGlbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blCb3W/btsFZL2gyOa/aXUoPn0wRI6zScL2aaGlbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blCb3W/btsFZL2gyOa/aXUoPn0wRI6zScL2aaGlbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblCb3W%2FbtsFZL2gyOa%2FaXUoPn0wRI6zScL2aaGlbK%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfakQ5/btsFYFVZxvE/8KWShmFjXcCZjis8MPBU2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfakQ5/btsFYFVZxvE/8KWShmFjXcCZjis8MPBU2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfakQ5/btsFYFVZxvE/8KWShmFjXcCZjis8MPBU2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfakQ5%2FbtsFYFVZxvE%2F8KWShmFjXcCZjis8MPBU2K%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px;&quot;&gt;&lt;b&gt;ip addr&lt;/b&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 가상 머신의 기본 내부 IP는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;10.0.2.15&lt;/b&gt;&lt;/span&gt;로 설정되어 있을 것입니다. 이 주소를 기억해 두세요.&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;(2) Hostname 변경 및 적용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP NetWeaver Developer Edition은 기본 호스트네임으로 &lt;b&gt;vhcalnplci&lt;/b&gt;를 사용하도록 설계되어 있습니다. 이를 위해 &lt;code&gt;/etc/hosts&lt;/code&gt;와 &lt;code&gt;/etc/hostname&lt;/code&gt; 파일을 수정합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cw1Vmk/btsFYLBNZr8/2umcKQzwIkFLPrU9WftKO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cw1Vmk/btsFYLBNZr8/2umcKQzwIkFLPrU9WftKO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cw1Vmk/btsFYLBNZr8/2umcKQzwIkFLPrU9WftKO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw1Vmk%2FbtsFYLBNZr8%2F2umcKQzwIkFLPrU9WftKO0%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px;&quot;&gt;&lt;b&gt;sudo nano /etc/hosts&lt;/b&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;621&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YEzHh/btsFY9igHdu/WOInhVV3P5tl5ozIyjLWdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YEzHh/btsFY9igHdu/WOInhVV3P5tl5ozIyjLWdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YEzHh/btsFY9igHdu/WOInhVV3P5tl5ozIyjLWdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYEzHh%2FbtsFY9igHdu%2FWOInhVV3P5tl5ozIyjLWdk%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;600&quot; height=&quot;466&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;621&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 하단에 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;10.0.2.15 vhcalnplci vhcalnplci.dummy.nodomain&lt;/span&gt;&lt;/b&gt;을 추가하고 저장합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;622&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1w672/btsFZOdDMlM/HpIlYp2HBuZB2Dl6i3KW1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1w672/btsFZOdDMlM/HpIlYp2HBuZB2Dl6i3KW1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1w672/btsFZOdDMlM/HpIlYp2HBuZB2Dl6i3KW1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1w672%2FbtsFZOdDMlM%2FHpIlYp2HBuZB2Dl6i3KW1k%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;622&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byTldt/btsFYFVZBAj/aXnbdCWRK5Pp1KApznXdu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byTldt/btsFYFVZBAj/aXnbdCWRK5Pp1KApznXdu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byTldt/btsFYFVZBAj/aXnbdCWRK5Pp1KApznXdu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyTldt%2FbtsFYFVZBAj%2FaXnbdCWRK5Pp1KApznXdu1%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px;&quot;&gt;&lt;b&gt;sudo nano /etc/hostname&lt;/b&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHTYVa/btsFYrjkSta/TgJzEybHVDnl9knQKAet91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHTYVa/btsFYrjkSta/TgJzEybHVDnl9knQKAet91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHTYVa/btsFYrjkSta/TgJzEybHVDnl9knQKAet91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHTYVa%2FbtsFYrjkSta%2FTgJzEybHVDnl9knQKAet91%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 이름을 지우고 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;vhcalnplci&lt;/span&gt;&lt;/b&gt;라고만 적어준 뒤 저장합니다.&lt;/p&gt;

&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
    &lt;b&gt;✅ 필수 과정:&lt;/b&gt; 변경된 호스트네임을 적용하기 위해 반드시 &lt;b&gt;리눅스를 재시작(Reboot)&lt;/b&gt;해 주세요. 재시작 후 터미널 첫머리에 사용자명@vhcalnplci라고 뜨면 성공입니다.
&lt;/blockquote&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PkuLE/btsFZULxMau/WbjTQDF9N9A5HQHv8K8ac1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PkuLE/btsFZULxMau/WbjTQDF9N9A5HQHv8K8ac1/img.png&quot; data-alt=&quot;hostname 을 적용하기 위해 재시작해주세요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PkuLE/btsFZULxMau/WbjTQDF9N9A5HQHv8K8ac1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPkuLE%2FbtsFZULxMau%2FWbjTQDF9N9A5HQHv8K8ac1%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;600&quot; height=&quot;465&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;636&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;hostname 을 적용하기 위해 재시작해주세요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mpKN5/btsFYEQkAlf/0BKYHiwETtfLYbIFKcwF30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mpKN5/btsFYEQkAlf/0BKYHiwETtfLYbIFKcwF30/img.png&quot; data-alt=&quot;terminal에 들어가 보시면 hostname이 변경된 것을 확인할 수 있어요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mpKN5/btsFYEQkAlf/0BKYHiwETtfLYbIFKcwF30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmpKN5%2FbtsFYEQkAlf%2F0BKYHiwETtfLYbIFKcwF30%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;600&quot; height=&quot;178&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;245&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;terminal에 들어가 보시면 hostname이 변경된 것을 확인할 수 있어요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;3. 공유 폴더 설정 및 설치 스크립트 실행&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 윈도우에 있는 설치 파일을 리눅스 가상 머신으로 가져와야 합니다. Virtual Box 설정에서 '공유 폴더'를 추가하고 '자동 마운트'를 체크합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/191Ow/btsFXHUtgZA/PgksT15De1sPoONCEAyDTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/191Ow/btsFXHUtgZA/PgksT15De1sPoONCEAyDTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/191Ow/btsFXHUtgZA/PgksT15De1sPoONCEAyDTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F191Ow%2FbtsFXHUtgZA%2FPgksT15De1sPoONCEAyDTk%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;600&quot; height=&quot;477&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;624&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xw8Sn/btsF0bTYcFS/ziM6rtPJXmkSO0HEG0FLk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xw8Sn/btsF0bTYcFS/ziM6rtPJXmkSO0HEG0FLk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xw8Sn/btsF0bTYcFS/ziM6rtPJXmkSO0HEG0FLk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxw8Sn%2FbtsF0bTYcFS%2FziM6rtPJXmkSO0HEG0FLk0%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;600&quot; height=&quot;466&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;624&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buupcr/btsGbFG4XbF/alqFp9uh0ahslfyCCTzRQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buupcr/btsGbFG4XbF/alqFp9uh0ahslfyCCTzRQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buupcr/btsGbFG4XbF/alqFp9uh0ahslfyCCTzRQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbuupcr%2FbtsGbFG4XbF%2FalqFp9uh0ahslfyCCTzRQk%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;600&quot; height=&quot;337&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;532&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cae0W4/btsFXOTLSL8/TbeYvKfLGzdM5qzrb9MbH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cae0W4/btsFXOTLSL8/TbeYvKfLGzdM5qzrb9MbH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cae0W4/btsFXOTLSL8/TbeYvKfLGzdM5qzrb9MbH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcae0W4%2FbtsFXOTLSL8%2FTbeYvKfLGzdM5qzrb9MbH0%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;600&quot; height=&quot;467&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px;&quot;&gt;
&lt;b&gt;sudo -i&lt;/b&gt;          &lt;b&gt;sapdev1!&lt;/b&gt;         &lt;b&gt;cd /media&lt;/b&gt;        &lt;b&gt;ls&lt;/b&gt;               &lt;b&gt;cd sf_SAP_/&lt;/b&gt;      &lt;b&gt;chmod +x install.sh&lt;/b&gt; &lt;b&gt;./install.sh&lt;/b&gt;     &lt;/pre&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;4. 트러블슈팅: 라이선스 만료(License Expired) 오류 해결&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 중 &lt;b&gt;'Sybase ASE License'&lt;/b&gt; 관련 에러 메시지가 뜨며 중단되는 경우가 많습니다. 이는 설치 파일에 포함된 라이선스 기간이 만료되었기 때문입니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UQeT6/btsFX4BTpBt/T33KMEpkqtAS1SIu5fhMEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UQeT6/btsFX4BTpBt/T33KMEpkqtAS1SIu5fhMEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UQeT6/btsFX4BTpBt/T33KMEpkqtAS1SIu5fhMEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUQeT6%2FbtsFX4BTpBt%2FT33KMEpkqtAS1SIu5fhMEk%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;600&quot; height=&quot;464&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;620&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/olzqY/btsF1SnlhXm/1R73Vyuny6oQ6ksiyTrvwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/olzqY/btsF1SnlhXm/1R73Vyuny6oQ6ksiyTrvwk/img.png&quot; data-alt=&quot;SYBASE_ASE_ 라이선스 문구를 찾아 교체합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/olzqY/btsF1SnlhXm/1R73Vyuny6oQ6ksiyTrvwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FolzqY%2FbtsF1SnlhXm%2F1R73Vyuny6oQ6ksiyTrvwk%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;600&quot; height=&quot;458&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SYBASE_ASE_ 라이선스 문구를 찾아 교체합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이선스 파일을 열어 기존 내용을 지우고, 1편에서 받은 최신 라이선스 값을 붙여넣은 뒤 저장합니다. 이후 다시 터미널에서 설치 명령어를 입력하면 정상적으로 진행됩니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;5. 설치 완료: NPL Successful&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상당한 시간이 흐른 뒤(PC 사양에 따라 1~2시간 소요), 터미널에 &lt;b&gt;&lt;span style=&quot;color: #12b886;&quot;&gt;&quot;Installation of NPL successful&quot;&lt;/span&gt;&lt;/b&gt;이라는 문구가 뜨면 모든 서버 설치가 끝난 것입니다!&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;631&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dk4IVx/btsFYMUZd1q/OmWrjkZknzhCmkqScQOxK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dk4IVx/btsFYMUZd1q/OmWrjkZknzhCmkqScQOxK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dk4IVx/btsFYMUZd1q/OmWrjkZknzhCmkqScQOxK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdk4IVx%2FbtsFYMUZd1q%2FOmWrjkZknzhCmkqScQOxK1%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;600&quot; height=&quot;459&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;631&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 리눅스 설치 시 사용했던 OpenSUSE 가상 드라이브(ISO 파일)를 '꺼내기' 해주시면 깔끔하게 마무리됩니다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;고생 많으셨습니다! 다음 포스팅(4편)에서는 드디어 &lt;b&gt;SAP GUI를 설치하고, 설치된 서버에 로그인하여 ABAP 실습을 시작하는 방법&lt;/b&gt;을 알아보겠습니다.&lt;/p&gt;</description>
      <category>SAP/ABAP 무료서버 설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/20</guid>
      <comments>https://fiveoceans.tistory.com/20#entry20comment</comments>
      <pubDate>Thu, 21 Mar 2024 22:50:20 +0900</pubDate>
    </item>
    <item>
      <title>SAP ABAP 무료 개발 서버 - (2) Virtual Box / Open suse 15.3 설치</title>
      <link>https://fiveoceans.tistory.com/19</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
    &lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;
        &lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: 가상 머신 생성 및 리눅스(OS) 설치 가이드&lt;/span&gt;
    &lt;/p&gt;
    &lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
    &lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;지난 포스팅에서 SAP ABAP 서버 설치를 위한 준비물을 모두 확보하셨나요? 이번 2편에서는 본격적으로 &lt;b&gt;가상 머신(Virtual Machine)&lt;/b&gt;을 생성하고, 그 위에 리눅스 운영체제인 &lt;b&gt;OpenSUSE 15.3&lt;/b&gt;을 설치하는 과정을 다루겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 머신 설정은 서버의 성능과 직결되므로, 단순히 클릭만 하는 것이 아니라 각 설정값이 가지는 의미를 이해하는 것이 중요합니다. 특히 SAP 서버는 메모리와 CPU 자원을 많이 소모하기 때문에 최적의 할당량을 맞추는 것이 핵심입니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;1. Virtual Box 프로그램 설치&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 먼저 가상화 소프트웨어인 &lt;b&gt;Oracle VM VirtualBox&lt;/b&gt;를 설치합니다. 이 프로그램은 우리 윈도우 환경 위에 별도의 독립된 컴퓨터(가상 머신)를 만들어주는 역할을 합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Virtual box install.png&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;1175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbKtrg/btsFXH6Qt45/VtIcwZQU1gsn23V49PLPhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbKtrg/btsFXH6Qt45/VtIcwZQU1gsn23V49PLPhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbKtrg/btsFXH6Qt45/VtIcwZQU1gsn23V49PLPhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbKtrg%2FbtsFXH6Qt45%2FVtIcwZQU1gsn23V49PLPhK%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;671&quot; height=&quot;797&quot; data-filename=&quot;Virtual box install.png&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;1175&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 과정은 매우 직관적입니다. 대부분의 경우 기본 설정값을 유지한 채 &lt;b&gt;'Next'&lt;/b&gt; 버튼을 눌러 진행하면 완료됩니다. 설치 중간에 네트워크 인터페이스가 잠시 끊길 수 있다는 안내가 나오는데, 이는 가상 네트워크 어댑터를 설치하는 과정이므로 안심하고 진행하셔도 됩니다.&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;2. 가상 머신(VM) 생성 및 최적화 설정&lt;/span&gt;&lt;/h2&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;(1) SAP NetWeaver 시스템 요구사항 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 머신을 만들기 전, SAP에서 권장하는 최소 사양을 반드시 확인해야 합니다. 사양이 부족할 경우 설치 도중 프로세스가 멈추거나 구동 속도가 매우 느려질 수 있습니다.&lt;/p&gt;

&lt;table style=&quot;border-collapse: collapse; width: 100%; border-color: #e5e5e5;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
    &lt;thead style=&quot;background-color: #f1f3f5;&quot;&gt;
        &lt;tr&gt;
            &lt;th style=&quot;width: 30%; padding: 10px;&quot;&gt;항목&lt;/th&gt;
            &lt;th style=&quot;width: 70%; padding: 10px;&quot;&gt;최소 권장 사양&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;&lt;b&gt;Processor&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;x86_64 기반 하드웨어 (최소 2 Core 이상 권장)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;&lt;b&gt;RAM&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;최소 4GB (실습 편의를 위해 8GB 이상 강력 권장)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;&lt;b&gt;Disk Space&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;서버 설치용 약 100GB / 클라이언트용 약 2GB&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;&lt;b&gt;Swap Space&lt;/b&gt;&lt;/td&gt;
            &lt;td style=&quot;padding: 10px;&quot;&gt;약 8GB 확보 권장&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;(2) 가상 머신 생성 단계별 가이드&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 설치된 Virtual Box를 실행하여 실제 서버 역할을 할 가상 머신을 만들어 보겠습니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;553&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1IgQd/btsFYs9b58W/Sb8tqDTQ5w5Ei3adGqERh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1IgQd/btsFYs9b58W/Sb8tqDTQ5w5Ei3adGqERh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1IgQd/btsFYs9b58W/Sb8tqDTQ5w5Ei3adGqERh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1IgQd%2FbtsFYs9b58W%2FSb8tqDTQ5w5Ei3adGqERh0%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;600&quot; height=&quot;347&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;553&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 1:&lt;/b&gt; 상단의 '새로 만들기' 버튼을 클릭합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/56avE/btsFWL9QFn4/c0vaQFiPmz44MElOpeouV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/56avE/btsFWL9QFn4/c0vaQFiPmz44MElOpeouV1/img.png&quot; data-alt=&quot;이름은 SAP_752 등 자유롭게 설정하세요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/56avE/btsFWL9QFn4/c0vaQFiPmz44MElOpeouV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F56avE%2FbtsFWL9QFn4%2Fc0vaQFiPmz44MElOpeouV1%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;600&quot; height=&quot;282&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이름은 SAP_752 등 자유롭게 설정하세요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 2:&lt;/b&gt; 이름은 관리하기 편하도록 'SAP_7.52' 또는 'ABAP_Server' 등으로 입력합니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gpnz9/btsFYpkmlI1/UFKGiNGTkjQg5FS7AunAj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gpnz9/btsFYpkmlI1/UFKGiNGTkjQg5FS7AunAj0/img.png&quot; data-alt=&quot;ISO 이미지 항목에 다운로드 받은 OpenSUSE 15.3 파일을 선택합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gpnz9/btsFYpkmlI1/UFKGiNGTkjQg5FS7AunAj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGpnz9%2FbtsFYpkmlI1%2FUFKGiNGTkjQg5FS7AunAj0%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;600&quot; height=&quot;335&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ISO 이미지 항목에 다운로드 받은 OpenSUSE 15.3 파일을 선택합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 3:&lt;/b&gt; 가장 중요한 부분입니다. 1편에서 다운로드한 &lt;b&gt;OpenSUSE 15.3 ISO 파일&lt;/b&gt;을 선택해 주세요. 이를 통해 VM이 부팅될 때 운영체제 설치 화면으로 진입하게 됩니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3R0h6/btsFXPYgMj0/Y5S37esmbj6heaRK7xkqJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3R0h6/btsFXPYgMj0/Y5S37esmbj6heaRK7xkqJK/img.png&quot; data-alt=&quot;Memory: 8096MB / Processors: 4 (본인 PC 사양에 맞춰 조절 가능)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3R0h6/btsFXPYgMj0/Y5S37esmbj6heaRK7xkqJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3R0h6%2FbtsFXPYgMj0%2FY5S37esmbj6heaRK7xkqJK%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;600&quot; height=&quot;282&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Memory: 8096MB / Processors: 4 (본인 PC 사양에 맞춰 조절 가능)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 4:&lt;/b&gt; 하드웨어 할당입니다. 메모리는 최소 8GB(8192MB) 이상, 프로세서는 2개 이상(저는 4개로 진행)을 권장합니다. 본인의 호스트 PC 사양이 허락하는 범위 내에서 넉넉하게 할당할수록 설치 속도가 빨라집니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TBKFQ/btsFX2ps60q/9HmoYiiv3iko903JDshumk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TBKFQ/btsFX2ps60q/9HmoYiiv3iko903JDshumk/img.png&quot; data-alt=&quot;가상 디스크 용량은 100GB로 설정합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TBKFQ/btsFX2ps60q/9HmoYiiv3iko903JDshumk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTBKFQ%2FbtsFX2ps60q%2F9HmoYiiv3iko903JDshumk%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;600&quot; height=&quot;280&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;377&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;가상 디스크 용량은 100GB로 설정합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step 5:&lt;/b&gt; 하드 디스크 용량은 &lt;b&gt;100GB&lt;/b&gt;로 설정합니다. SAP 설치 파일 자체의 용량이 크고, 설치 후 DB 데이터가 쌓이는 것을 고려한 수치입니다.&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;(3) 편리한 운영을 위한 꿀팁 (필수 세팅)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 머신 운영 중 불편함을 줄이기 위해 다음 두 가지 설정은 반드시 미리 하시는 것이 좋습니다.&lt;/p&gt;

&lt;h4 data-ke-size=&quot;size20&quot;&gt;팁 1: 호스트 키(Host Key) 변경&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 머신 안으로 마우스가 갇혔을 때 빠져나오기 위한 키입니다. 기본값인 Right Ctrl은 사용이 불편하므로 &lt;b&gt;Ctrl + Alt&lt;/b&gt; 조합으로 변경해 두시면 훨씬 편리합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;397&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIryWO/btsFVV6avZL/OiC9XX5YyugU2rqOQv5pRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIryWO/btsFVV6avZL/OiC9XX5YyugU2rqOQv5pRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIryWO/btsFVV6avZL/OiC9XX5YyugU2rqOQv5pRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIryWO%2FbtsFVV6avZL%2FOiC9XX5YyugU2rqOQv5pRK%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;600&quot; height=&quot;283&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;397&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;h4 data-ke-size=&quot;size20&quot;&gt;팁 2: 클립보드 공유 및 드래그 앤 드롭 활성화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우에서 복사한 텍스트(예: 복잡한 리눅스 명령어)를 VM에 붙여넣기 위해 '양방향'으로 설정해 주세요. 이 설정이 없으면 모든 명령어를 일일이 타이핑해야 하는 불상사가 생깁니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5nESo/btsFY9P6QXt/2E1NBn3fwR2uCbvE6UzvN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5nESo/btsFY9P6QXt/2E1NBn3fwR2uCbvE6UzvN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5nESo/btsFY9P6QXt/2E1NBn3fwR2uCbvE6UzvN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5nESo%2FbtsFY9P6QXt%2F2E1NBn3fwR2uCbvE6UzvN1%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;600&quot; height=&quot;412&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;3. OpenSUSE 15.3 (리눅스 OS) 설치 과정&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VM 생성이 끝났다면 이제 '시작' 버튼을 눌러 리눅스 설치를 진행합니다. 설치 과정 중 나타나는 복잡한 메뉴들은 아래 스크린샷 순서대로 따라오시면 됩니다.&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r4fFh/btsFVrK37kS/FECCb7RrPmSq7p2jDOfuVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r4fFh/btsFVrK37kS/FECCb7RrPmSq7p2jDOfuVk/img.png&quot; data-alt=&quot;부팅 후 방향키로 'Installation'을 선택하고 엔터를 누릅니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r4fFh/btsFVrK37kS/FECCb7RrPmSq7p2jDOfuVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr4fFh%2FbtsFVrK37kS%2FFECCb7RrPmSq7p2jDOfuVk%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;600&quot; height=&quot;454&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;부팅 후 방향키로 'Installation'을 선택하고 엔터를 누릅니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언어와 키보드 레이아웃을 확인하고, 라이선스 동의 후 설치 유형을 선택합니다. 이후 사용자 계정 생성과 시간대 설정을 마치면 본격적인 파일 복사가 시작됩니다.&lt;/p&gt;

&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
    &lt;b&gt;  현직자 필수 체크 사항: uuidd 패키지 설치&lt;/b&gt;&lt;br&gt;
    SAP 인스턴스는 고유한 ID 생성을 위해 리눅스의 &lt;b&gt;uuidd(Universal Unique ID Daemon)&lt;/b&gt;라는 패키지를 반드시 필요로 합니다. 설치가 완료된 후 터미널을 열어 아래 과정을 반드시 수행해 주세요.
&lt;/blockquote&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JAo9i/btsFXM1wYAn/gocZa3g4XFklntnnYoyzGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JAo9i/btsFXM1wYAn/gocZa3g4XFklntnnYoyzGK/img.png&quot; data-alt=&quot;터미널(Terminal)을 실행하여 아래 명령어를 입력합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JAo9i/btsFXM1wYAn/gocZa3g4XFklntnnYoyzGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJAo9i%2FbtsFXM1wYAn%2FgocZa3g4XFklntnnYoyzGK%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;600&quot; height=&quot;465&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;터미널(Terminal)을 실행하여 아래 명령어를 입력합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;터미널이 열리면 다음 명령어를 순서대로 입력하여 패키지를 설치합니다.&lt;/p&gt;
&lt;pre style=&quot;background-color: #2d2d2d; color: #ffffff; padding: 15px; border-radius: 5px; font-family: 'D2Coding';&quot;&gt;
cd /mnt
sudo zypper in uuidd
&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어 입력 후 비밀번호를 묻는다면 설치 시 설정한 사용자 비밀번호를 입력해 주세요. 설치가 완료되면 `exit`를 입력하여 터미널을 종료합니다. 이 작업이 누락되면 나중에 SAP 서버 구동 시 에러가 발생하므로 잊지 마세요!&lt;/p&gt;

&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;축하드립니다! 이제 SAP ABAP 서버가 가동될 &lt;b&gt;'터전'&lt;/b&gt;인 리눅스 운영체제 세팅까지 마쳤습니다. 대용량 패키지 설치로 고생 많으셨습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스팅(3편)에서는 드디어 &lt;b&gt;리눅스 환경 내에서 SAP 서버 파일을 압축 해제하고 본격적인 인스톨 작업을 시작&lt;/b&gt;하는 과정을 다루겠습니다. 본격적인 삽질(?)이 시작되는 단계이니 기대해 주세요!&lt;/p&gt;</description>
      <category>SAP/ABAP 무료서버 설치</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/19</guid>
      <comments>https://fiveoceans.tistory.com/19#entry19comment</comments>
      <pubDate>Tue, 19 Mar 2024 21:28:35 +0900</pubDate>
    </item>
    <item>
      <title>SAP ABAP 무료 개발 서버 - (1) 설치 파일 다운로드</title>
      <link>https://fiveoceans.tistory.com/18</link>
      <description>&lt;div style=&quot;position: relative; background-color: #fdfdfd; padding: 1.5em; border: 1px solid #e5e5e5; border-radius: 10px; box-shadow: 1px 1px 5px rgba(0,0,0,0.05); margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;position: absolute; top: -1px; right: 20px; width: 30px; height: 47px; background-color: #12b886;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;border-bottom: 2px solid #e5e5e5; font-weight: bold; padding-bottom: 5px;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #12b886; font-size: 1.1em; font-family: 'D2Coding';&quot;&gt;목차: SAP ABAP 실습환경 구축 완벽 가이드&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;position: absolute; top: 17px; right: 20px; width: 0; height: 0; border: 15px solid; border-color: transparent transparent #fdfdfd transparent;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;script src=&quot;./images/jquery.toc.min.js&quot;&gt;&lt;/script&gt;
&lt;ul id=&quot;toc&quot; style=&quot;list-style-type: none; padding-left: 0;&quot; data-ke-list-type=&quot;none&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP 컨설턴트나 개발자라면 누구나 한 번쯤 집에서도 자유롭게 ABAP 코딩을 연습하고 싶다는 생각을 해보셨을 겁니다. 하지만 실제 기업용 SAP 서버를 구축하는 것은 막대한 라이선스 비용과 고사양의 하드웨어가 필요하기 때문에 개인에게는 장벽이 높았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다행히 SAP에서는 개발자들을 위해 &lt;b&gt;SAP NetWeaver AS ABAP Developer Edition 7.52 SP04&lt;/b&gt;라는 트라이얼 버전을 제공하고 있습니다. 이번 포스팅 시리즈에서는 가상 머신을 활용하여 내 컴퓨터 안에 실무와 동일한 ABAP 실습 환경을 구축하는 전체 과정을 A부터 Z까지 상세히 다루어 보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 과정은 총 6단계로 진행되며, 이번 1편에서는 설치에 필요한 핵심 파일들을 다운로드하고 준비하는 단계를 마스터하겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;1. SAP 공식 서버 설치 파일 확보&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP 서버는 보안과 라이선스 관리가 엄격하기 때문에 반드시 공식 개발자 포털을 통해 정상적인 경로로 파일을 다운로드해야 합니다. 불법적인 경로의 파일은 설치 과정에서 무수한 오류를 야기할 수 있으니 주의하시기 바랍니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) SAP 개발자 커뮤니티 계정 생성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 &lt;a style=&quot;color: #12b886; text-decoration: underline;&quot; href=&quot;https://developers.sap.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;SAP Developer Portal&lt;/b&gt;&lt;/a&gt;에 접속합니다. 이 사이트는 전 세계 SAP 개발자들이 정보를 공유하는 곳으로, 가입해 두시면 향후 신기술 습득에도 큰 도움이 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1624&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buy1dV/btsFUshhOTV/Tkb7lT8leY99uojo0lrOT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buy1dV/btsFUshhOTV/Tkb7lT8leY99uojo0lrOT1/img.png&quot; data-alt=&quot;홈페이지 우측 상단의 사람 모양 아이콘을 클릭하여 회원가입 절차를 시작하세요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buy1dV/btsFUshhOTV/Tkb7lT8leY99uojo0lrOT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbuy1dV%2FbtsFUshhOTV%2FTkb7lT8leY99uojo0lrOT1%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;700&quot; height=&quot;200&quot; data-origin-width=&quot;1624&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;홈페이지 우측 상단의 사람 모양 아이콘을 클릭하여 회원가입 절차를 시작하세요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 상단의 프로필 아이콘을 누르면 로그인 창이 나타납니다. 계정이 없다면 'Register'를 선택하여 가입해 주세요. 간단한 영문 성함과 이메일 주소만 있으면 무료로 가입이 가능합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) Trials &amp;amp; Downloads 페이지 활용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인이 완료되었다면 &lt;a style=&quot;color: #12b886; text-decoration: underline;&quot; href=&quot;https://developers.sap.com/trials-downloads.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;Trials and Downloads 섹션&lt;/b&gt;&lt;/a&gt;으로 이동합니다. 수많은 SAP 솔루션 중 우리가 찾는 모델은 'SAP NetWeaver AS ABAP 7.52'입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1233&quot; data-origin-height=&quot;761&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1QkOd/btsFWkjgl5H/6cRKDWSeIwRJ8zABp5F4z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1QkOd/btsFWkjgl5H/6cRKDWSeIwRJ8zABp5F4z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1QkOd/btsFWkjgl5H/6cRKDWSeIwRJ8zABp5F4z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1QkOd%2FbtsFWkjgl5H%2F6cRKDWSeIwRJ8zABp5F4z1%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;700&quot; height=&quot;432&quot; data-origin-width=&quot;1233&quot; data-origin-height=&quot;761&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드해야 할 파일은 &lt;b&gt;총 12개&lt;/b&gt;입니다. 11개의 RAR 분할 압축 파일과 1개의 라이선스 텍스트 파일로 구성되어 있습니다. 이 중 하나라도 누락되면 설치 압축 해제 단계에서 오류가 발생하므로 꼼꼼히 체크하시기 바랍니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;  현직자의 팁: 이메일 수신 대기 시간&lt;/b&gt;&lt;br /&gt;다운로드 버튼을 누른다고 바로 시작되지 않습니다. SAP 시스템에서 승인 메일을 보내주는 방식인데, 이 메일 수신까지 짧게는 몇 시간, 길게는 12시간 이상 소요됩니다. (제 경험상 전날 퇴근 전 신청하고 다음 날 아침에 확인하는 것이 가장 마음 편합니다.)&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/egZHVr/btsFUEpIRnr/vlj0X9kIuxzZPIjKinngpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/egZHVr/btsFUEpIRnr/vlj0X9kIuxzZPIjKinngpk/img.png&quot; data-alt=&quot;이미지처럼 'SAP Software Download'라는 제목의 메일이 도착합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/egZHVr/btsFUEpIRnr/vlj0X9kIuxzZPIjKinngpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FegZHVr%2FbtsFUEpIRnr%2Fvlj0X9kIuxzZPIjKinngpk%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;500&quot; height=&quot;121&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이미지처럼 'SAP Software Download'라는 제목의 메일이 도착합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;2. 리눅스 운영체제(OpenSUSE 15.3) 선정 이유&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAP ABAP 서버는 기본적으로 리눅스 환경에서 구동됩니다. 그중에서도 OpenSUSE는 SAP 개발 환경과 가장 궁합이 잘 맞는 배포판으로 알려져 있습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; background-color: #f1f3f5;&quot;&gt;권장 버전&lt;/td&gt;
&lt;td style=&quot;width: 66.6667%; text-align: center;&quot;&gt;OpenSUSE Leap 15.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; background-color: #f1f3f5;&quot;&gt;중요 사항&lt;/td&gt;
&lt;td style=&quot;width: 66.6667%;&quot;&gt;반드시 15.3 버전을 사용 (15.4 이상은 호환성 문제 발생 가능)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 제가 최신 버전인 15.4로 설치를 진행해 본 결과, 네트워크 커널 설정 부분에서 정체불명의 오류가 발생하여 다시 재설치해야 했던 아픈 기억이 있습니다. 여러분은 저와 같은 시행착오를 겪지 마시고 반드시 &lt;b&gt;15.3 ISO 파일&lt;/b&gt;을 다운로드하시기 바랍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://download.opensuse.org/distribution/leap/15.3/iso/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;[OpenSUSE 공식 다운로드 미러 사이트]&lt;/b&gt;&lt;/a&gt;에서 'DVD-x86_64-Media.iso' 파일을 선택하시면 됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans KR';&quot;&gt;3. 가상머신 환경을 위한 Virtual Box 설치&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 PC의 운영체제(윈도우)를 지우지 않고 리눅스를 설치하기 위해서는 '가상 머신' 프로그램이 필수입니다. 오라클에서 무료로 제공하는 Virtual Box는 가볍고 안정적이며, SAP 연습용 서버를 돌리기에 충분한 기능을 제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsxLE3/btsFSbuKjrR/ciUG2B7Kpx42KxUke4X1rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsxLE3/btsFSbuKjrR/ciUG2B7Kpx42KxUke4X1rK/img.png&quot; data-alt=&quot;VirtualBox 다운로드 페이지에서 'Windows Hosts'를 클릭해 주세요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsxLE3/btsFSbuKjrR/ciUG2B7Kpx42KxUke4X1rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsxLE3%2FbtsFSbuKjrR%2FciUG2B7Kpx42KxUke4X1rK%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;500&quot; height=&quot;200&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;457&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;VirtualBox 다운로드 페이지에서 'Windows Hosts'를 클릭해 주세요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.virtualbox.org/wiki/Downloads&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Virtual Box 공식 사이트&lt;/a&gt;에 접속하여 현재 사용 중인 OS에 맞는 버전을 설치합니다. 대부분 윈도우 사용자이실 테니 'Windows Hosts' 링크를 클릭하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 완료하셨다면 SAP 서버 구축을 위한 모든 재료가 준비되었습니다. 대용량 파일들이 많아 다운로드에 꽤 시간이 걸릴 텐데요, 파일이 모두 준비되는 동안 잠시 휴식을 취하시고 다음 포스팅으로 넘어와 주세요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다음 포스팅 예고:&lt;/b&gt; &quot;Virtual Box 가상 머신 생성 및 리눅스 운영체제 초기 세팅법&quot;&lt;/p&gt;</description>
      <category>SAP/ABAP 무료서버 설치</category>
      <category>ABAP#무료서버#SAP#VirtualBox</category>
      <author>SAP 오대양</author>
      <guid isPermaLink="true">https://fiveoceans.tistory.com/18</guid>
      <comments>https://fiveoceans.tistory.com/18#entry18comment</comments>
      <pubDate>Mon, 18 Mar 2024 21:06:40 +0900</pubDate>
    </item>
  </channel>
</rss>