<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>잉넷's Life</title>
    <link>https://o-four.tistory.com/</link>
    <description>IT 개발자
맛집, 여행 등</description>
    <language>ko</language>
    <pubDate>Sun, 31 May 2026 17:55:36 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>잉넷</managingEditor>
    <image>
      <title>잉넷's Life</title>
      <url>https://tistory1.daumcdn.net/tistory/6453552/attach/302c3ae485694afd99c23478d927cdb9</url>
      <link>https://o-four.tistory.com</link>
    </image>
    <item>
      <title>5년 후 미래를 위한 나의 커리어 보도자료 - 2탄</title>
      <link>https://o-four.tistory.com/21</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;개발자 잉넷, 퀵스택 마인드셋으로 일정 최적화 AI 앱 &quot;TimeCraft&quot; 성공&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔루션 개발자였던 잉넷(11년차)이 AI 앱 개발자로 성공적인 커리어 전환을 이룬 것으로 확인됐다. 그가 개발한 일정 최적화 AI 앱 'TimeCraft'는 구글 플레이스토어에서 &lt;b&gt;4.6점 평점과 50만 다운로드&lt;/b&gt;를 기록했다.&lt;br /&gt;&lt;br /&gt;잉넷은 2025년까지 6년간 30명 규모 IT회사에서 JAVA/Spring 기반 솔루션 개발을 담당했다. 2025년 말 &quot;시대예보-경량문명의 탄생&quot;이라는 책에서 접한 &lt;b&gt;퀵스택(Quick-Stack) 개념&lt;/b&gt;을 계기로 앱 개발로의 전환을 결정했다.&lt;br /&gt;&lt;br /&gt;퀵스택은 풀스택과 달리 &lt;b&gt;문제 해결에 필요한 핵심 기술만 빠르게 습득&lt;/b&gt;하는 성장형 개발 방식이다. 잉넷은 이 방식으로 Flutter와 AI 관련 기술을 단기간에 학습해 2025년 말 첫 앱 출시를 시작으로 꾸준히 앱을 출시하고 있다.&lt;br /&gt;&lt;br /&gt;TimeCraft는 사용자의 &lt;b&gt;작업 패턴을 AI가 학습해 최적의 스케줄을 제안&lt;/b&gt;하는 앱이다. &lt;b&gt;워크플로우 자동화 도구&lt;/b&gt;를 활용해 구글 캘린더, 노션, 슬랙 등과 AI-Agent를 연동하여 사용자가 별도 설정을 하지 않아도 자동으로 데이터를 수집하고 패턴을 분석받을 수 있다. 기존 일정 관리 앱과 달리 개인의 생체리듬, 집중력 패턴, 업무 특성을 종합 분석한다.&lt;br /&gt;&lt;br /&gt;TimeCraft는 출시 4년 만에 다음 성과를 달성했다:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-- &lt;b&gt;구글 플레이스토어 4.6점&lt;/b&gt; (리뷰 15,000개 이상)&lt;br /&gt;-- &lt;b&gt;누적 다운로드 50만 회&lt;/b&gt;&lt;br /&gt;-- &lt;b&gt;월 활성 사용자 12만 명&lt;/b&gt;&lt;br /&gt;-- &lt;b&gt;월 2회 정기 업데이트&lt;/b&gt; 진행&lt;br /&gt;&lt;br /&gt;잉넷은 개발 과정과 노하우를 &lt;b&gt;티스토리 블로그&lt;/b&gt;를 통해 지속 공유했다. 현재 월 방문자 3만 명을 기록하며 많은 개발자들에게 참고 자료가 되고 있다.&lt;br /&gt;&lt;br /&gt;잉넷은 현재 &lt;b&gt;팀 단위 일정 최적화 솔루션&lt;/b&gt;과 &lt;b&gt;AI 기반 학습 효율화 앱&lt;/b&gt;을 동시 개발 중이다. TimeCraft의 글로벌 진출도 준비하고 있다.&lt;br /&gt;&lt;br /&gt;그는 &quot;퀵스택 마인드셋으로 필요한 기술을 빠르게 습득하고, 작은 것부터 시작해 점진적으로 개선해나가는 것이 핵심이었다&quot;며 &quot;앞으로도 AI가 개인의 패턴을 학습해 더 나은 삶을 제안하는 앱들을 지속 개발할 계획&quot;이라고 밝혔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;잉넷 개발자에 대하여&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잉넷은 11년차 개발자로, 솔루션 개발 6년 경력을 바탕으로 AI 앱 개발 영역으로 성공적인 전환을 이룬 사례다. 퀵스택 마인드셋을 실천하며 일정 최적화 AI 앱 시장에서 독보적 위치를 구축했다. 현재 티스토리 블로그 운영을 통해 개발 노하우를 공유하고 있다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;FAQ&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 백엔드 개발자에서 앱 개발자로 전환하게 된 계기는?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그룹웨어 개발을 하면서 '내가 정말 만들고 싶은 건 뭘까?'라는 생각을 자주 했어요. 회사에서는 주어진 요구사항대로 개발하는 게 대부분인데, 개인적으로는 사람들의 일상을 편하게 만드는 도구를 만들고 싶었죠. 앱이 그런 아이디어를 가장 직접적으로 구현할 수 있는 방법 같았어요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. 퀵스택 마인드셋을 적용한 구체적인 학습 방법은?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예전에는 Flutter를 배운다면 모든 걸 완벽하게 익히려 했어요. 하지만 퀵스택은 'TimeCraft를 만들기 위해 지금 당장 뭐가 필요한가?'를 먼저 생각하고, 그것만 집중적으로 학습하는 거예요. 기본 UI 구성과 데이터 연동만 할 줄 알아도 첫 버전은 만들 수 있거든요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. 가장 기억에 남는 사용자 피드백은?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자분께서 &quot;육아하랴 회사일 하랴 정신없이 살았는데, TimeCraft 덕분에 내 시간을 효율적으로 쓸 수 있게 됐다&quot;는 리뷰를 남겨주셨어요. 그 순간 '내가 만든 앱이 누군가에게 정말로 도움이 되고 있구나'를 실감했죠.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. 앞으로 5년 후 목표는?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TimeCraft를 글로벌 시장에도 진출시키고, AI 기반 학습 효율화 앱도 준비 중이에요. 궁극적으로는 'AI가 개인의 패턴을 학습해서 더 나은 삶을 제안하는' 앱들을 계속 만들어가고 싶어요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. 비슷한 고민을 하는 후배 개발자들에게 한 마디?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완벽하게 준비되기를 기다리지 마세요. 저도 Flutter를 제대로 알기도 전에 첫 앱을 만들기 시작했어요. 부족한 부분은 하나씩 채워나가면 되거든요. 중요한 건 &lt;b&gt;꾸준함&lt;/b&gt;이에요. 하루에 1%씩 더 나은 하루를 보내다보면 1년 후엔 분명 다른 자신을 만날 수 있을 거예요.&lt;/p&gt;</description>
      <category>About Me</category>
      <category>컨설팅</category>
      <author>잉넷</author>
      <guid isPermaLink="true">https://o-four.tistory.com/21</guid>
      <comments>https://o-four.tistory.com/21#entry21comment</comments>
      <pubDate>Tue, 30 Sep 2025 18:00:41 +0900</pubDate>
    </item>
    <item>
      <title>5년 후 미래를 위한 나의 커리어 보도자료</title>
      <link>https://o-four.tistory.com/20</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&quot;백엔드 개발자에서 출발한 잉넷, AI 기반 풀스택 앱 개발자로 성공적인 커리어 전환을 이루며 진정한 자유 개발자로 거듭나다&quot;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한때 '솔루션 백엔드 개발자로서 앞으로도 안정적으로 일하며 살아갈 수 있을까'를 고민하던 6년차 개발자가 이제는 AI 도구를 적극 활용한 자신만의 앱 생태계를 구축하며 업계의 주목받는 풀스택 개발자로 자리매김해 화제다. 주인공은 개인 개발로 40여 개의 앱을 출시한 잉넷(11년차) 풀스택 개발자다.&lt;br /&gt;&lt;br /&gt;그의 변화는 기존 백엔드 개발에만 머물러 있던 5년 전부터 시작됐다. '언제까지 남이 정해준 요구사항만 개발할 것인가'라는 근본적 질문에서 출발해, &lt;b&gt;Next.js + FastAPI + Flutter&lt;/b&gt;라는 강력한 풀스택 조합과 &lt;b&gt;Windsurf, Claude 등 AI 코딩 도구&lt;/b&gt;를 완벽하게 활용하며 자신만의 길을 개척했다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&quot;AI가 코드를 대신 짜준다고 해서 개발자가 필요 없어지는 게 아니라, 오히려 더 창의적이고 가치 있는 일에 집중할 수 있게 해준다&quot;&lt;/b&gt;고 그는 강조했다. 실제로 그의 개발 속도는 AI 도구 도입 후 &lt;b&gt;300% 이상 향상&lt;/b&gt;되었으며, 반복적인 코딩 작업에서 벗어나 사용자 경험 설계와 비즈니스 로직에 더 많은 시간을 투자할 수 있게 되었다.&lt;br /&gt;&lt;br /&gt;그의 첫 성공작은 &lt;b&gt;'일상 루틴 트래커'&lt;/b&gt; 앱이었다. Windsurf의 도움으로 단 2주 만에 MVP를 완성한 이 앱이 출시 6개월 만에 사용자들로부터 큰 호응을 얻었다. &quot;AI가 제안하는 코드를 검토하고 최적화하는 과정에서 오히려 코드 품질이 더 좋아졌다&quot;며 당시를 회상했다.&lt;br /&gt;&lt;br /&gt;이후 그는 '작지만 확실한 문제 해결'에 집중하는 &lt;b&gt;AI 기반 다작 전략&lt;/b&gt;을 펼쳤다. &lt;b&gt;대학생을 위한 시간표 앱, 직장인 점심 추천 앱, 반려동물 건강 관리 앱&lt;/b&gt; 등 타겟이 명확한 앱들을 지속적으로 출시했다. Flutter의 크로스플랫폼 특성과 AI 코드 생성을 결합해 개발 효율성을 극대화했고, FastAPI로 구축한 백엔드는 여러 앱에서 공통으로 활용할 수 있도록 모듈화했다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&quot;기술적 완벽함보다는 사용자가 정말 원하는 것을 AI의 도움으로 빠르게 만들어내는 것에 집중했습니다&quot;&lt;/b&gt;라고 그는 말했다. 실제로 그의 앱들은 화려한 기능보다는 &lt;b&gt;직관적인 UX와 정확한 문제 해결&lt;/b&gt;에 포커스를 맞춘 것이 특징이다.&lt;br /&gt;&lt;br /&gt;현재 그는 출시한 40여 개 앱 중 10개 정도의 핵심 앱에서 안정적인 사용자층을 확보하고 있으며, 나머지는 실험적 프로젝트나 레거시로 관리하고 있다. &lt;b&gt;개발한 메인 앱 5개가 전체 사용자의 80%를 차지&lt;/b&gt;하며, 나머지 20%는 웹 서비스들로 이루어져 있다.&lt;br /&gt;&lt;br /&gt;특히 그가 개발한 &lt;b&gt;&quot;스마트 할일 관리 앱&quot;&lt;/b&gt; 은 AI 기반 우선순위 자동 분류와 개인화된 생산성 인사이트 제공으로 월 활성 사용자 x만 명을 보유하며, 생산성 앱 카테고리에서 꾸준히 상위권을 유지하고 있다. 단순한 할일 목록을 넘어 사용자의 업무 패턴을 학습해 최적의 일정을 제안하는 혁신적 기능으로 주목받고 있다.&lt;br /&gt;&lt;br /&gt;잉넷 개발자는 최근 한 개발자 컨퍼런스에서 &quot;5년 전 백엔드 개발에만 매여있을 때는 회사의 결정에 내 커리어가 좌우된다는 두려움이 있었다&quot;며 &quot;지금은 AI와 함께 내가 만든 서비스들이 실제 사용자들에게 도움이 되고 있다는 보람과 함께 개발자로서의 자유를 얻었다&quot;고 소감을 밝혔다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;잉넷 개발자에 대하여&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잉넷은 11년차 풀스택 개발자로, Java/Spring, Next.js, FastAPI, Flutter를 활용하는 다재다능한 개발자다. AI 코딩 도구를 적극 활용하여 개발 생산성을 혁신적으로 향상시킨 대표적인 사례로, 현재 40여 개의 개인 앱을 운영하는 성공적인 1인 개발자이자, 'AI와 인간이 협력하는 미래의 개발 방식'을 실천하는 것으로 유명하다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;FAQ&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 백엔드 개발자에서 풀스택으로 전환한 가장 큰 동기는 무엇인가요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 큰 동기는 &lt;b&gt;'온전히 내 아이디어를 구현하고 싶다'&lt;/b&gt;는 욕구였습니다. 백엔드만 할 때는 항상 다른 사람(클라이언트)이 만든 기획서와 요구사항에 맞춰 개발해야 했는데, 정작 제가 생각하는 더 나은 사용자 경험은 구현할 수 없었거든요. 풀스택을 배우면서 아이디어부터 배포까지 모든 과정을 제가 주도할 수 있게 되었고, 그것이 지금의 성과로 이어졌다고 생각합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. 40개 앱을 만들면서 가장 중요하게 생각한 가치는 무엇인가요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'사용자가 정말 필요로 하는가?'&lt;/b&gt;입니다. 기술적으로 멋진 앱보다는 일상의 작은 불편함을 정확히 해결해주는 앱이 더 성공했어요. 제가 직접 사용하면서 불편함을 느낀 부분을 해결한 앱들이 대부분 히트했습니다. AI가 도와준다고 해서 기술을 과시하는 앱을 만들 필요는 없어요. 기술은 화려할 필요 없고, 문제 해결에 정확히 맞춰져야 한다고 생각해요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. '진정한 자유 개발자'란 어떤 상태를 의미하나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시간과 장소, 그리고 만들고 싶은 것을 자유롭게 선택할 수 있는 상태&lt;/b&gt;입니다. 월요일 오전에 갑자기 새로운 앱 아이디어가 떠오르면 AI 도구의 도움으로 몇 시간 만에 프로토타입을 만들어볼 수 있고, 여행을 가면서도 노트북 하나로 서비스를 운영할 수 있어요. 무엇보다 제가 만든 서비스가 사용자들에게 실질적인 도움이 되는 모습을 직접 확인할 수 있다는 것이 가장 큰 자유라고 생각합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. 이 모든 변화의 과정에서 가장 힘들었던 순간은 언제였나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기에는 회사 업무를 마친 뒤 매일 밤과 주말을 할애해 Next.js, FastAPI, Flutter 같은 새로운 기술 스택과 AI 코딩 도구를 공부하던 시기가 가장 힘들었습니다. 본업으로 쌓이는 피로감에 학습 효율이 떨어지고, 가끔은 진도가 잘 나가지 않아 &amp;lsquo;이렇게까지 해야 할까&amp;rsquo; 하는 회의감이 들기도 했습니다. 회사 일과 병행하다 보니 시간 관리가 쉽지 않았고, 가정과 개인 생활이 희생되는 것 같은 압박도 컸습니다. 하지만 일정을 철저히 관리하고 작은 목표 단위로 학습 계획을 세우며 꾸준히 실행한 덕분에, 결국 새로운 도구들을 자연스럽게 업무에 녹여낼 수 있었고 그 과정에서 깊은 만족감과 자신감을 얻을 수 있었습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Next.js + FastAPI + Flutter + AI 도구 조합을 선택한 특별한 이유가 있나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 장점이 완벽하게 보완되는 조합이라고 생각했습니다. &lt;b&gt;Next.js는 빠른 웹 프로토타입 제작과 SEO&lt;/b&gt;에 최적화되어 있고, &lt;b&gt;FastAPI는 기존 JAVA 백엔드 경험을 Python으로 확장하면서도 개발 속도가 빨라요&lt;/b&gt;. &lt;b&gt;Flutter는 하나의 코드로 iOS/Android 동시 배포&lt;/b&gt;가 가능하죠. 여기에 &lt;b&gt;Windsurf과 Claude 같은 AI 도구&lt;/b&gt;를 추가하면 혼자서 모든 플랫폼을 커버하면서도 개발 속도를 3배 이상 향상시킬 수 있어요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. AI 코딩 도구를 어떻게 활용하고 계신가요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;반복적인 코드 작성은 모두 AI에게 맡기고, 저는 비즈니스 로직과 사용자 경험에 집중&lt;/b&gt;해요. CRUD API 생성, 기본적인 UI 컴포넌트 작성, 테스트 코드 작성 등은 Windsurf가 거의 완벽하게 해주거든요. Claude 모델로 선택하면 복잡한 로직을 설명하면 전체 구조를 제안해주고, 코드 리뷰나 최적화 제안도 해줘서 정말 유용해요. 덕분에 개발 시간의 70%를 기획과 UX 개선에 투자할 수 있게 되었습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. 40개 앱 중에서 성공률은 어느 정도 되나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정확히 말씀드리면 &lt;b&gt;40개 중 10개 정도가 의미있는 사용자층을 확보&lt;/b&gt;하고 있어요. 나머지는 실험작이거나 학습 목적으로 만든 것들입니다. 하지만 AI 도구 덕분에 실패 비용이 크게 줄었어요. 예전에는 앱 하나 만드는 데 한 달이 걸렸다면, 지금은 일주일이면 충분하거든요. 그래서 더 많은 실험을 할 수 있고, 25%의 성공률도 나쁘지 않다고 생각해요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. AI 도구 활용으로 개발 효율성이 실제로 얼마나 향상되었나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개발 속도는 약 300% 향상&lt;/b&gt;되었어요. 가장 큰 변화는 &lt;b&gt;보일러플레이트 코드를 작성하는 시간이 거의 사라진 것&lt;/b&gt;입니다. FastAPI로 공통 모듈을 만들어두고, 새 앱을 만들 때마다 AI가 이 모듈들을 조합해서 백엔드를 생성해줘요. Flutter에서도 자주 쓰는 UI 패턴들을 AI가 기억하고 있어서 마치 레고 블록처럼 조합해서 빠르게 앱을 만들 수 있어요. 무엇보다 &lt;b&gt;코드 품질이 오히려 향상&lt;/b&gt;된 게 놀라웠어요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. 가장 성공한 앱의 성공 요인은 무엇이었나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'스마트 할일 관리 앱'&lt;/b&gt;이 가장 성공했는데, 성공 요인은 &lt;b&gt;AI 기반 개인화와 사용자 중심 설계&lt;/b&gt;였어요. 단순한 To-Do 리스트가 아니라 사용자의 완료 패턴을 학습해서 현실적인 일정을 제안하고, 업무 스타일에 맞는 우선순위를 자동으로 분류해줘요. AI 도구의 도움으로 복잡한 머신러닝 로직도 빠르게 구현할 수 있었고, 사용자 피드백을 받으면 24시간 내에 개선사항을 반영할 수 있었어요. 특히 '번아웃 방지 알림' 기능이 직장인들에게 큰 호응을 얻었죠.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. 마케팅은 어떻게 하고 계신가요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Product-led Growth 전략&lt;/b&gt;을 사용해요. 앱 자체가 마케팅이 되도록 설계합니다. 사용자가 친구에게 공유하고 싶어하는 기능들을 의도적으로 넣고, 개발자 커뮤니티나 관련 온라인 커뮤니티에서 자연스럽게 소개하는 방식이에요. 유료 광고는 거의 하지 않고, ASO(앱스토어 최적화)에 더 집중하고 있습니다. AI 도구 덕분에 빠르게 업데이트할 수 있어서 사용자들이 더 많은 관심을 가져주는 것 같아요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11. 현재 주요 앱들의 운영 현황은 어떻게 되나요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;앱 5개가 전체 사용자의 80%를 차지&lt;/b&gt;하고 있어요. 각 앱마다 다른 타겟층을 가지고 있고, 사용자 피드백을 통해 지속적으로 개선하고 있습니다. AI 도구 덕분에 피드백을 받으면 즉시 반영할 수 있어서 사용자 만족도가 높아요. 최근에는 B2B로 기업용 버전도 개발해서 더 넓은 사용자층을 확보하려고 시도하고 있어요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12. 실패한 앱들에서 배운 가장 큰 교훈은?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'내가 좋아하는 것'과 '사용자가 필요로 하는 것'은 다르다&lt;/b&gt;는 점이에요. 초기에 AI 도구의 강력함에 매료되어 기술적으로 복잡한 기능들만 잔뜩 넣은 앱을 만들었는데, 아무도 사용하지 않더라고요. 그 후로는 항상 &quot;이게 정말 사용자에게 필요한 기능인가?&quot;를 먼저 자문하고 개발하기 시작했어요. AI는 도구일 뿐이고, 중요한 건 사용자의 진짜 문제를 해결하는 것이라는 걸 깨달았죠.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;13. 현재 운영 중인 앱들의 관리는 어떻게 하고 계신가요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;AI 기반 자동화가 핵심&lt;/b&gt;이에요. 모니터링부터 배포까지 최대한 자동화해뒀습니다. FastAPI 백엔드는 Docker로 컨테이너화했고, GitHub Actions로 CI/CD 파이프라인을 구축했어요. 앱 크래시나 서버 에러는 실시간 알림으로 받고, 주요 지표들은 대시보드로 한눈에 확인할 수 있어요. AI 도구가 간단한 버그 수정이나 성능 최적화 코드도 제안해주니까 덕분에 하루 1시간만 투자하면 모든 앱을 안정적으로 운영할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;14. 앞으로 5년 후 목표는 무엇인가요?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로는 &lt;b&gt;AI와 함께 더 많은 사용자들에게 도움이 되는 혁신적인 서비스들을 구축&lt;/b&gt;하고 싶어요. 그리고 제가 겪은 시행착오를 바탕으로 &lt;b&gt;AI 시대의 개발자들을 위한 교육 사업&lt;/b&gt;도 시작하려고 합니다. 온라인 강의나 멘토링을 통해 더 많은 개발자들이 AI와 협력하는 새로운 개발 방식을 익혀 자신만의 길을 찾을 수 있도록 돕고 싶어요. 또한 더욱 발전된 AI 기술을 접목한 스마트한 앱들도 계획하고 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;15. 백엔드 개발자에서 AI 기반 풀스택으로 전환하려는 후배들에게 조언한다면?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기존 백엔드 경험을 버리지 말고, 그것을 기반으로 AI 도구와 함께 확장하세요.&lt;/b&gt; 저도 JAVA 백엔드 6년 경험이 FastAPI 학습에 큰 도움이 됐고, AI 도구가 제안하는 코드의 품질을 판단하는 데도 기존 경험이 중요했어요. 그리고 &lt;b&gt;AI 도구를 두려워하지 말고 적극 활용하되, 항상 비판적으로 검토하는 습관&lt;/b&gt;을 기르세요. &lt;b&gt;작은 프로젝트부터 시작해서 점진적으로 스케일을 키워가는 것&lt;/b&gt;이 중요합니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;16. 가장 큰 실패와 그것에서 배운 점은?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;AI 도구에만 의존해서 완벽한 앱을 만들려다가 6개월을 허비한 적&lt;/b&gt;이 있어요. AI가 제안하는 모든 기능을 다 넣고 디자인도 화려하게 만들었는데, 막상 출시해보니 아무도 사용하지 않더라고요. 그때 깨달은 것은 &lt;b&gt;'사용자는 AI의 완벽함보다 진짜 유용함을 원한다'&lt;/b&gt;는 것이었어요. 이후로는 AI의 도움으로 MVP를 빠르게 출시하고 사용자 피드백을 받아 개선하는 방식으로 바꿨습니다. AI는 속도를 높여주는 도구이지, 사용자의 니즈를 대신 찾아주지는 않아요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;17. 현재 가장 만족스러운 점과 아쉬운 점은?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;만족스러운 점은 AI와 함께하는 창작의 즐거움&lt;/b&gt;이에요. 아이디어가 떠오르면 몇 시간 만에 실제 동작하는 프로토타입을 만들 수 있고, 오전에 카페에서 코딩하고 오후에는 산책하면서 새로운 아이디어를 떠올릴 수 있는 삶이 정말 감사해요. &lt;b&gt;아쉬운 점은 AI 도구가 아직 완벽하지 않아서 항상 검토와 수정이 필요하다&lt;/b&gt;는 것이에요. 그래서 최근에는 AI 개발 동향을 꾸준히 팔로우하면서 더 나은 도구들을 찾고 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;18. 5년 전의 자신에게 한마디 해준다면?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;완벽하게 준비될 때까지 기다리지 말고, 겁먹지 말고 지금 당장 시작해.&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 풀스택 공부를 시작할 때도 '내가 과연 할 수 있을까' 하는 두려움이 있었는데, AI 도구를 도입한 후로는 그 두려움이 대부분 사라졌어요. 기존 백엔드 경험이 있으면 AI의 도움으로 충분히 확장 가능하거든요. 중요한 건 완벽한 준비가 아니라 &lt;b&gt;AI와 함께하는 지속적인 실행과 개선&lt;/b&gt;입니다. 그리고 AI를 두려워하지 말라고 말해주고 싶어요. AI는 경쟁자가 아니라 최고의 파트너예요.&lt;/p&gt;</description>
      <category>About Me</category>
      <category>컨설팅</category>
      <author>잉넷</author>
      <guid isPermaLink="true">https://o-four.tistory.com/20</guid>
      <comments>https://o-four.tistory.com/20#entry20comment</comments>
      <pubDate>Tue, 23 Sep 2025 13:00:38 +0900</pubDate>
    </item>
    <item>
      <title>[N8N]  Synology NAS에서 n8n Self Hosting 가이드</title>
      <link>https://o-four.tistory.com/19</link>
      <description>&lt;h1&gt;Synology NAS에서 n8n Self Hosting 가이드&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요! 오늘은 Synology NAS DS923+에서 n8n을 Self Hosting으로 설치하고 사용하는 방법을 자세히 소개해드리겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 AI 업무 자동화가 대세가 되면서 &lt;b&gt;n8n&lt;/b&gt;, &lt;b&gt;Make&lt;/b&gt;, &lt;b&gt;Zapier&lt;/b&gt; 같은 워크플로우 자동화 플랫폼들이 주목받고 있는데요. 저도 이 세 플랫폼을 직접 사용해보면서 비교해봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론부터 말씀드리면, 각 플랫폼마다 지원하는 앱의 차이는 있지만 적절한 우회 방법을 통해 원하는 자동화 시나리오는 모두 구현 가능했습니다. 그래서 &lt;b&gt;무료로 무제한 사용&lt;/b&gt;할 수 있는 n8n Self Hosting을 선택하게 되었어요.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;n8n vs Make vs Zapier 비교표&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 플랫폼을 직접 사용해보면서 정리한 비교표입니다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;비교 항목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;n8n&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;Make&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;Zapier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;무료 플랜&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;무제한 (셀프호스팅)&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;1,000 오퍼레이션/월&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;100 태스크/월, 5개 Zap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;유료 플랜 시작가&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;$22/월 (클라우드)&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;$9/월&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;$19.99/월&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;호스팅 옵션&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;셀프호스팅 + 클라우드&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;클라우드만&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;클라우드만&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;오픈소스&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;✅&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;❌&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;워크플로우 복잡성&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;매우 높음&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;높음&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;중간&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;커스터마이징&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;매우 높음&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;중간&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;제한적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;코딩 지원&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;JS/Python 완전지원&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;제한적&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;제한적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;데이터 소유권&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;완전 제어 (셀프호스팅시)&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;제3자 서버&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;제3자 서버&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;AI 기능&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;고급 (LangChain 노드)&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;중간&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기본적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;b&gt;확장성&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;무제한&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;높음&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;중간&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n8n의 가장 큰 장점은 &lt;b&gt;셀프 호스팅으로 무제한 무료 사용&lt;/b&gt;이 가능하다는 점이에요. 데이터도 완전히 내가 관리할 수 있어서 보안도 훨씬 안전하죠!&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Synology NAS에서 n8n 설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 본격적으로 Synology NAS에서 n8n을 설치해보겠습니다!&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;Synology NAS에서 n8n을 Self Hosting하기 위해서는 몇 가지 필수 패키지들을 먼저 설치해야 해요.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;필수 패키지 목록&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Container Manager&lt;/b&gt; (Docker)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker 컨테이너를 관리하기 위한 핵심 패키지&lt;/li&gt;
&lt;li&gt;n8n 애플리케이션을 컨테이너로 실행하기 위해 반드시 필요&lt;/li&gt;
&lt;li&gt;Synology Package Center에서 &quot;Container Manager&quot; 검색 후 설치&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;439&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gzmbv/btsPXSEvMeR/kFodAJjRtbEhnZEhf18X61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gzmbv/btsPXSEvMeR/kFodAJjRtbEhnZEhf18X61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gzmbv/btsPXSEvMeR/kFodAJjRtbEhnZEhf18X61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGzmbv%2FbtsPXSEvMeR%2FkFodAJjRtbEhnZEhf18X61%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;439&quot; height=&quot;177&quot; data-origin-width=&quot;439&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Web Station&lt;/b&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;도메인 연결이나 SSL 인증서 관리 시 활용&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/38z6R/btsPYLSGIyf/4qqe8u0ZjrfqyFRTjmw0u0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/38z6R/btsPYLSGIyf/4qqe8u0ZjrfqyFRTjmw0u0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/38z6R/btsPYLSGIyf/4qqe8u0ZjrfqyFRTjmw0u0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F38z6R%2FbtsPYLSGIyf%2F4qqe8u0ZjrfqyFRTjmw0u0%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;380&quot; height=&quot;208&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  중요한 점!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Container를 사용해서 Self Hosting을 하기 때문에 &lt;b&gt;DS___+ 시리즈 같은 플러스 모델&lt;/b&gt;을 사용해야 해요. 일반 모델(DS___)에서는 Container Manager 설치가 안 되거든요!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2단계: n8n 컨테이너 생성하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필수 패키지 설치가 완료되셨다면, 이제 본격적으로 n8n 컨테이너를 생성하고 실행해보겠습니다!&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;n8n 이미지 다운로드하기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 n8n 이미지를 다운로드해야 해요.&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;Container Manager 실행하기&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DSM 메인 메뉴에서 &quot;Container Manager&quot; 클릭&lt;/li&gt;
&lt;li&gt;또는 Package Center에서 &quot;Container Manager&quot; 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;n8n 이미지 다운로드&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좌측 메뉴에서 &quot;레지스트리&quot; 탭 클릭&lt;/li&gt;
&lt;li&gt;(참고: 레지스트리 설정에 &lt;a href=&quot;https://registry.hub.docker.com&quot;&gt;Docker Hub&lt;/a&gt;가 등록되어 있어야 해요)&lt;/li&gt;
&lt;li&gt;검색창에 &quot;n8n&quot; 입력&lt;/li&gt;
&lt;li&gt;n8nio/n8n 이미지 선택 후 &quot;다운로드&quot; 클릭&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PXQCj/btsPZeU18tx/JAn8sa5hjPm4K2hnrKUTD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PXQCj/btsPZeU18tx/JAn8sa5hjPm4K2hnrKUTD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PXQCj/btsPZeU18tx/JAn8sa5hjPm4K2hnrKUTD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPXQCj%2FbtsPZeU18tx%2FJAn8sa5hjPm4K2hnrKUTD0%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;1189&quot; height=&quot;567&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;n8n 컨테이너 생성 및 설정하기&lt;/h4&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;컨테이너 생성 시작&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좌측 메뉴에서 &quot;이미지&quot; 탭 클릭&lt;/li&gt;
&lt;li&gt;&quot;n8nio/n8n&quot; 이미지 선택&lt;/li&gt;
&lt;li&gt;&quot;실행&quot; 버튼 클릭&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HRvbr/btsPZcXeRE1/buJOtkp70q0QCTZRK0PmQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HRvbr/btsPZcXeRE1/buJOtkp70q0QCTZRK0PmQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HRvbr/btsPZcXeRE1/buJOtkp70q0QCTZRK0PmQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHRvbr%2FbtsPZcXeRE1%2FbuJOtkp70q0QCTZRK0PmQK%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;1190&quot; height=&quot;345&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;일반 설정&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;이미지 이름&lt;/b&gt;: n8nio/n8n:latest (다운로드 받은 최신 이미지 파일)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컨테이너 이름&lt;/b&gt;: n8n (원하는 이름으로 설정 가능)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;리소스 제한&lt;/b&gt;: CPU 우선순위 중, 메모리 10GB (사양에 맞게 설정 - NAS 메모리가 20GB 여서 절반으로 설정)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자동 재시작 활성화&lt;/b&gt;: 체크 (NAS 재부팅 시 자동 시작)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Web Station을 통해 웹 포털 설정&lt;/b&gt;: 체크
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;  - 컨테이너 포트: 5678 / HTTP&lt;/code&gt;&lt;/pre&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MYqHt/btsPXYd4lm5/j0E7nxlhxzVe3mQHJML9YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MYqHt/btsPXYd4lm5/j0E7nxlhxzVe3mQHJML9YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MYqHt/btsPXYd4lm5/j0E7nxlhxzVe3mQHJML9YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMYqHt%2FbtsPXYd4lm5%2Fj0E7nxlhxzVe3mQHJML9YK%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;731&quot; height=&quot;573&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;573&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;포트 설정&lt;/b&gt;: 일반 설정에서 Web Station 설정 시 자동으로 추가되어 있으나 필요한 경우 추가&lt;/li&gt;
&lt;li&gt;&lt;b&gt;볼륨 설정&lt;/b&gt;: 컨테이너 볼륨을 Synology NAS의 공유 폴더에 매핑
&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;code&gt;/volume1/docker/n8n-server-web&lt;/code&gt; (임의의 경로 지정)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;마운트 경로&lt;/b&gt;: &lt;code&gt;/home/node/.n8n&lt;/code&gt; (컨테이너 내부 n8n 데이터 저장 경로)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;권한&lt;/b&gt;: 읽기/쓰기&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baC69v/btsP0e7VAs5/dyx2q9hRGsWg9lG69evhg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baC69v/btsP0e7VAs5/dyx2q9hRGsWg9lG69evhg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baC69v/btsP0e7VAs5/dyx2q9hRGsWg9lG69evhg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaC69v%2FbtsP0e7VAs5%2Fdyx2q9hRGsWg9lG69evhg0%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;474&quot; height=&quot;488&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uh1nZ/btsPXLfahcr/SyRXWAmSKQOSqNSy2V1R1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uh1nZ/btsPXLfahcr/SyRXWAmSKQOSqNSy2V1R1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uh1nZ/btsPXLfahcr/SyRXWAmSKQOSqNSy2V1R1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuh1nZ%2FbtsPXLfahcr%2FSyRXWAmSKQOSqNSy2V1R1k%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;675&quot; height=&quot;147&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  매우 중요한 팁!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NAS에서 폴더를 추가하면 root 권한으로 생성되는데, 컨테이너 내부에서는 node 사용자 권한으로 파일을 복사할 수 없어서 &lt;b&gt;컨테이너가 무한 재실행&lt;/b&gt;되는 문제가 발생할 수 있어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 해결하려면 SSH로 접속해서 폴더 권한을 변경해야 합니다:&lt;br /&gt;&lt;a href=&quot;https://github.com/n8n-io/n8n/issues/13753&quot;&gt;GitHub 이슈&lt;/a&gt;에서도 확인할 수 있어요!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;1. **SSH 활성화**: 제어판 &amp;rarr; 터미널 및 SNMP &amp;rarr; SSH 활성화
2. **NAS SSH 접속**: -
3. **권한 변경**: `sudo chown -R 1000:1000 /volume1/docker/n8n-server-web/`&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;763&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHsZE/btsPZPtQdnU/VQpkILMinTGHKWACJSktAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHsZE/btsPZPtQdnU/VQpkILMinTGHKWACJSktAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHsZE/btsPZPtQdnU/VQpkILMinTGHKWACJSktAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHsZE%2FbtsPZPtQdnU%2FVQpkILMinTGHKWACJSktAk%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;763&quot; height=&quot;492&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;5&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;환경&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;환경 변수 추가:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;N8N_HOST&lt;/code&gt;: &lt;code&gt;n8n.xxxx.synology.me&lt;/code&gt; (NAS IP 주소 및 Web Station으로 호스팅할 주소)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N8N_PROTOCOL&lt;/code&gt;: &lt;code&gt;https&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N8N_PORT&lt;/code&gt;: &lt;code&gt;5678&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WEBHOOK_URL&lt;/code&gt;: &lt;code&gt;https://n8n.xxxx.synology.me&lt;/code&gt; (n8n 시나리오에서 웹훅 트리거 URL 영향)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;6&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;네트워크&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;네트워크&lt;/code&gt;: host (Web Station 사용 시 host 필수)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컨테이너 실행&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 설정 확인 후 &quot;완료&quot;시 컨테이너가 성공적으로 생성되고 실행됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3단계: Web Station으로 n8n 웹 서비스 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 n8n을 웹에서 접속할 수 있도록 Web Station을 설정해보겠습니다!&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Web Station 설정하기&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Web Station 실행&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DSM 메인 메뉴에서 &quot;Web Station&quot; 클릭&lt;/li&gt;
&lt;li&gt;또는 Package Center에서 &quot;Web Station&quot; 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;웹 포털 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좌측 메뉴에서 &quot;웹 포털&quot; 탭 클릭&lt;/li&gt;
&lt;li&gt;&quot;생성&quot; &amp;rarr; &quot;웹 서비스 포털&quot; 클릭&lt;/li&gt;
&lt;li&gt;패키지 서버 포털 편집:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;서비스&lt;/code&gt;: &lt;code&gt;n8n&lt;/code&gt; (위에서 생성한 컨테이너 명이 표시되어야 해요)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;포털유형&lt;/code&gt;: &lt;code&gt;이름기반&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;호스트 이름&lt;/code&gt;: &lt;code&gt;n8n.xxxx.synology.me&lt;/code&gt; (환경변수 N8N_HOST과 동일하게 입력)&lt;/li&gt;
&lt;li&gt;나머지 항목은 기본값으로 두고 &quot;생성&quot; 버튼 클릭하면 웹 호스팅 완료!&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;849&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PHJc8/btsP0yypD2R/KKZTWCyTS19UwqcP3zrda1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PHJc8/btsP0yypD2R/KKZTWCyTS19UwqcP3zrda1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PHJc8/btsP0yypD2R/KKZTWCyTS19UwqcP3zrda1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPHJc8%2FbtsP0yypD2R%2FKKZTWCyTS19UwqcP3zrda1%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;849&quot; height=&quot;574&quot; data-origin-width=&quot;849&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4단계: n8n 접속 및 확인하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 모든 설정이 완료되었습니다! n8n에 접속해보겠습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;접속 확인&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 브라우저에서 &lt;code&gt;https://n8n.xxxx.synology.me&lt;/code&gt; 접속&lt;/li&gt;
&lt;li&gt;처음 접속시 admin 계정을 생성하세요&lt;/li&gt;
&lt;li&gt;n8n 대시보드가 정상적으로 표시되면 설치 완료!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  참고 자료&lt;/h2&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://github.com/n8n-io/n8n/issues/13753&quot;&gt;GitHub Issue - Synology NAS hosting error 관련&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.n8n.io/hosting/&quot;&gt;n8n 공식 Hosting 문서&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발/자동화</category>
      <category>ContainerManager</category>
      <category>n8n</category>
      <category>SelfHosting</category>
      <category>Webstation</category>
      <category>워크플로우자동화</category>
      <author>잉넷</author>
      <guid isPermaLink="true">https://o-four.tistory.com/19</guid>
      <comments>https://o-four.tistory.com/19#entry19comment</comments>
      <pubDate>Wed, 20 Aug 2025 15:21:00 +0900</pubDate>
    </item>
    <item>
      <title>[JS] Bun 차세대 Javascript 런타임</title>
      <link>https://o-four.tistory.com/16</link>
      <description>&lt;h1&gt;Bun을 사용해야 하는 이유 + Hello World 웹페이지 띄우기 가이드&lt;/h1&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Bun&lt;/b&gt;은 차세대 JavaScript 런타임으로, 기존 Node.js 대비 &lt;b&gt;속도, 편의성, 통합성&lt;/b&gt;을 한 단계 끌어올렸습니다.&lt;br /&gt;이 글에서는 Bun의 장점과 함께, &lt;b&gt;Hello World 웹페이지를 띄우는 방법&lt;/b&gt;까지 간단히 안내합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  Bun이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bun은 &lt;b&gt;Zig 언어&lt;/b&gt;로 작성된 초고속 JavaScript/TypeScript 런타임입니다.&lt;br /&gt;Node.js, Deno와 같은 역할을 하지만, &lt;b&gt;성능&lt;/b&gt;과 &lt;b&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;JavaScriptCore&lt;/b&gt; 엔진 기반 &amp;rarr; 브라우저 수준의 최적화&lt;/li&gt;
&lt;li&gt;&lt;b&gt;번들러 + 패키지 매니저 + 테스트 러너&lt;/b&gt; 내장&lt;/li&gt;
&lt;li&gt;Node.js API 대부분 호환&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  Bun의 주요 장점&lt;/h2&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;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HTTP 서버, 빌드, 패키지 설치 속도가 Node.js보다 수십 배 빠름&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;개발 환경 통합&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;별도 번들러(Webpack 등)나 패키지 매니저(npm, yarn) 없이 바로 시작 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;높은 호환성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 Node.js 프로젝트 대부분 수정 없이 실행 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;편리한 기능 내장&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;.env&lt;/code&gt; 자동 로드, TypeScript 지원, 브라우저 API 기본 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️ Bun 설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bun 공식 사이트(&lt;a href=&quot;https://bun.sh&quot;&gt;bun.sh&lt;/a&gt;)에서 제공하는 설치 명령어를 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MacOS / Linux&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;curl -fsSL https://bun.sh/install | bash&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Windows (PowerShell)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;llvm&quot;&gt;&lt;code&gt;powershell -c &quot;irm bun.sh/install.ps1 | iex&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 버전을 확인합니다.&lt;/p&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;bun --version&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  Hello World 웹페이지 만들기&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 프로젝트 폴더 생성&lt;/h3&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;mkdir bun-hello
cd bun-hello&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 간단한 HTTP 서버 작성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;server.js&lt;/code&gt; 파일 생성 후 아래 코드 작성:&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;export default {
  port: 3000,
  fetch(request) {
    return new Response(&quot;&amp;lt;h1&amp;gt;Hello World&amp;lt;/h1&amp;gt;&quot;, {
      headers: { &quot;Content-Type&quot;: &quot;text/html&quot; },
    });
  },
};&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bun은 Node.js처럼 &lt;code&gt;http.createServer&lt;/code&gt; 없이도 기본 HTTP 서버 API를 제공합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 서버 실행&lt;/h3&gt;
&lt;pre class=&quot;dockerfile&quot;&gt;&lt;code&gt;bun run server.js&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 브라우저에서 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저를 열고:&lt;/p&gt;
&lt;pre class=&quot;dts&quot;&gt;&lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Hello World&lt;/b&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;984&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Wc9o7/btsPP9mocJy/v8lggkWCsy6VgACFKRX2m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Wc9o7/btsPP9mocJy/v8lggkWCsy6VgACFKRX2m1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Wc9o7/btsPP9mocJy/v8lggkWCsy6VgACFKRX2m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWc9o7%2FbtsPP9mocJy%2Fv8lggkWCsy6VgACFKRX2m1%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;984&quot; height=&quot;454&quot; data-origin-width=&quot;984&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  정리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Bun은 빠르고 간편한 차세대 JS 런타임&lt;/li&gt;
&lt;li&gt;번들러, 패키지 매니저, 테스트 러너까지 올인원 제공&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발/JS</category>
      <category>bun</category>
      <category>HelloWorld</category>
      <category>JavaScript</category>
      <category>웹개발</category>
      <author>잉넷</author>
      <guid isPermaLink="true">https://o-four.tistory.com/16</guid>
      <comments>https://o-four.tistory.com/16#entry16comment</comments>
      <pubDate>Tue, 12 Aug 2025 18:27:38 +0900</pubDate>
    </item>
  </channel>
</rss>