<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>what is jinpyo?</title>
        <link>https://velog.io/</link>
        <description>꾸준히 계속</description>
        <lastBuildDate>Tue, 03 Sep 2024 08:14:59 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>what is jinpyo?</title>
            <url>https://velog.velcdn.com/images/mark_dev/profile/b27a0aa5-5b84-4501-aa24-695eb13dd296/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. what is jinpyo?. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/mark_dev" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Network]SSH ProxyJump]]></title>
            <link>https://velog.io/@mark_dev/SSH-ProxyJump</link>
            <guid>https://velog.io/@mark_dev/SSH-ProxyJump</guid>
            <pubDate>Tue, 03 Sep 2024 08:14:59 GMT</pubDate>
            <description><![CDATA[<h2 id="이-글을-쓰게-된-이유">이 글을 쓰게 된 이유</h2>
<p>저는 현재 대학교 졸업 작품으로 웹 개발 프로젝트를 만들고 있습니다. 개발을 완료한 후, 제가 다니고 있는 연구실 서버에 이 서비스를 배포하려고 합니다. 연구실 서버는 게이트 역할을 수행하는 Bastion 서버와 그 안에 제가 서비스를 배포할 서버로 구성되어 있습니다. 그렇다면.... 배포를 하기 위해 Bastion 서버를 거쳐 배포할 서버로 이동하는 방법을 알아야 합니다. 이때 사용되는 개념인 Proxy 서버와 ProxyJump에 대해 공부를 진행하였습니다. </p>
<h2 id="개요">개요</h2>
<p>본 게시물은 로컬 머신에서 목적지 서버로 접속할 때 사용하는 개념인 Proxy 서버에 대해 알아봅니다. 그리고 명령어를 통해 Proxy 서버를 접속하는 방법인 ProxyCommand, 마지막으로 ProxyJump 설정을 통해 간편하게 Proxy 서버를 경유해 목적지 서버를 접속하는 방법에 대해 알아보겠습니다.</p>
<h2 id="proxy-서버">Proxy 서버</h2>
<p>Proxy 서버는 로컬 머신에서 목적지 서버로 접속하려 할 때, 그 사이에서 경유지 역할을 하는 서버를 의미합니다. </p>
<h3 id="proxy-서버를-사용하는-이유">Proxy 서버를 사용하는 이유</h3>
<p>직접 로컬 머신에서 목적지 서버로 접속을 하면되는데 번거롭게 Proxy 서버를 경유하여 목적지 서버로 접속을 하는지 궁금하실 겁니다. Proxy 서버를 사용 하는 이유는 다음과 같습니다.</p>
<ol>
<li><p>보안 강화
Proxy 서버는 외부에서 직접 내부로 접근하는 것을 차단하고, Proxy 서버를 통해서만 접근이 가능하도록 하여 보안을 강화할 수 있습니다. 예를 들어 특정 사용자나 IP 주소로만 목적지 서버로의 접속을 허용할 수 있습니다.</p>
</li>
<li><p>부하 분산
Proxy 서버는 부하 분산 장치로도 사용될 수 있습니다. 예를 들어 여러 서버로의 요청을 Proxy 서버에서 받아 적절히 분배함으로써 서버의 부하를 줄이고 성능을 최적화할 수 있습니다.</p>
</li>
</ol>
<h2 id="ssh-proxyjump">SSH ProxyJump</h2>
<h3 id="proxyjump이란">ProxyJump이란?</h3>
<ul>
<li>ProxyJump는 SSH를 통해 중간 서버를 거쳐 최종 목적지 서버에 접속하는 방법입니다. 또한 중간 호스트를 통과하는 트래픽이 항상 종단 간 암호화가되도록 보장합니다. Open SSH 버전 7.5부터만 사용할 수 있으며, 중간 호스트에서 포트 포워딩을 지원해야합니다.</li>
</ul>
<h3 id="proxycommand">ProxyCommand</h3>
<p>명령어를 통해 Proxy 서버를 경유해 목적지 서버로 접속할 수 있습니다. 이를 ProxyCommand라고 합니다.</p>
<p>형식은 다음과 같습니다.</p>
<pre><code>ssh -J [Bastion Username]@[Bastion Address] [Target Username]@[Target Address]</code></pre><ul>
<li><p><strong>-J 옵션</strong>: ProxyJump를 사용하겠다는 옵션</p>
</li>
<li><p><strong>Bastion Username</strong>: 프록시 서버의 사용자명</p>
</li>
<li><p><strong>Bastion Address</strong>: 프록시 서버의 호스트명 또는 IP 주소</p>
</li>
<li><p><strong>Target Username</strong>: 목적지 서버의 사용자명</p>
</li>
<li><p><strong>Target Address</strong>: 목적지 서버의 호스트명 또는 IP 주소</p>
</li>
</ul>
<h3 id="proxyjump-설정">ProxyJump 설정</h3>
<p>위와 같이 ssh 명령어(ProxyCommand)를 사용하여 ProxyJump를 할 수 있지만, ProxyJump 설정을 통해 보다 쉽게 접속이 가능합니다. 그 이유는 ProxyJump는 ProxyCommand을 래핑하고 있기 때문입니다.</p>
<p>그러면 ProxyJump 설정을 해보도록 하겠습니다.</p>
<p><strong>형식
위치: ~/.ssh/config</strong></p>
<pre><code>Host [proxyjump server name]
    HostName [proxyjump host name] 
    Port [port number]
    IdentityFile [SSH key path]
    User user [proxyjump user name]


Host [target server name]
    HostName [target host name]
    Port [port number]
    User user [target user name]
    IdentityFile [SSH key path]
    ProxyJump [proxyjump server name]</code></pre><ul>
<li>IdentityFile: 사전에 등록한 SSH key가 저장된 경로를 작성</li>
</ul>
<p><strong>예시</strong></p>
<pre><code>Host bastion
    HostName bastion.example.com
    Port XXXX
    IdentityFile ~/~
    User user

Host final
    HostName final.example.com
    IdentityFile ~/~
    User user
    ProxyJump bastion</code></pre><p>위와 같이 설정을 하면 다음처럼 손쉽게 목적지 서버로 접속이 가능합니다.</p>
<pre><code>ssh final</code></pre><h2 id="실습">실습</h2>
<p>네 그럼 위의 내용을 바탕으로 실습을 진행해보겠습니다.</p>
<p>먼저 ProxyJump 설정 내용을 입력할 config 파일을 vim로 열어 줍니다.
<img src="https://velog.velcdn.com/images/mark_dev/post/67b1d283-b725-44db-a707-09c2342c4592/image.png" alt=""></p>
<p>다음으로 설정 내용을 입력해줍니다.
<img src="https://velog.velcdn.com/images/mark_dev/post/c394122d-a320-4388-a9f1-19a45ad1f4bf/image.png" alt=""> </p>
<p>마지막으로 위 설정 내용을 저장한 후, ssh [target server hostname] 형식으로 접속을 합니다.
<img src="https://velog.velcdn.com/images/mark_dev/post/875c96de-fe43-4065-ba76-9e9266d2f784/image.png" alt=""></p>
<h2 id="마치며">마치며</h2>
<p>이번 시간에는 Proxy 서버의 역할과 개념, ProxyJump를 활용하는 방법에 대해 알아보았습니다. 본 게시물이 여러분들께 도움이 되었으면 좋겠습니다. 그리고 피드백 또한 환영입니다. 다음에는 &quot;SSH ProxyJump를 활용한 GithubAction&quot;이란 주제로 게시물을 작성할 예정입니다. 감사합니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[후기] 개발 컨퍼런스 TecherCon 후기]]></title>
            <link>https://velog.io/@mark_dev/%ED%9B%84%EA%B8%B0-%EA%B0%9C%EB%B0%9C-%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4-TecherCon-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@mark_dev/%ED%9B%84%EA%B8%B0-%EA%B0%9C%EB%B0%9C-%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4-TecherCon-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Sun, 10 Mar 2024 10:49:00 GMT</pubDate>
            <description><![CDATA[<h1 id="techeercon">TecheerCon</h1>
<p><img src="https://velog.velcdn.com/images/mark_dev/post/859d2675-4e63-458c-ac75-baaba5e1971b/image.png" alt="">
24년 3월 9일 토요일 서울에서 열리는 개발자 행사 &quot;TecherCon&quot;     컨퍼런스에 다녀왔습니다.</p>
<h2 id="행사-일정세션-구성">행사 일정(세션 구성)</h2>
<p><img src="https://velog.velcdn.com/images/mark_dev/post/f75d3c70-934c-4443-ba05-3a748241deb2/image.png" alt=""></p>
<h2 id="행사-내용">행사 내용</h2>
<h3 id="오프닝박상현-엔지니어">오프닝(박상현 엔지니어)</h3>
<ul>
<li>대학에서 원하는 인재의 능력과 나의 능력의 격차를 줄이자.</li>
<li>유행 기술(AI, 메타버스)에 휩쓸리지 말자. -&gt; 시장이 작고 변화가 커 취업하기 힘들다.</li>
<li>개발자의 중요한 능력은 태도이다.<h3 id="얼어붙은-시작-속-따뜻하게-취업-준비하기">얼어붙은 시작 속 따뜻하게 취업 준비하기</h3>
</li>
<li><em>따뜻하게 취업하는 방법*</em></li>
<li>꾸준한 성취</li>
<li>자신에게 투자하는 것을 주저하지 마라.</li>
<li>피드백을 적극 수용한다. -&gt; 피드백을 통해 나의 위치를 알고 무엇을 보충해야 하는 지 알 수 있다.</li>
</ul>
<p><strong>취업을 위해 준비해야하는 것</strong></p>
<ul>
<li>이력서(프로젝트와 기술 블로그)<ul>
<li>프로젝트<ul>
<li>개발 경험 키우기</li>
<li>최신 실무 기술 공부</li>
</ul>
</li>
<li>기술 블로그<ul>
<li>기술을 글로 설명하기</li>
</ul>
</li>
</ul>
</li>
<li>코딩 테스트<ul>
<li>코딩 테스트<ul>
<li>자료구조</li>
<li>알고리즘</li>
<li>DFS, BFS, DP</li>
</ul>
</li>
<li>과제 전형<ul>
<li>프로젝트</li>
<li>문서화<ul>
<li>기술을 글로 설명하기</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>기술 면접<ul>
<li>기술을 말로 설명하는 연습</li>
<li>최신 실무 기술 공부<h3 id="우리가-당장-___를-당장-시작해야-하는-이유">우리가 당장 <strong>___</strong>를 당장 시작해야 하는 이유</h3>
</li>
</ul>
</li>
<li>프로젝트를 당장 시작해야 한다.<ul>
<li>코딩을 배우는 가장 좋은 방법</li>
<li>협업 경험, 사회 생활을 접할 수 있다.</li>
<li>취업에 압도적으로 도움이 된다.</li>
<li>프로젝트를 하면서 디스코드와 노션을 적극 활용하자.</li>
</ul>
</li>
<li>프로젝트에 어떤 것이 있나?<ul>
<li>개인 프로젝트를 해보자.<ul>
<li>의미 있는 주제가 아니어도 괜찮다.</li>
<li>처음엔 작게 점진적으로 크게 ex) 유명한 웹사이트 특정 페이지 구현</li>
</ul>
</li>
<li>팀 프로젝트를 해보자.<ul>
<li>협업 경험, 인간 관계 경험 -&gt; 사회생활에 필수적인 덕목</li>
<li>프로젝트를 하면서 생기는 다양한 애로 사항 -&gt; 면접에 쓸 거리가 된다.</li>
</ul>
</li>
<li>프로젝트 꿀팁<ul>
<li>해답 안보기</li>
<li>기록 남기기<ul>
<li>인터넷에서 베끼지 말고 자신만의 기록을 남겨라.</li>
</ul>
</li>
<li>오답 노트 작성하기</li>
<li>회고하기<h3 id="글쓰며-성장하기">글쓰며 성장하기</h3>
</li>
</ul>
</li>
</ul>
</li>
<li><em>개발자의 성장에 기술 블로그가 중요한 이유는?*</em></li>
<li>나만의 데이터베이스</li>
<li>문서화 습관을 기른다.</li>
<li>면접에 대비</li>
</ul>
<p><strong>기술 블로그 작성 방법</strong></p>
<ul>
<li>주제 선정 방법<ul>
<li>프로젝트에서 내가 구현한 내용</li>
<li>내가 공부하고 싶은 개념</li>
<li>에러 해결 과정(trouble shooting)</li>
<li>행사 참가 후기, 개념 정리, 회고</li>
</ul>
</li>
<li>내용 구성<ul>
<li>개요<ul>
<li>글을 작성한 이유</li>
<li>해당 기술을 적용하게 된 배경</li>
<li>주제에 대한 간략한 소개</li>
</ul>
</li>
<li>개념<ul>
<li>사용하거나 공부한 기술에 대한 개념</li>
<li>기술의 장단점과 사용 이유</li>
</ul>
</li>
<li>실습<ul>
<li>해당 기술을 사용하고 직접 실습한 내용</li>
<li>단계별로 구체적으로 작성</li>
<li>적용하면서 발생한 문제 상황 및 해결 과정</li>
</ul>
</li>
<li>마무리<ul>
<li>글의 내용을 간단하게 요약</li>
<li>나의 생각</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>에러 해결 과정을 작성하는 방법</strong></p>
<ul>
<li>개요<ul>
<li>에러가 발생한 배경</li>
</ul>
</li>
<li>에러 분석<ul>
<li>에러 메시지 해석</li>
<li>에러 발생 원인 분석</li>
</ul>
</li>
<li>해결 과정<ul>
<li>에러 해결을 위해 시도한 방법</li>
</ul>
</li>
<li>에러를 해결한 방법<ul>
<li>해결한 과정 자세히 작성</li>
<li>해결한 방법에 대한 사진(코드)를 첨부</li>
</ul>
</li>
</ul>
<p><strong>기술 블로그 작성 요령</strong></p>
<ul>
<li>나만의 글을 작성<ul>
<li>나만의 경험과 생각이 담긴 글을 작성</li>
</ul>
</li>
<li>블로그는 나만 보는 게 아니다.<ul>
<li>보는 사람이 이해하기 쉽도록 자세히 설명하자.</li>
</ul>
</li>
</ul>
<h2 id="후기">후기</h2>
<p>개발 공부를 시작하고 처음 가 본 행사입니다. 개발과 관련된 여러 가지 내용을 듣고 깨닫는 게 많아 도움이 되는 시간이었습니다. 특히 제가 원하는 곳에 취업하기 위해 어떻게 공부를 해나가야 하는지 알게되었고 등대로 저의 길을 비춰준 느낌이 들었습니다. 이번 개발자 행사 참여를 계기로 여러 가지 개발 행사 예를 들어 해커톤, 컨퍼런스, 개발 동아리 등을 적극적으로 참여해보려고 합니다. 미래의 나를 향해 화이팅!! </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[회고] 블로그 시작은 2023 회고로부터...]]></title>
            <link>https://velog.io/@mark_dev/%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%8B%9C%EC%9E%91%EC%9D%80-%ED%9A%8C%EA%B3%A0%EB%A1%9C%EB%B6%80%ED%84%B0</link>
            <guid>https://velog.io/@mark_dev/%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%8B%9C%EC%9E%91%EC%9D%80-%ED%9A%8C%EA%B3%A0%EB%A1%9C%EB%B6%80%ED%84%B0</guid>
            <pubDate>Sun, 25 Feb 2024 07:40:29 GMT</pubDate>
            <description><![CDATA[<p>WiSoft(국립한밭대학교 무선통신 연구실) 연구실에 들어가고 개발 공부한 지 벌써 1년이라는 시간이 흘렀다.
이 시간 동안 내가 개발에 대해 어떤 공부를 했고 얼마나 성장했는지에 대한 글을 적어보려 한다.</p>
<p>연구실에 들어오기 전 나는 대학교 수업을 적당히 열심히(?) 듣는 지극히 평범한 학생이었다. 그런데 내 대학생활에 큰 변화가 찾아왔다. 그건 바로 개발 연구실에 들어가게 된 것이었다.</p>
<p>3학년 1학기(23년 초)에 아는 동생의 추천(<del>재영아 고맙다.</del>)으로 WiSoft 연구실을 들어 가게 되었다. 연구실에 들어가기 전 나는 개발 공부를 학교 수업말고 접해본 경험이 많이 없었다. 그래서 조금의 두려움은 있었지만 &quot;일단 들어가서 열심히 뭐든지 해보자&quot;라는 생각으로 연구실 생활을 시작하게 되었다.</p>
<h2 id="3월--7월">3월 ~ 7월</h2>
<p>연구실에 들어가서 제일 먼저 한 것은 여러 개발 세미나를 들었다. 프레임워크인 NestJS, 디자인 패턴, 네트워크 등을 들으면서 개발에 관련된 분야가 이런 게 있구나를 터득했던 좋은 시간이었다.(많이 힘들었지만 &quot;배운 것들이 나중에 도움이 되는 날이 있겠지&quot;라고 생각하고 버틴 거 같다. 물론 지금 생각해 보면 정말 도움이 되고 있다!!)  </p>
<h2 id="8월--12월">8월 ~ 12월</h2>
<p>정규 세미나가 마무리되고 스스로 어떤 개발 공부를 해야하는 지 고민을 하던 시기다. 그래서 교수님과 박사님 그리고 연구실 동료들에게 자문을 구했다. 결론은 &quot;기초가 중요하다.&quot;였다. 그래서 개발에 기초가 되는 프로그래밍 언어 공부를 시작하게 되었다. 어떤 언어를 공부하면 좋을까 생각을 했는데, 마침 4학년 졸업 작품을 만들기 위한 서버 프레임워크로 NestJS를 선택하게 되었다.  그래서 이 프레임 워크에서 사용하는 언어인 Javascript를 공부를 시작하게 되었다. 지금까지 언어로는 C, Java만 공부했던 나는 자유로운 영혼(?)의 Javascript 접하게 되어 개발에 대한 흥미가 높아졌던 시기었던 거 같다. </p>
<h2 id="마무리">마무리</h2>
<p>가끔 나는 개발 공부를 하면서 &quot;개발이 나에게 적성이 맞을까?&quot;라는 의구심을 품는다. 하지만 어떤 것이 나에게 적성이 맞는지 확인하기 위해선 끝까지 해보지 않고선 모른다고 생각한다. 그래서 끝장을 보기 위해 열심히 공부하고 성장하고 있다. 2024 회고를 쓰게 될 미래의 나는 얼마나 성장해 있을까? 미래의 나를 위해 지금도 열심히 달리고 있다. </p>
<p>긴글 읽어주셔서 감사합니다. </p>
]]></description>
        </item>
    </channel>
</rss>