<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Plan B</title>
    <link>https://planbsw.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 01:02:45 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>glshlee</managingEditor>
    <item>
      <title>Raycast 정복 가이드: 맥 생산성 향상  </title>
      <link>https://planbsw.tistory.com/137</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;carl-heyerdahl-KE0nC8-58MQ-unsplash.jpg&quot; data-origin-width=&quot;5760&quot; data-origin-height=&quot;3840&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2dquK/btsM1jel2qo/0VaNZNDG4GQC45khVFRrw0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2dquK/btsM1jel2qo/0VaNZNDG4GQC45khVFRrw0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2dquK/btsM1jel2qo/0VaNZNDG4GQC45khVFRrw0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2dquK%2FbtsM1jel2qo%2F0VaNZNDG4GQC45khVFRrw0%2Fimg.jpg&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;5760&quot; height=&quot;3840&quot; data-filename=&quot;carl-heyerdahl-KE0nC8-58MQ-unsplash.jpg&quot; data-origin-width=&quot;5760&quot; data-origin-height=&quot;3840&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&gt;스팟라이트를 넘어선 강력한 생산성 도구, Raycast를 소개합니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Raycast는 macOS를 위한 &lt;/span&gt;&lt;b&gt;&lt;span&gt;생산성 도구&lt;/span&gt;&lt;/b&gt;&lt;span&gt;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존의 스팟라이트 기능을 확장하여, 앱 실행, 파일 검색, 시스템 제어, 사용자 정의 확장 기능 등을 통해 맥 사용 환경을 개선할 수 있어요.&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;Raycast, 장점 및 단점&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;  장점&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;생산성 향상:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 단축키, 빠른 실행, 자동화 기능을 통해 작업 시간을 단축하고 효율성을 극대화&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;확장성:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 다양한 확장 기능(Extensions)을 통해 Raycast의 기능을 무한히 확장 가능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;직관적인 인터페이스:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 깔끔하고 직관적인 디자인으로 사용 편의성을 향상&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;무료:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 기본 기능을 무료로 제공하여 누구나 부담 없이 사용 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;  단점&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;macOS 전용:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; Windows 운영체제는 지원 불가&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;유료 기능 제한:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 팀 협업, AI 기능 등 일부 고급 기능은 유료 플랜 가입이 필요&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Raycast는 맥 사용자, 특히 개발자나 생산성 향상을 추구하는 사용자들 사이에서 인기가 높습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;스팟라이트, Alfred 등 유사 프로그램과 비교했을 때, Raycast는 &lt;/span&gt;&lt;b&gt;&lt;span&gt;무료로 다양한 기능&lt;/span&gt;&lt;/b&gt;&lt;span&gt;과 &lt;/span&gt;&lt;b&gt;&lt;span&gt;뛰어난 확장성&lt;/span&gt;&lt;/b&gt;&lt;span&gt;을 제공하여 만족도가 높은 편이에요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Raycast의 주요 기능은 다음과 같습니다.&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;&lt;span&gt;앱 실행:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 앱 이름을 입력하여 빠르게 실행&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;파일 검색:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 파일 및 폴더를 검색&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;시스템 제어:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; Wi-Fi, 사운드, 밝기 등 시스템 설정을 Raycast 내에서 직접 제어&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;계산기:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 간단한 계산을 Raycast에서 바로 처리&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;클립보드 관리:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 복사한 텍스트 및 이미지를 저장하고, 필요할 때 다시 사용 가능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;단축키:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 자주 사용하는 기능을 단축키로 등록하여 실행 속도를 향상&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;확장 기능(Extensions):&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 서드파티 개발자들이 제공하는 다양한 확장 기능을 설치하여 Raycast의 기능을 확장 (예: Notion, Slack, GitHub, 주식 정보, 날씨, 번역 등)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;활용 사례&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;개발자:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 터미널 명령어 실행, GitHub 연동을 통해 개발 생산성을 향상&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;직장인:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 회의 참여, 할 일 관리, 파일 공유 등 업무 관련 작업을 Raycast 하나로 처리&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;Raycast, 맥에 설치하는 방법&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Raycast는 두 가지 방법으로 설치할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;1. Raycast 웹사이트에서 직접 다운로드&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;1.  Raycast 웹사이트 방문: [https://www.raycast.com/](https://www.raycast.com/)
2.  다운로드: &quot;Download for macOS&quot; 버튼을 클릭합니다.
3.  설치: 다운로드한 파일을 실행하고, 화면의 안내에 따라 설치를 진행합니다.
4.  실행: Raycast를 실행하고 초기 설정을 완료합니다.&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;2. Homebrew를 사용하여 설치&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;Homebrew가 설치되어 있다면, 터미널을 사용하여 Raycast를 간단하게 설치할 수 있습니다.

1.  터미널 실행: macOS 터미널 앱을 실행합니다.
2.  명령어 입력: 다음 명령어를 입력하고 Enter 키를 누릅니다.

    brew install --cask raycast

3.  설치 완료: Raycast가 설치되면, 실행하여 초기 설정을 진행합니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;  스팟라이트 단축키 비활성화 방법:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; Raycast의 단축키가 제대로 작동하지 않는 경우, macOS의 기본 검색 기능인 스팟라이트 단축키와 충돌할 수 있습니다. 스팟라이트 단축키를 비활성화하는 방법은 다음과 같습니다.&lt;/span&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;&lt;span&gt;Apple 메뉴&lt;/span&gt;&lt;/b&gt;&lt;span&gt;  &amp;gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;시스템 설정&lt;/span&gt;&lt;/b&gt;&lt;span&gt;으로 이동&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;사이드바에서 &lt;/span&gt;&lt;b&gt;&lt;span&gt;키보드&lt;/span&gt;&lt;/b&gt;&lt;span&gt;를 클릭&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;키보드 단축키&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 탭을 클릭&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;왼쪽 목록에서 &lt;/span&gt;&lt;b&gt;&lt;span&gt;Spotlight&lt;/span&gt;&lt;/b&gt;&lt;span&gt;를 선택&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;&quot;Spotlight 보기&quot;&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 옆의 체크 상자를 선택 해제 (기본 단축키는 Command-Space)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;macOS 버전에 따라 약간 다를 수 있지만 대부분 비슷한 곳에서 설정할 수 있어요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-03-29 오후 5.46.04.png&quot; data-origin-width=&quot;1654&quot; data-origin-height=&quot;1474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6BxWK/btsMZ4ILH8s/hgN3oiDUECfiW75bblxkZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6BxWK/btsMZ4ILH8s/hgN3oiDUECfiW75bblxkZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6BxWK/btsMZ4ILH8s/hgN3oiDUECfiW75bblxkZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6BxWK%2FbtsMZ4ILH8s%2FhgN3oiDUECfiW75bblxkZ0%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;1654&quot; height=&quot;1474&quot; data-filename=&quot;스크린샷 2025-03-29 오후 5.46.04.png&quot; data-origin-width=&quot;1654&quot; data-origin-height=&quot;1474&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Information</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/137</guid>
      <comments>https://planbsw.tistory.com/137#entry137comment</comments>
      <pubDate>Sat, 29 Mar 2025 18:04:07 +0900</pubDate>
    </item>
    <item>
      <title>랭체인(LangChain) 쉽게 시작하기</title>
      <link>https://planbsw.tistory.com/135</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;emiliano-vittoriosi-fvxNerA8uk0-unsplash.jpg&quot; data-origin-width=&quot;4608&quot; data-origin-height=&quot;3456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cci6yV/btsMUxikyh7/erooG0h3V9ix9gXHOZxzX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cci6yV/btsMUxikyh7/erooG0h3V9ix9gXHOZxzX0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cci6yV/btsMUxikyh7/erooG0h3V9ix9gXHOZxzX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcci6yV%2FbtsMUxikyh7%2FerooG0h3V9ix9gXHOZxzX0%2Fimg.jpg&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;4608&quot; height=&quot;3456&quot; data-filename=&quot;emiliano-vittoriosi-fvxNerA8uk0-unsplash.jpg&quot; data-origin-width=&quot;4608&quot; data-origin-height=&quot;3456&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;1. 랭체인이란?&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;랭체인은 여러 인공지능 언어 모델을 연결해서 복잡한 일을 쉽고 효율적으로 처리할 수 있도록 도와주는 도구입니다. &lt;/span&gt;&lt;span&gt;챗GPT와 같은 언어 모델을 더 똑똑하게 활용하여 챗봇이나 자동 글 요약 시스템 등을 개발하는데 쓸 수 있어요&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;랭체인은 특히 다음과 같은 작업을 쉽게 할 수 있도록 도움을 줘요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;작업을 순서대로 연결하는 '체인(Chain)'&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;스스로 일을 처리하는 '에이전트(Agent)'&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;대화를 기억하고 활용하는 '메모리(Memory)'&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;2. 랭체인의 핵심 개념&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;체인(Chain)&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 여러 작업을 연결하여 하나의 흐름을 만드는 개념입니다. 예를 들어, 질문에 대한 답을 찾고 요약한 뒤 다시 전달하는 과정을 자동화할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;에이전트(Agent)&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 목표를 이루기 위해 외부 도구나 API를 사용하여 스스로 행동을 결정하고 처리하는 모듈입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;메모리(Memory)&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 이전의 대화나 결과를 기억하여 연속된 작업이나 대화를 자연스럽게 진행할 수 있도록 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;프롬프트 템플릿(Prompt Template)&lt;/b&gt;&lt;/span&gt;&lt;span&gt;: 언어 모델이 원하는 결과를 정확히 이해하도록 미리 만든 질문 형식입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;3. 준비물&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Python 3.8 이상 (&lt;/span&gt;&lt;a href=&quot;https://www.python.org/&quot;&gt;&lt;span&gt;공식 홈페이지&lt;/span&gt;&lt;/a&gt;&lt;span&gt;에서 설치 가능)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;주요 라이브러리: LangChain, OpenAI, Hugging Face, FastAPI&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;IDE: Visual Studio Code 또는 PyCharm 추천&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/langchain-ai/langchain&quot;&gt;&lt;span&gt;LangChain 공식 GitHub 페이지&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Git 설치&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;4. 개발 환경 설정하기&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;파이썬 설치 확인&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;먼저 Python을 설치하고 버전을 확인합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;Windows:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;python --version  # 파이썬 버전 확인&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;macOS:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot;&gt;&lt;code&gt;python3 --version  # 파이썬 버전 확인&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;가상 환경 설정&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;가상 환경을 사용하면 각 프로젝트별로 필요한 라이브러리를 독립적으로 관리할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;Windows:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;dockerfile&quot;&gt;&lt;code&gt;python -m venv langchain-env  # 가상 환경 생성
langchain-env\Scripts\activate  # 가상 환경 활성화&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;macOS:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;dockerfile&quot;&gt;&lt;code&gt;python3 -m venv langchain-env  # 가상 환경 생성
source langchain-env/bin/activate  # 가상 환경 활성화&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;라이브러리 설치&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;활성화된 가상 환경에서 필요한 라이브러리를 설치합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;cmake&quot;&gt;&lt;code&gt;pip install langchain openai huggingface_hub fastapi  # 필수 라이브러리 설치&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;설치 확인하기&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;라이브러리가 잘 설치되었는지 확인합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;pip list  # 설치된 라이브러리 확인&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;간단한 코드로 테스트하기&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;IDE에서 다음과 같은 간단한 코드를 작성하여 Python과 랭체인이 정상적으로 작동하는지 확인합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=[&quot;name&quot;],
    template=&quot;Hello, {name}! 랭체인이 잘 작동하고 있어요!&quot;
)

print(prompt.format(name=&quot;glshlee&quot;))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위 코드를 실행했을 때 아래와 같은 메시지가 출력된다면 설정이 성공한 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;Hello, glshlee! 랭체인이 잘 작동하고 있어요!&lt;/code&gt;&lt;/pre&gt;</description>
      <category>AI</category>
      <category>Ai</category>
      <category>langchain</category>
      <category>랭체인</category>
      <category>인공지능</category>
      <category>챗GPT</category>
      <category>챗봇개발</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/135</guid>
      <comments>https://planbsw.tistory.com/135#entry135comment</comments>
      <pubDate>Sun, 23 Mar 2025 16:01:25 +0900</pubDate>
    </item>
    <item>
      <title>지라 태스크 (Jira Task) 효과적으로 관리하는 방법: 개발 생산성 극대화</title>
      <link>https://planbsw.tistory.com/134</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Gemini_Generated_Image_l937zxl937zxl937.jpeg&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dXY6CA/btsLEZf6xAk/kypwnxjU7PLOJFeci8JQj1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dXY6CA/btsLEZf6xAk/kypwnxjU7PLOJFeci8JQj1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dXY6CA/btsLEZf6xAk/kypwnxjU7PLOJFeci8JQj1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXY6CA%2FbtsLEZf6xAk%2FkypwnxjU7PLOJFeci8JQj1%2Fimg.jpg&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;2048&quot; height=&quot;2048&quot; data-filename=&quot;Gemini_Generated_Image_l937zxl937zxl937.jpeg&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;69:1-70:21&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지라(Jira)는 소프트웨어 개발 프로젝트를 관리하는 데 많이 사용되는 도구입니다. 특히 협업이 중요한 상황에서 효과적인 업무 관리는 프로젝트 성공의 핵심 요소라고 할 수 있어요. 지라에서 작업의 기본 단위는 '태스크'인데요, 이 태스크를 얼마나 잘 작성하느냐에 따라 팀의 효율과 협업 방식이 크게 달라질 수 있어요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번 포스팅에서는 제가 회사에서 업무를 하면서 생각한 효율적인 지라 태스크 작성 방법들을 정리했습니다. 특히 팀워크를 향상시키는 데 초점을 맞춰 실질적인 팁들을 공유하고자 합니다. 개발자, 디자이너, PM 모두에게 도움이 될 내용이니 함께 살펴보시죠!&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;태스크를 잘 작성해야 하는 이유&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;태스크는 지라에서 작업의 기본 단위로 사용되며, 태스크를 잘 만들면 프로젝트를 더욱 효율적으로 관리할 수 있습니다. 명확하고 체계적인 태스크 작성은 팀원 간의 혼란을 줄이고, 생산성을 높이는 데 기여합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;효율적인 지라 태스크 작성 방법&lt;/span&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-spread=&quot;true&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;명확한 제목 작성하기&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;태스크의 제목은 태스크가 무엇인지 명확하게 알려주어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;프로젝트를 진행하다 보면 많은 태스크들을 작성하기 때문에, 명확하지 않은 제목은 중복 태스크를 생성하거나 검색을 어렵게 만들 수 있어요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;예시: &quot;API 오류 수정&quot;보다는 &quot;로그인 API 응답 코드 수정&quot;처럼 구체적인 제목을 사용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;상세한 설명 추가&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;제목만으로 태스크의 내용을 충분히 전달하기 어려운 경우가 많습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;태스크에 상세한 설명을 추가해 팀원이 쉽게 이해할 수 있도록 해야해요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;팀 내에서 템플릿을 사용해 필수로 작성해야 할 내용을 표준화하는 것도 좋은 방법입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;예시: &quot;이슈 내용, 작업 목표, 참고 자료, 필요한 리소스, 예상 결과&quot;를 포함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;우선순위 설정&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;모든 태스크가 동일한 우선순위를 갖는 것은 아닙니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;긴급, 높음, 보통 등 우선순위를 명시하여 중요한 태스크부터 처리할 수 있어요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;담당자 지정&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;태스크를 누가 담당하는지 명시하면 책임 소재를 분명히 할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;명확한 담당자 지정은 오너십을 부여하고 태스크가 제때 완료될 가능성을 높입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;마감 시간 설정&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;마감 시간을 명확히 설정하면 팀원들이 작업을 제때 완료할 수 있도록 도움을 주고, 관리자가 태스의 진행 상황을 명확히 관리할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;마감 시간 설정은 업무의 긴급성을 시각화하는 데도 효과적입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;태스크 상태 변경&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;태스크 진행 상황을 대기 중, 진행 중, 완료 등으로 설정하여 추적하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;진행 상황을 주기적으로 업데이트하면 리스크를 사전에 파악할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;칸반, 스크럼 보드 활용&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;지라의 칸반(Kanban)과 스크럼(Scrum) 보드를 활용해 태스크를 시각적으로 관리하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;작업 흐름을 한눈에 파악할 수 있어 팀원 간의 소통이 원활해집니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;칸반 보드로 작업 상태를 추적하거나, 스크럼 보드로 스프린트 계획을 실행해 보세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;마무리&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 블로그 포스팅이 지라 태스크를 효율적으로 작성하는 데 도움이 되었기를 바랍니다. 태스크 관리의 작은 변화가 팀의 큰 변화를 이끌 수 있다는 점을 기억하세요. 궁금한 점이 있으면 댓글로 남겨주세요.&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로젝트 관리</category>
      <category>JIRA</category>
      <category>개발 생산성</category>
      <category>소프트웨어 개발</category>
      <category>스크럼</category>
      <category>애자일</category>
      <category>업무 효율</category>
      <category>이슈 트래킹</category>
      <category>지라</category>
      <category>태스크 관리</category>
      <category>프로젝트 관리</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/134</guid>
      <comments>https://planbsw.tistory.com/134#entry134comment</comments>
      <pubDate>Sun, 5 Jan 2025 13:48:21 +0900</pubDate>
    </item>
    <item>
      <title>1 on 1 미팅 준비</title>
      <link>https://planbsw.tistory.com/133</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;750&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjS7bC/btr7fZODZ1b/QLxLdpqNMNozSH958YCJk1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjS7bC/btr7fZODZ1b/QLxLdpqNMNozSH958YCJk1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjS7bC/btr7fZODZ1b/QLxLdpqNMNozSH958YCJk1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjS7bC%2Fbtr7fZODZ1b%2FQLxLdpqNMNozSH958YCJk1%2Fimg.jpg&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;996&quot; height=&quot;750&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;750&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리더의 핵심적인 활동 중의 하나는 조직원들과의 1:1 미팅입니다. 1:1 미팅은 아무리 연습을 해도 쉽지 않더라구요 ㅜㅜ 앞으로 조금이라도 1:1 미팅을 잘 진행하기 위해 일반적으로 준비하면 좋을 것들을 생각해봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1:1 미팅을 성공적으로 진행하기 위해서는 어떤 것들을 준비해야 좋을까요? 1:1 미팅을 하기 전에 준비해야 할 사항들과 미팅 중에 유의해야 할 점들입니다.&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;/li&gt;
&lt;li&gt;미팅에 필요한 자료를 미리 준비하고, 공유 가능한 형태로 준비합니다.&lt;/li&gt;
&lt;li&gt;상대방의 배경과 이전 미팅 내용을 사전에 파악하고, 필요한 정보를 미리 수집합니다.&lt;/li&gt;
&lt;/ul&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;미팅&amp;nbsp;시작&amp;nbsp;전,&amp;nbsp;서로&amp;nbsp;인사를&amp;nbsp;나누고&amp;nbsp;상대방이&amp;nbsp;준비한&amp;nbsp;내용이&amp;nbsp;있는지&amp;nbsp;확인해야&amp;nbsp;합니다.&lt;/li&gt;
&lt;li&gt;미팅 도중에는 상대방의 말에 충분한 주의를 기울이고, 관심을 표현해야 합니다.&lt;/li&gt;
&lt;li&gt;상대방의 의견을 경청하고, 대화를 이어가며 의견을 공유해야 합니다.&lt;/li&gt;
&lt;li&gt;미팅 도중에는 목적과 목표를 재확인하고, 필요한 조치사항이 있는지 공유해야 합니다.&lt;/li&gt;
&lt;li&gt;미팅&amp;nbsp;마지막에는&amp;nbsp;이전&amp;nbsp;미팅&amp;nbsp;내용을&amp;nbsp;정리하고,&amp;nbsp;다음&amp;nbsp;단계를&amp;nbsp;결정하는&amp;nbsp;등&amp;nbsp;앞으로의&amp;nbsp;계획을&amp;nbsp;공유해야&amp;nbsp;합니다.&lt;/li&gt;
&lt;/ul&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;/li&gt;
&lt;li&gt;미팅 내용을 정리하고, 다음 미팅을 위해 이후 조치사항을 기록해야 합니다.&lt;/li&gt;
&lt;li&gt;미팅 결과를 공유하고, 다음 단계를 결정하는 등 앞으로의 계획을 공유해야 합니다.&lt;/li&gt;
&lt;li&gt;1:1 미팅은 대화와 소통이 중요한 역할을 합니다. 상대방의 의견을 경청하고 존중하며, 자신의 의견을 분명하게 전달하는 것이 중요합니다. 또한, 미팅 결과와 이후 계획을 공유하여 상대방과 함께 발전해 나가야 합니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Information</category>
      <category>1on1</category>
      <category>1on1 meeting</category>
      <category>1대1</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/133</guid>
      <comments>https://planbsw.tistory.com/133#entry133comment</comments>
      <pubDate>Sat, 1 Apr 2023 21:32:55 +0900</pubDate>
    </item>
    <item>
      <title>React UI Framework 선택</title>
      <link>https://planbsw.tistory.com/130</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아직 React에 익숙하지 않아서 어떤 UI Framework가 괜찮은지 잘 몰라서 인터넷에서 검색 후 가장 대중적인 프레임워크를 선택하기로 했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aglowiditsolutions.com/blog/best-react-ui-framework/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://aglowiditsolutions.com/blog/best-react-ui-framework/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1671242816086&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Best React UI Framework You Should Know In 2023&quot; data-og-description=&quot;In Search of the best React UI framework - Get an idea of the top Component Framework for React, their features &amp;amp; popularity status.&quot; data-og-host=&quot;aglowiditsolutions.com&quot; data-og-source-url=&quot;https://aglowiditsolutions.com/blog/best-react-ui-framework/&quot; data-og-url=&quot;https://aglowiditsolutions.com/blog/best-react-ui-framework/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eLWAm/hyQUYjcfKF/tK0R2jA2tTeIpm4DHKtY40/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/bvswjG/hyQUTvqYsC/7li0fq1aJwridAVmuYjY70/img.png?width=1200&amp;amp;height=760&amp;amp;face=0_0_1200_760,https://scrap.kakaocdn.net/dn/nmc57/hyQUS4lsje/MzO7WXaoC3v8hHkr45Wt01/img.png?width=1200&amp;amp;height=610&amp;amp;face=0_0_1200_610&quot;&gt;&lt;a href=&quot;https://aglowiditsolutions.com/blog/best-react-ui-framework/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aglowiditsolutions.com/blog/best-react-ui-framework/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eLWAm/hyQUYjcfKF/tK0R2jA2tTeIpm4DHKtY40/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/bvswjG/hyQUTvqYsC/7li0fq1aJwridAVmuYjY70/img.png?width=1200&amp;amp;height=760&amp;amp;face=0_0_1200_760,https://scrap.kakaocdn.net/dn/nmc57/hyQUS4lsje/MzO7WXaoC3v8hHkr45Wt01/img.png?width=1200&amp;amp;height=610&amp;amp;face=0_0_1200_610');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Best React UI Framework You Should Know In 2023&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;In Search of the best React UI framework - Get an idea of the top Component Framework for React, their features &amp;amp; popularity status.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aglowiditsolutions.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보다보니까 Material UI를 발견! 나는 구글 빠기 때문에 Material UI로 간다.&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;a href=&quot;https://mui.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mui.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1671242938790&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;MUI: The React component library you always wanted&quot; data-og-description=&quot;MUI provides a simple, customizable, and accessible library of React components. Follow your own design system, or start with Material Design.&quot; data-og-host=&quot;mui.com&quot; data-og-source-url=&quot;https://mui.com/&quot; data-og-url=&quot;https://mui.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/6FW9n/hyQUTa8WU9/HVeBdn8gW9jvn7Uo9WNYT0/img.jpg?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/SEoSX/hyQUYjcpYN/0Ljyhy9eeLQKO8SbIZib11/img.jpg?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640&quot;&gt;&lt;a href=&quot;https://mui.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mui.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/6FW9n/hyQUTa8WU9/HVeBdn8gW9jvn7Uo9WNYT0/img.jpg?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/SEoSX/hyQUYjcpYN/0Ljyhy9eeLQKO8SbIZib11/img.jpg?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;MUI: The React component library you always wanted&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MUI provides a simple, customizable, and accessible library of React components. Follow your own design system, or start with Material Design.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mui.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;github&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/mui&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/mui&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1671243020866&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;MUI&quot; data-og-description=&quot;Move faster with intuitive React UI tools. Follow your own design system, or start with Material Design (Material UI). - MUI&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/mui&quot; data-og-url=&quot;https://github.com/mui&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BOXud/hyQU0nMhwf/SDyMlJdMg0NaY0gwCZcnHk/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280&quot;&gt;&lt;a href=&quot;https://github.com/mui&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/mui&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BOXud/hyQU0nMhwf/SDyMlJdMg0NaY0gwCZcnHk/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;MUI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Move faster with intuitive React UI tools. Follow your own design system, or start with Material Design (Material UI). - MUI&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;설치&lt;/h3&gt;
&lt;pre id=&quot;code_1671359203078&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install @mui/material @emotion/react @emotion/styled&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;972&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdcxnr/btrTUDwPv0r/iNagOxkiAEk5k0gcaR16gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdcxnr/btrTUDwPv0r/iNagOxkiAEk5k0gcaR16gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdcxnr/btrTUDwPv0r/iNagOxkiAEk5k0gcaR16gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcdcxnr%2FbtrTUDwPv0r%2FiNagOxkiAEk5k0gcaR16gk%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;972&quot; height=&quot;326&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>React</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/130</guid>
      <comments>https://planbsw.tistory.com/130#entry130comment</comments>
      <pubDate>Sat, 17 Dec 2022 11:11:23 +0900</pubDate>
    </item>
    <item>
      <title>linux에 git 설치하기</title>
      <link>https://planbsw.tistory.com/128</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baVN2I/btrThG2gVM2/9AzLTETZFmLyKjMPRKDxw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baVN2I/btrThG2gVM2/9AzLTETZFmLyKjMPRKDxw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baVN2I/btrThG2gVM2/9AzLTETZFmLyKjMPRKDxw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaVN2I%2FbtrThG2gVM2%2F9AzLTETZFmLyKjMPRKDxw1%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;220&quot; height=&quot;92&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;92&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git을 설치하는 방법은 매우 간단하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;linux나 mac의 경우에는 간단한 명령어 입력 한번으로 설치가 가능하고 windows같은 경우에는 패키지를 다운로드 받고 더블클릭해서 설치가 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서는 간단하게 명령어를 안내하고 자세한 내용은 공식 홈페이지에서 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자신의 리눅스 배포판이 뭔지 아는 경우라면 패키지 관리도구를 이용해서 설치하고, 만약에 모른다면 다음 두 명령어 중 하나를 입력한다. (되기만 하면 되는거잖아...)&lt;/p&gt;
&lt;pre id=&quot;code_1670668585666&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo dnf install git-all
$ sudo apt install git-all&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670668511771&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Git - Git 설치&quot; data-og-description=&quot;이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0&quot; data-og-host=&quot;git-scm.com&quot; data-og-source-url=&quot;https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98&quot; data-og-url=&quot;https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/UFvdx/hyQQpgQSZP/kA3m9PS7uQOesfXrsRy5l0/img.png?width=800&amp;amp;height=580&amp;amp;face=0_0_800_580&quot;&gt;&lt;a href=&quot;https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/UFvdx/hyQQpgQSZP/kA3m9PS7uQOesfXrsRy5l0/img.png?width=800&amp;amp;height=580&amp;amp;face=0_0_800_580');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Git - Git 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;git-scm.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Git</category>
      <category>Git</category>
      <category>git설치</category>
      <category>Linux</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/128</guid>
      <comments>https://planbsw.tistory.com/128#entry128comment</comments>
      <pubDate>Sat, 10 Dec 2022 19:36:45 +0900</pubDate>
    </item>
    <item>
      <title>리눅스에서 유저 생성하기</title>
      <link>https://planbsw.tistory.com/126</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스에서 유저를 생성하기 위해서는 주로 useradd 명령어를 사용한다. (또는 adduser 명령어를 사용한다.)&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;useradd 사용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;useradd의 사용법은 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2yRD4/btrTg4P6iIh/fJBOx9DbuwBJRoKhlRxtW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2yRD4/btrTg4P6iIh/fJBOx9DbuwBJRoKhlRxtW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2yRD4/btrTg4P6iIh/fJBOx9DbuwBJRoKhlRxtW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2yRD4%2FbtrTg4P6iIh%2FfJBOx9DbuwBJRoKhlRxtW1%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;600&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로는 추가하려는 유저의 홈디렉터리(home directory)와 계정(account)명은 같기 때문에 다음과 같이 유저를 생성한다.&lt;/p&gt;
&lt;pre id=&quot;code_1670665843087&quot; class=&quot;xml&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo useradd -m &amp;lt;계정명&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 생성된 유저의 암호를 변경해줘야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1670666460925&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo passwd &amp;lt;계정명&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;adduser 사용&lt;/h3&gt;
&lt;pre id=&quot;code_1670667017291&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo adduser &amp;lt;계정명&amp;gt;&lt;/code&gt;&lt;/pre&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;600&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEDSjJ/btrTg3cBZN2/WZlTkN6Z6zbYH7YgJts1Wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEDSjJ/btrTg3cBZN2/WZlTkN6Z6zbYH7YgJts1Wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEDSjJ/btrTg3cBZN2/WZlTkN6Z6zbYH7YgJts1Wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEDSjJ%2FbtrTg3cBZN2%2FWZlTkN6Z6zbYH7YgJts1Wk%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;602&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Linux</category>
      <category>Linux</category>
      <category>useradd</category>
      <category>user생성</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/126</guid>
      <comments>https://planbsw.tistory.com/126#entry126comment</comments>
      <pubDate>Sat, 10 Dec 2022 18:52:10 +0900</pubDate>
    </item>
    <item>
      <title>새로운 react 프로젝트 만들기</title>
      <link>https://planbsw.tistory.com/124</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tmBpO/btrSarr3Kji/Nc5GN0KRekFkSzDok8Rpkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tmBpO/btrSarr3Kji/Nc5GN0KRekFkSzDok8Rpkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tmBpO/btrSarr3Kji/Nc5GN0KRekFkSzDok8Rpkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtmBpO%2FbtrSarr3Kji%2FNc5GN0KRekFkSzDok8Rpkk%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;1200&quot; height=&quot;630&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&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;a href=&quot;https://ko.reactjs.org/docs/create-a-new-react-app.html#create-react-app&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ko.reactjs.org/docs/create-a-new-react-app.html#create-react-app&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;react project 생성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노드를 설치했다면 npx 명령어를 이용해 react app을 만들어보자.&lt;/p&gt;
&lt;pre id=&quot;code_1669558065575&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx create-react-app my-app&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;react project 생성 결과&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1006&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kx8Ms/btrScRp13xP/qPfe6Nmewknz9g7zWQaKPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kx8Ms/btrScRp13xP/qPfe6Nmewknz9g7zWQaKPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kx8Ms/btrScRp13xP/qPfe6Nmewknz9g7zWQaKPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fkx8Ms%2FbtrScRp13xP%2FqPfe6Nmewknz9g7zWQaKPk%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;1006&quot; height=&quot;240&quot; data-origin-width=&quot;1006&quot; data-origin-height=&quot;240&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;</description>
      <category>React</category>
      <category>React</category>
      <category>React프로젝트</category>
      <category>리액트</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/124</guid>
      <comments>https://planbsw.tistory.com/124#entry124comment</comments>
      <pubDate>Sun, 27 Nov 2022 23:12:16 +0900</pubDate>
    </item>
    <item>
      <title>노드 설치하기</title>
      <link>https://planbsw.tistory.com/123</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pHusg/btrSf3XMYJG/jfJoeRV1SOzFiOPYqbFZBK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pHusg/btrSf3XMYJG/jfJoeRV1SOzFiOPYqbFZBK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pHusg/btrSf3XMYJG/jfJoeRV1SOzFiOPYqbFZBK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpHusg%2FbtrSf3XMYJG%2FjfJoeRV1SOzFiOPYqbFZBK%2Fimg.jpg&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;590&quot; height=&quot;361&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;brew로 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1669556616192&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install node&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://formulae.brew.sh/formula/node&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://formulae.brew.sh/formula/node&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1669556620916&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;node&quot; data-og-description=&quot;Homebrew&amp;rsquo;s package index&quot; data-og-host=&quot;formulae.brew.sh&quot; data-og-source-url=&quot;https://formulae.brew.sh/formula/node&quot; data-og-url=&quot;https://formulae.brew.sh/formula/node&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yqrCQ/hyQJtWyDGm/dpXjbIRMOR7pBPAdgwiIQK/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/fuT99/hyQJBNPdRd/zJpSvAkJuM5uX9XWWyM2Y1/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/bJ2aut/hyQJyQ6kny/Q9moLTVvKmeerxv53FxP8k/img.png?width=298&amp;amp;height=298&amp;amp;face=0_0_298_298&quot;&gt;&lt;a href=&quot;https://formulae.brew.sh/formula/node&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://formulae.brew.sh/formula/node&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yqrCQ/hyQJtWyDGm/dpXjbIRMOR7pBPAdgwiIQK/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/fuT99/hyQJBNPdRd/zJpSvAkJuM5uX9XWWyM2Y1/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/bJ2aut/hyQJyQ6kny/Q9moLTVvKmeerxv53FxP8k/img.png?width=298&amp;amp;height=298&amp;amp;face=0_0_298_298');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;node&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Homebrew&amp;rsquo;s package index&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;formulae.brew.sh&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;설치 결과&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgDnTh/btrSagRzbrX/ShYn8vFkk4OSiYDCiV8zi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgDnTh/btrSagRzbrX/ShYn8vFkk4OSiYDCiV8zi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgDnTh/btrSagRzbrX/ShYn8vFkk4OSiYDCiV8zi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgDnTh%2FbtrSagRzbrX%2FShYn8vFkk4OSiYDCiV8zi0%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;900&quot; height=&quot;246&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;246&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>React</category>
      <category>BREW</category>
      <category>homebrew</category>
      <category>node</category>
      <category>node설치</category>
      <category>React</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/123</guid>
      <comments>https://planbsw.tistory.com/123#entry123comment</comments>
      <pubDate>Sun, 27 Nov 2022 22:53:54 +0900</pubDate>
    </item>
    <item>
      <title>계산기 테스트</title>
      <link>https://planbsw.tistory.com/122</link>
      <description>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;계산기&lt;/title&gt; &lt;style type=&quot;text/css&quot;&gt; table { background: #87E2FF; } &lt;/style&gt; &lt;script type=&quot;text/javascript&quot;&gt; function inv(form, bv) { form.outv.value += bv; } function ind(bd) { bd.outv.value=&quot;&quot;; } function ino(io) { io.outv.value=eval(io.outv.value); } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;form name=&quot;cal&quot;&gt; &lt;table border=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tr&gt; &lt;td colspan=&quot;4&quot; class=&quot;nuv&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;outv&quot; readonly&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;nu1&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;1&quot; onclick=&quot;inv(this.form, '1')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu2&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;2&quot; onclick=&quot;inv(this.form, '2')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu3&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;3&quot; onclick=&quot;inv(this.form, '3')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu+&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;+&quot; onclick=&quot;inv(this.form, '+')&quot;&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;nu4&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;4&quot; onclick=&quot;inv(this.form, '4')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu5&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;5&quot; onclick=&quot;inv(this.form, '5')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu6&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;6&quot; onclick=&quot;inv(this.form, '6')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu-&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;-&quot; onclick=&quot;inv(this.form, '-')&quot;&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;nu7&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;7&quot; onclick=&quot;inv(this.form, '7')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu8&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;8&quot; onclick=&quot;inv(this.form, '8')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu9&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;9&quot; onclick=&quot;inv(this.form, '9')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu*&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;*&quot; onclick=&quot;inv(this.form, '*')&quot;&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;nu0&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;0&quot; onclick=&quot;inv(this.form, '0')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nuC&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;C&quot; onclick=&quot;ind(this.form)&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu%&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;%&quot; onclick=&quot;inv(this.form, '%')&quot;&gt;&lt;/td&gt; &lt;td class=&quot;nu/&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:35px;&quot; value=&quot;/&quot; onclick=&quot;inv(this.form, '/')&quot;&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;nu=&quot; colspan=&quot;4&quot;&gt;&lt;input type=&quot;button&quot; style=&quot;width:160px;&quot; value=&quot;=&quot; onclick=&quot;ino(this.form)&quot;&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</description>
      <category>Information</category>
      <author>glshlee</author>
      <guid isPermaLink="true">https://planbsw.tistory.com/122</guid>
      <comments>https://planbsw.tistory.com/122#entry122comment</comments>
      <pubDate>Fri, 8 Jan 2021 01:22:29 +0900</pubDate>
    </item>
  </channel>
</rss>