텔레그램 채널
← Articles brudash.com

GitHub 실전 + 앱 개발 + 미래기술

오픈소스 세계에 뛰어들고, 앱을 만들고, 미래를 엿보는 시간
Vol.5 — 약 25,000단어 분량

GitHub에 올라온 수억 개의 프로젝트 — 여기에 세상에서 가장 쩌는 코드가 전부 공개되어 있습니다. 무료로요. 전 세계 1억 명의 개발자가 자기 코드를 공짜로 내놓고, 서로 도우며, 함께 만들어갑니다. 이 문화를 이해하면 프로그래밍의 세계가 완전히 다르게 보입니다. 이 글에서는 GitHub을 실전에서 활용하는 법부터, 앱을 만드는 여러 방법, 그리고 2026년 현재 가장 뜨거운 미래 기술까지 한 번에 다룹니다.

📑 목차

1

🐙 GitHub 실전 활용

GitHub
유용한 저장소 찾는 법 — awesome 리스트 필독

GitHub에는 3억 개 이상의 저장소가 있습니다. 보물이 산더미인데 어디서부터 찾아야 할까요?

Awesome 리스트 — 분야별 최고 모음집

"awesome-{주제}"라는 이름의 저장소는 해당 분야의 최고 도구/라이브러리/자료를 정리한 큐레이션 리스트입니다. GitHub 문화의 핵심입니다.

🔥 가장 유명한 Awesome 리스트들
  • awesome — Awesome 리스트들의 Awesome 리스트 (메타 리스트). Star 33만+
  • awesome-python — Python 라이브러리 총정리. 웹, 데이터, AI, 자동화 분야별
  • awesome-javascript — JS 프레임워크, 도구, 유틸리티
  • awesome-react — React 컴포넌트, 라이브러리, 튜토리얼
  • awesome-selfhosted — 직접 서버에 설치해서 쓸 수 있는 소프트웨어. Notion 대체, Slack 대체 등
  • awesome-docker — Docker 이미지, 도구, 튜토리얼
  • awesome-machine-learning — ML/DL 프레임워크, 데이터셋, 논문
  • free-programming-books — 무료 프로그래밍 책 모음 (한국어 포함!)
  • public-apis — 무료로 쓸 수 있는 API 1400+ 목록
  • the-book-of-secret-knowledge — 시스템 관리자/DevOps 도구 총정리

GitHub 검색 팁

GitHub 고급 검색 # 특정 언어의 인기 프로젝트 stars:>1000 language:python topic:trading # → 1000스타 이상, Python, 주식 트레이딩 관련 # 최근에 활발한 프로젝트 stars:>500 pushed:>2026-01-01 language:python # → 2026년 이후 업데이트된 인기 Python 프로젝트 # 특정 파일 내용 검색 filename:requirements.txt flask pykrx # → requirements.txt에 flask와 pykrx가 들어간 프로젝트 # GitHub Trending (요즘 뜨는 프로젝트) # https://github.com/trending # 일간/주간/월간별, 언어별 필터링 가능

Star / Watch / Fork의 의미

  • Star ⭐ — "좋아요". 나중에 찾아보기 쉽게 북마크. Star가 많을수록 인기 프로젝트
  • Watch 👁️ — "구독". 이슈, PR, 릴리스 등 모든 활동이 알림으로 옴
  • Fork 🍴 — "복사해서 내 거로". 원본 저장소를 내 계정에 복사. 수정 후 PR을 보낼 수 있음

Issues로 소통하기

GitHub Issues는 프로젝트의 "게시판"입니다. 버그를 제보하거나 기능을 요청하거나 질문할 수 있습니다.

✍️
좋은 Issue 작성법:
1. 환경 정보 — OS, Python 버전, 라이브러리 버전
2. 재현 방법 — 어떤 순서로 하면 이 문제가 발생하는지
3. 기대 결과 vs 실제 결과
4. 에러 로그 — 전체 traceback 붙여넣기
"안 돼요"만 쓰면 아무도 도와줄 수 없습니다.

Pull Request (PR) 만들기

오픈소스에 기여하는 핵심 방법입니다. "이 코드를 이렇게 고쳤는데, 원본에 반영해주세요"라는 제안입니다.

PR 보내기 과정 # 1. Fork — 원본 저장소를 내 계정으로 복사 (GitHub 웹에서 Fork 버튼) # 2. Clone — 내 Fork를 로컬에 다운로드 git clone https://github.com/내계정/awesome-project.git cd awesome-project # 3. Branch — 작업용 브랜치 생성 git checkout -b fix-typo-in-readme # 4. 수정 — 코드 수정 # README.md 오타 수정, 버그 수정, 기능 추가 등 # 5. Commit git add README.md git commit -m "fix: typo in installation guide" # 6. Push — 내 Fork에 올리기 git push origin fix-typo-in-readme # 7. Pull Request — GitHub 웹에서 "New Pull Request" 버튼 # → 원본 저장소 관리자가 리뷰 후 승인하면 반영!

GitHub Actions — 자동화

Vol.4에서 CI/CD 파트에서 다뤘지만, GitHub Actions는 CI/CD 말고도 다양하게 씁니다.

  • 매일 정해진 시간에 스크립트 실행 (크론 대체)
  • Issue가 올라오면 자동으로 라벨 붙이기
  • PR이 올라오면 자동으로 코드 품질 검사
  • Release가 만들어지면 자동으로 패키지 배포

GitHub Pages — 무료 웹 호스팅

GitHub 저장소의 HTML/CSS/JS 파일을 무료로 웹사이트로 배포할 수 있습니다. 서버 없이!

GitHub Pages 설정 # 1. 저장소에 index.html 파일 생성 # 2. Settings → Pages → Source: main branch, /root # 3. 몇 분 후 https://username.github.io/repo-name 에서 접근 가능! # 커스텀 도메인도 가능: # Settings → Pages → Custom domain: mydomain.com # + DNS에서 CNAME 레코드 추가: mydomain.com → username.github.io

GitHub 프로필 꾸미기

GitHub 프로필을 포트폴리오처럼 꾸밀 수 있습니다. "내 이름과 같은 저장소"에 README.md를 만들면 프로필 페이지에 표시됩니다.

💡
프로필 꾸미기 도구:
github-readme-stats — 커밋/PR/이슈 통계 뱃지
github-readme-streak-stats — 연속 커밋 스트릭
github-profile-trophy — 트로피 뱃지
shields.io — 기술 스택 뱃지 생성
이것만으로도 개발자 이력서 대용으로 충분합니다.
2

📦 GitHub에서 프로그램 설치하기

실전
Clone, Release, pip, npm — 설치 방법 총정리 실전 가이드

GitHub에서 프로그램을 설치하는 방법은 여러 가지입니다. 프로젝트마다 다르므로 README를 먼저 읽는 게 중요합니다.

방법 1: Release 다운로드 (가장 쉬움)

개발자가 미리 컴파일해놓은 실행 파일을 다운로드합니다.

Release 다운로드 # 저장소 페이지 → 오른쪽 "Releases" 클릭 # → Assets에서 내 OS에 맞는 파일 다운로드 # 보통: .exe (Windows), .dmg/.app (Mac), .AppImage/.deb (Linux) # 예시: VS Code # https://github.com/microsoft/vscode/releases # → VSCode-darwin-arm64.zip (Mac Apple Silicon)

방법 2: Clone + Build (소스에서 빌드)

소스에서 빌드 # 1. 저장소 클론 git clone https://github.com/user/project.git cd project # 2. README.md 읽기! 설치 방법이 적혀있음 # Python 프로젝트: pip install -r requirements.txt python3 main.py # Node.js 프로젝트: npm install npm run build npm start # Rust 프로젝트: cargo build --release ./target/release/program # Go 프로젝트: go build ./program # C/C++ 프로젝트: mkdir build && cd build cmake .. make sudo make install

방법 3: 패키지 매니저로 설치

패키지 매니저별 설치 # Python (pip) pip install flask # PyPI에서 설치 pip install git+https://github.com/user/repo.git # GitHub 직접 설치 # Node.js (npm) npm install express # npm 레지스트리에서 npm install github:user/repo # GitHub에서 직접 # Rust (cargo) cargo install ripgrep # crates.io에서 # Go go install github.com/user/tool@latest # macOS (Homebrew) brew install htop brew install --cask visual-studio-code # GUI 앱 # Ubuntu (apt) sudo apt install nginx

실전 설치 예시 10+

1. yt-dlp — 유튜브 다운로더
pip install yt-dlp 또는 Release에서 exe 다운로드. yt-dlp "https://youtube.com/watch?v=xxx"
2. ripgrep (rg) — 초고속 텍스트 검색
brew install ripgrep 또는 cargo install ripgrep. grep보다 10배 빠름
3. bat — 예쁜 cat
brew install bat. 문법 강조 + 줄번호가 있는 cat 대체
4. fzf — 퍼지 파인더
brew install fzf. 파일, 명령어 히스토리를 초고속 검색. 터미널 생산성 5배↑
5. lazygit — 터미널 Git GUI
brew install lazygit. 터미널에서 Git을 시각적으로 관리. 커밋, 브랜치, 머지를 GUI처럼
6. tldr — man 페이지의 TL;DR 버전
npm install -g tldr. tldr tar 하면 tar의 핵심 사용법만 보여줌
7. httpie — curl의 예쁜 버전
pip install httpie. http GET api.example.com — 컬러 출력, 자동 JSON 포맷
8. Stable Diffusion WebUI — AI 이미지 생성
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui → ./webui.sh. GPU 필요
9. Ollama — 로컬 LLM 실행
curl -fsSL https://ollama.com/install.sh | sh → ollama run llama3. 내 PC에서 AI 모델 실행
10. Excalidraw — 손그림 스타일 다이어그램
git clone → npm install → npm start. 또는 excalidraw.com에서 바로 사용
11. Uptime Kuma — 서버 모니터링 대시보드
docker run -d -p 3001:3001 louislam/uptime-kuma. 서버가 죽으면 알림. BruDash에도 적용 가능
⚠️
GitHub에서 설치할 때 주의:
1. Star 수 확인 — Star 10개 미만은 검증 안 된 프로젝트. 악성코드 가능성
2. 최근 업데이트 확인 — 2년 이상 업데이트 없으면 유지보수 포기 가능성
3. README 필수 확인 — 설치 방법, 의존성, 라이선스 확인
4. Issues 탭 확인 — 해결 안 된 심각한 버그가 있는지

패키지 매니저 심화 — 각 생태계의 도구

프로그래밍 언어마다 고유한 패키지 매니저가 있고, 그 위에 다양한 도구들이 쌓여 있습니다. 이 생태계를 이해하면 어떤 프로젝트든 빠르게 환경을 세팅할 수 있습니다.

언어패키지 매니저레지스트리설정 파일잠금 파일
Pythonpip, pipenv, poetry, uvPyPIrequirements.txt / pyproject.tomlrequirements.txt / poetry.lock
JavaScriptnpm, yarn, pnpm, bunnpmjs.compackage.jsonpackage-lock.json / yarn.lock
Rustcargocrates.ioCargo.tomlCargo.lock
Gogo modpkg.go.devgo.modgo.sum
Rubygem, bundlerRubyGemsGemfileGemfile.lock
PHPcomposerPackagistcomposer.jsoncomposer.lock
JavaMaven, GradleMaven Centralpom.xml / build.gradle-
SwiftSwift Package ManagerSwift Package IndexPackage.swiftPackage.resolved
💡
잠금 파일(Lock File)이 왜 필요한가?
package.json에 "express": "^4.18.0"이라고 쓰면 4.18.0 이상 아무 버전이나 설치됩니다. 오늘은 4.18.2가 설치되고, 한 달 후에는 4.19.0이 설치될 수 있죠. 잠금 파일은 "지금 정확히 이 버전을 설치해라"를 기록합니다. 팀원 모두가 동일한 버전을 쓰게 되어 "내 컴퓨터에서는 되는데?" 문제를 방지합니다.

가상 환경 — 프로젝트별 격리

Python 가상 환경 # 문제: 프로젝트 A는 flask 2.0, 프로젝트 B는 flask 3.0이 필요 # → 가상 환경으로 프로젝트별 독립된 패키지 공간 생성 # venv (Python 내장) python3 -m venv myenv # 가상 환경 생성 source myenv/bin/activate # 활성화 (Mac/Linux) myenv\Scripts\activate # 활성화 (Windows) pip install flask # 이 가상 환경에만 설치됨 deactivate # 비활성화 # conda (데이터 과학용) conda create -n myproject python=3.11 conda activate myproject conda install numpy pandas # poetry (최신 Python 프로젝트 표준) poetry init # 프로젝트 초기화 poetry add flask # 패키지 추가 (가상환경 자동 관리) poetry install # 의존성 설치 poetry run python main.py # 가상환경 안에서 실행
Node.js 버전 관리 # nvm (Node Version Manager) — Node.js 버전을 프로젝트마다 다르게 nvm install 20 # Node.js 20 설치 nvm install 18 # Node.js 18도 설치 nvm use 20 # 20 버전으로 전환 nvm alias default 20 # 기본 버전 설정 # .nvmrc 파일을 프로젝트 루트에 두면 자동 전환 echo "20" > .nvmrc nvm use # .nvmrc에 적힌 버전으로 전환
3

🌍 오픈소스 생태계

오픈소스
라이선스, 기여 문화, 메인테이너의 삶 문화

오픈소스 라이선스 — "공짜"의 조건

"오픈소스 = 뭐든 해도 된다"가 아닙니다. 라이선스마다 조건이 다릅니다.

라이선스조건상업적 사용대표 프로젝트
MIT거의 제한 없음. 저작권 표시만 하면 됨✅ 자유React, jQuery, Node.js
Apache 2.0MIT와 비슷 + 특허권 허여✅ 자유Kubernetes, TensorFlow
BSDMIT와 거의 동일✅ 자유Nginx, FreeBSD
GPL v3수정한 코드도 GPL로 공개해야 함 (감염성)⚠️ 조건부Linux 커널, GCC, WordPress
LGPL라이브러리로 사용 시 내 코드는 공개 안 해도 됨✅ 대부분 OKFFmpeg, GTK
AGPLGPL + 웹 서비스로 제공해도 소스 공개 필요⚠️ 매우 제한적MongoDB (구 버전)
Unlicense퍼블릭 도메인. 아무 제한 없음✅ 완전 자유일부 소형 프로젝트
🚨
GPL 함정: GPL 라이선스 코드를 내 프로그램에 포함시키면, 내 프로그램 전체를 GPL로 공개해야 합니다. 이를 "바이럴(감염성)" 라이선스라 부릅니다. 상업 소프트웨어를 만든다면 GPL 코드를 아무 생각 없이 복사하면 큰일납니다!

오픈소스 기여 문화

  • 첫 기여 = README 오타 수정 — 코드를 고치는 게 아니라 문서 오타를 고치는 것부터 시작. "good first issue" 라벨이 붙은 이슈는 초보자 환영 표시
  • 코드 리뷰 — PR을 보내면 메인테이너가 "이 부분은 이렇게 바꿔달라"고 피드백. 무료 코드 멘토링
  • Commit Convention — 커밋 메시지 규칙. feat: 기능 추가, fix: 버그 수정, docs: 문서 수정, refactor: 코드 정리
  • CoC (Code of Conduct) — 행동 규범. 욕설, 차별, 괴롭힘 금지. 대부분의 대형 프로젝트에 있음

메인테이너의 현실

오픈소스의 이면: 수백만 명이 쓰는 프로젝트의 메인테이너가 무급 봉사로 유지보수하는 경우가 많습니다. 2024년 xz 백도어 사건에서 드러난 것처럼, 번아웃된 메인테이너의 프로젝트에 악의적 기여자가 침투해 보안 위협이 되기도 합니다. GitHub Sponsors, Open Collective 등을 통해 후원하는 문화가 퍼지고 있습니다.

4

📱 앱 개발 방법론

앱 개발
네이티브, React Native, Flutter, PWA, Electron 비교

앱을 만드는 방법은 놀라울 정도로 다양합니다. 각 방법의 특성을 이해하면 프로젝트에 맞는 최적의 선택을 할 수 있습니다.

방식언어플랫폼성능적합한 곳
네이티브 iOSSwiftiOS만최고카카오뱅크, 배민
네이티브 AndroidKotlinAndroid만최고삼성 앱들
React NativeJavaScriptiOS + Android좋음Instagram, Discord
FlutterDartiOS + Android + Web + Desktop매우 좋음Google Pay, BMW
PWAHTML/CSS/JS모든 플랫폼보통Twitter Lite, Starbucks
ElectronHTML/CSS/JSWindows + Mac + Linux무거움VS Code, Slack, Discord
TauriHTML/CSS/JS + RustWindows + Mac + Linux가벼움Electron 대체

네이티브 앱 — 최고의 성능, 최대의 비용

애플의 Xcode + Swift, 구글의 Android Studio + Kotlin으로 각 플랫폼에 최적화된 앱을 만듭니다. 카메라, GPS, 푸시 알림 등 기기의 모든 기능을 100% 활용할 수 있습니다.

  • 장점 — 최고 성능, 최신 OS 기능 즉시 활용, 부드러운 UX
  • 단점 — iOS, Android를 따로 개발해야 함 (비용 2배). 개발자 구하기 어려움

React Native — "한 번 만들어 두 곳에 쓰기"

Meta(페이스북)가 2015년에 만든 크로스플랫폼 프레임워크. JavaScript/TypeScript 하나로 iOS와 Android 앱을 동시에 만듭니다.

React Native 기본 코드 import React from 'react'; import { View, Text, TouchableOpacity } from 'react-native'; export default function App() { return ( <View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}> <Text style={{fontSize: 24, fontWeight: 'bold'}}> Hello, BruDash! </Text> <TouchableOpacity style={{marginTop: 20, padding: 12, backgroundColor: '#7c3aed', borderRadius: 8}} onPress={() => alert('오늘 시황 확인!')}> <Text style={{color: 'white'}}>시황 보기</Text> </TouchableOpacity> </View> ); }

Flutter — Google의 UI 프레임워크

Google이 2018년에 만든 크로스플랫폼 프레임워크. Dart 언어를 사용하며, iOS/Android/Web/Desktop 4개 플랫폼을 모두 지원합니다. 자체 렌더링 엔진(Skia/Impeller)을 사용해서 모든 플랫폼에서 동일한 UI를 보장합니다.

Flutter 기본 코드 (Dart) import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('BruDash 앱')), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('오늘의 시황', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)), SizedBox(height: 16), ElevatedButton( onPressed: () { /* API 호출 */ }, child: Text('시황 보기'), ), ], ), ), ), ); } }

네이티브 앱 개발 환경 구축

앱 개발 시작하기 # React Native 프로젝트 생성 npx create-expo-app MyApp # Expo로 빠르게 시작 cd MyApp npx expo start # 개발 서버 시작 # → QR코드 스캔하면 내 폰에서 바로 실행! # Flutter 프로젝트 생성 flutter create my_app cd my_app flutter run # 에뮬레이터/실기기에서 실행 flutter run -d chrome # 웹으로 실행 flutter build apk # Android APK 생성 flutter build ios # iOS 빌드 (Mac 필요)

앱 배포 — 앱스토어에 올리기

Apple App StoreGoogle Play Store
개발자 등록비$99/년 (매년 갱신)$25 (1회)
심사 기간1~7일 (까다로움)1~3일 (상대적으로 관대)
수수료매출의 15~30%매출의 15~30%
필요 장비Mac 필수 (Xcode)Mac/Windows/Linux
테스트 배포TestFlight내부/비공개 테스트 트랙
🎯
앱스토어 심사 탈락 주요 사유:
1. 버그가 있는 경우 (크래시, 화면 깨짐)
2. 개인정보 처리방침이 없는 경우
3. "웹사이트를 앱으로 감싼 것"처럼 보이는 경우 (네이티브 기능 활용 부족)
4. 앱 설명과 실제 기능이 다른 경우
5. 저작권 침해 컨텐츠가 포함된 경우

PWA (Progressive Web App) — 설치 없는 앱

웹사이트를 앱처럼 만드는 기술입니다. 앱스토어에 올리지 않아도 브라우저에서 "홈 화면에 추가"하면 앱처럼 사용할 수 있습니다.

  • 장점 — 개발 비용 낮음 (HTML/CSS/JS만으로), 앱스토어 심사 불필요, 업데이트 즉시 반영
  • 단점 — 네이티브 기능 일부 제한 (iOS에서 특히), 오프라인 지원 제한적
  • 적합 — 뉴스 앱, 대시보드, 간단한 도구 앱

Electron vs Tauri — 데스크톱 앱

Electron은 Chrome 브라우저를 통째로 내장해서 웹 기술로 데스크톱 앱을 만듭니다. VS Code, Slack, Discord, Notion이 전부 Electron입니다. 편리하지만 무겁습니다 (Slack만 RAM 500MB+).

Tauri는 Electron의 대안입니다. OS 기본 웹뷰를 사용하고 백엔드를 Rust로 작성해서, Electron보다 앱 크기 1/100, 메모리 1/10 수준입니다. 2022년 정식 출시 후 빠르게 성장 중입니다.

🤔
어떤 걸 선택해야 하나?
혼자 빨리 만들기: Flutter 또는 React Native
최고 품질: 네이티브 (Swift + Kotlin)
웹 개발자가 앱 만들기: React Native 또는 PWA
데스크톱 앱: Tauri (가볍게) 또는 Electron (생태계 풍부)
돈 아끼기: PWA (서버 비용만)
5

📦 PyInstaller — Python을 exe로

BruDash
Python 스크립트를 실행 파일로 만드는 법 실전

Python은 인터프리터 언어라 python3 script.py로 실행합니다. Python이 설치 안 된 컴퓨터에서는 실행이 안 되죠. PyInstaller는 Python 스크립트를 독립 실행 파일(.exe, .app)로 변환합니다. Python 없이도 더블클릭으로 실행 가능!

PyInstaller 사용법 # 설치 pip install pyinstaller # 기본 변환 (폴더 생성) pyinstaller main.py # 단일 exe 파일로 (배포 편리) pyinstaller --onefile main.py # 콘솔 창 안 뜨게 (GUI 앱일 때) pyinstaller --onefile --noconsole main.py # 아이콘 지정 pyinstaller --onefile --icon=icon.ico main.py # 추가 파일 포함 (데이터 파일, 이미지 등) pyinstaller --onefile --add-data "data.db:." main.py # 결과물: dist/main.exe (또는 dist/main on Mac)
🏠 BruDash 활용

BruDash의 자동매매 프로그램은 윈도우 PC에서 키움 API를 사용합니다. 이 Python 스크립트를 PyInstaller로 exe로 만들면, 키움 자동매매 프로그램을 독립적으로 실행할 수 있습니다.

⚠️
PyInstaller 주의사항:
1. Windows exe는 Windows에서만 빌드 가능 (Mac에서 exe 생성 불가)
2. 파일 크기가 커짐 (Python 인터프리터를 통째로 포함하기 때문. 50~200MB)
3. 백신이 오탐할 수 있음 (PyInstaller로 만든 exe를 악성코드로 오인)
4. 난독화 아님 — 실행 파일에서 Python 소스코드를 추출할 수 있음. 비밀 키를 넣지 마세요
6

🔌 API 연동 실전

API
REST API 호출, 인증, 에러 처리 — 실전 코드 실전

API (Application Programming Interface)는 프로그램끼리 대화하는 방법입니다. 레스토랑에서 메뉴판이 API이고, 주문하는 행위가 API 호출이며, 음식이 나오는 게 응답(Response)입니다.

REST API 기본 구조

REST API 구조 # 요청 = HTTP 메서드 + URL + 헤더 + 바디 GET /api/stocks/005930 # 삼성전자 정보 조회 POST /api/orders # 주문 생성 PUT /api/orders/123 # 주문 123 수정 DELETE /api/orders/123 # 주문 123 삭제 # 응답 = 상태 코드 + 데이터 (보통 JSON) { "code": "005930", "name": "삼성전자", "price": 72400, "change_pct": -1.23 }

실전 예시 1: Yahoo Finance API

Python — Yahoo Finance 주가 조회 import requests # Yahoo Finance API (비공식, yfinance 라이브러리가 더 편함) import yfinance as yf # 삼성전자 주가 (한국) samsung = yf.Ticker("005930.KS") hist = samsung.history(period="5d") print(hist[['Close', 'Volume']]) # 애플 주가 (미국) apple = yf.Ticker("AAPL") info = apple.info print(f"현재가: ${info['currentPrice']}") print(f"PER: {info['trailingPE']:.1f}")

실전 예시 2: Telegram Bot API

Python — 텔레그램 메시지 보내기 import requests TOKEN = "your-bot-token" CHAT_ID = "your-chat-id" def send_telegram(message): url = f"https://api.telegram.org/bot{TOKEN}/sendMessage" data = { "chat_id": CHAT_ID, "text": message, "parse_mode": "HTML" } response = requests.post(url, json=data) if response.status_code == 200: print("메시지 전송 성공!") else: print(f"에러: {response.status_code} - {response.text}") send_telegram("<b>🔔 BruDash 알림</b>\n시황 보고서가 생성되었습니다.")

실전 예시 3: LS증권 API (키움 대안)

Python — 증권 API 호출 패턴 import requests # 1. 인증 토큰 발급 auth_url = "https://openapi.ls-sec.co.kr/oauth2/token" auth_data = { "grant_type": "client_credentials", "appkey": "YOUR_APP_KEY", "appsecretkey": "YOUR_SECRET_KEY" } token_response = requests.post(auth_url, json=auth_data) access_token = token_response.json()["access_token"] # 2. 인증 토큰으로 API 호출 headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } # 3. 주가 조회 stock_url = "https://openapi.ls-sec.co.kr/stock/price" response = requests.get(stock_url, headers=headers, params={"code": "005930"})

에러 처리 패턴

견고한 API 호출 패턴 import requests from requests.exceptions import RequestException import time def api_call_with_retry(url, max_retries=3, timeout=10): """에러 시 자동 재시도, 타임아웃 설정""" for attempt in range(max_retries): try: response = requests.get(url, timeout=timeout) response.raise_for_status() # 4xx/5xx면 에러 발생 return response.json() except requests.exceptions.Timeout: print(f"⏱️ 타임아웃 (시도 {attempt+1}/{max_retries})") except requests.exceptions.HTTPError as e: if e.response.status_code == 429: # Too Many Requests wait = 2 ** attempt # 지수 백오프: 1초, 2초, 4초... print(f"🚦 Rate limit! {wait}초 대기...") time.sleep(wait) else: raise # 다른 HTTP 에러는 바로 실패 except RequestException as e: print(f"❌ 요청 실패: {e}") time.sleep(1) return None # 모든 재시도 실패

API 설계 원칙 — RESTful 이란?

좋은 API는 일관성 있는 규칙을 따릅니다. REST(Representational State Transfer) 원칙을 따르는 API를 RESTful API라 합니다.

RESTful API 설계 규칙 # 1. URL은 명사(리소스)를 사용. 동사 금지 ✅ GET /api/stocks/005930 # 삼성전자 정보 ❌ GET /api/getStockInfo?code=005930 # 동사(get) 사용 — 안 좋음 # 2. HTTP 메서드로 행위를 표현 GET /api/orders # 주문 목록 조회 POST /api/orders # 주문 생성 GET /api/orders/123 # 주문 123번 조회 PUT /api/orders/123 # 주문 123번 전체 수정 PATCH /api/orders/123 # 주문 123번 일부 수정 DELETE /api/orders/123 # 주문 123번 삭제 # 3. 복수형 사용 ✅ /api/stocks # 복수형 ❌ /api/stock # 단수형 — 안 좋음 # 4. 필터링/정렬/페이징은 쿼리 파라미터 GET /api/stocks?sector=반도체&sort=change_pct&limit=10&page=2 # 5. 중첩 리소스 (관계) GET /api/sectors/방산/stocks # 방산 섹터의 종목들 GET /api/users/123/orders # 사용자 123의 주문들

JSON 다루기 — API 응답의 기본 형식

Python에서 JSON 다루기 import json # Python 딕셔너리 → JSON 문자열 data = {"name": "삼성전자", "price": 72400, "tags": ["반도체", "대형주"]} json_str = json.dumps(data, ensure_ascii=False, indent=2) print(json_str) # { # "name": "삼성전자", # "price": 72400, # "tags": ["반도체", "대형주"] # } # JSON 문자열 → Python 딕셔너리 parsed = json.loads(json_str) print(parsed["name"]) # 삼성전자 # JSON 파일 읽기/쓰기 with open("data.json", "r", encoding="utf-8") as f: data = json.load(f) with open("data.json", "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=2)

Rate Limiting — API 사용량 제한

대부분의 API는 일정 시간에 보낼 수 있는 요청 수를 제한합니다. 이를 Rate Limit이라 합니다.

API무료 제한초과 시
GitHub API인증: 5,000 요청/시간, 비인증: 60 요청/시간429 Too Many Requests
OpenAI티어별 다름 (TPM/RPM)429 + Retry-After 헤더
Telegram Bot30 메시지/초 (그룹: 20/분)429 + retry_after 필드
네이버 API25,000 요청/일429
Yahoo Finance비공식 — 과도하면 IP 차단연결 거부
🎯
Rate Limit 대응 전략:
1. 지수 백오프(Exponential Backoff) — 실패 시 1초, 2초, 4초... 점점 길게 대기
2. 캐싱 — 같은 데이터를 반복 요청하지 말고 로컬에 캐시
3. 배치 요청 — 개별 요청 100번 대신 한 번에 100개 데이터 요청
4. 응답 헤더 확인 — X-RateLimit-Remaining, Retry-After 헤더로 남은 횟수 확인

Webhook — "내가 물어보지 않아도 알려줘"

일반 API는 "요청 → 응답" 구조입니다. Webhook은 반대로, 이벤트가 발생하면 서버가 먼저 우리에게 알려줍니다.

Webhook vs Polling # Polling (설문조사 방식) — 비효율적 # "새 메시지 있어?" → "없어" → (1초 후) "새 메시지 있어?" → "없어" → ... while True: response = requests.get("/api/messages") if response.json()["new_messages"]: process(response) time.sleep(1) # 1초마다 확인 → 서버 부담, 배터리 낭비 # Webhook (알림 방식) — 효율적 # 새 메시지가 오면 → 서버가 우리한테 POST 요청을 보내줌 @app.route("/webhook", methods=["POST"]) def handle_webhook(): data = request.json process(data) # 이벤트 발생했을 때만 실행됨! return {"ok": True}
  • GitHub Webhook — PR 생성, 이슈 등록, push 등의 이벤트를 내 서버로 알림
  • Telegram Bot Webhook — 사용자가 봇에게 메시지 보내면 내 서버로 전달
  • Stripe/토스페이먼츠 — 결제 완료/실패 시 내 서버로 알림
7

🕷️ 웹 스크래핑

데이터
requests, BeautifulSoup, Selenium — 웹 데이터 수집 실전

웹 스크래핑은 웹페이지에서 데이터를 자동으로 수집하는 기술입니다. BruDash도 뉴스, 주가, 텔레그램 데이터를 스크래핑으로 수집합니다.

단계별 도구

  • requests + BeautifulSoup — 정적 페이지 (HTML이 서버에서 완성되어 옴). 가볍고 빠름
  • Selenium / Playwright — 동적 페이지 (JavaScript로 렌더링). 실제 브라우저를 자동으로 조작
  • Scrapy — 대규모 크롤링 프레임워크. 수만 페이지를 체계적으로 수집
requests + BeautifulSoup 기본 import requests from bs4 import BeautifulSoup # 1. 웹페이지 가져오기 url = "https://finance.naver.com/item/main.naver?code=005930" headers = {"User-Agent": "Mozilla/5.0"} # 봇 차단 방지 response = requests.get(url, headers=headers) # 2. HTML 파싱 soup = BeautifulSoup(response.text, "html.parser") # 3. 데이터 추출 price = soup.select_one("p.no_today .blind") if price: print(f"삼성전자 현재가: {price.text}원") # CSS 선택자로 여러 요소 추출 news_list = soup.select("div.sub_section ul li a") for news in news_list[:5]: print(f"- {news.text.strip()}")
Selenium — JavaScript 렌더링 필요할 때 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 브라우저 자동 제어 driver = webdriver.Chrome() driver.get("https://example.com/dynamic-page") # 요소가 로딩될 때까지 대기 (최대 10초) element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".price")) ) print(element.text) # 클릭, 입력 등 브라우저 조작 search_box = driver.find_element(By.ID, "search") search_box.send_keys("삼성전자") search_box.submit() driver.quit()

Playwright — Selenium의 현대적 대안

Microsoft가 만든 브라우저 자동화 도구. Selenium보다 빠르고, 설정이 쉽고, 안정적입니다. 2026년 기준 새 프로젝트에서는 Playwright를 권장합니다.

Playwright 기본 사용법 # 설치 pip install playwright playwright install # 브라우저 바이너리 자동 설치 # Python 코드 from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=True) # 화면 안 보이게 page = browser.new_page() page.goto("https://finance.naver.com") # CSS 선택자로 요소 찾기 kospi = page.locator(".kospi_area .num").text_content() print(f"코스피: {kospi}") # 스크린샷 저장 page.screenshot(path="screenshot.png") # 페이지 내 대기 (요소가 나타날 때까지) page.wait_for_selector(".data-loaded", timeout=10000) browser.close()

Scrapy — 대규모 크롤링 프레임워크

수만 페이지를 체계적으로 수집해야 할 때 사용합니다. 비동기로 동작해서 매우 빠르고, 데이터 파이프라인(수집→정제→저장)을 한 번에 관리합니다.

Scrapy Spider 예시 import scrapy class NewsSpider(scrapy.Spider): name = "news" start_urls = ["https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=101"] def parse(self, response): # CSS 선택자로 뉴스 목록 추출 for article in response.css("div.sh_text a"): yield { "title": article.css("::text").get(), "url": response.urljoin(article.attrib["href"]), } # 다음 페이지로 자동 이동 next_page = response.css("a.next::attr(href)").get() if next_page: yield response.follow(next_page, self.parse)

크롤링 방어 우회 기법 (교육 목적)

웹사이트들은 봇을 차단하기 위해 다양한 방어 기법을 씁니다. 이를 이해하면 정당한 데이터 수집 시 "왜 차단되는지" 파악할 수 있습니다.

방어 기법원리대응 (정당한 용도)
User-Agent 체크봇의 기본 User-Agent 차단브라우저와 동일한 User-Agent 사용
IP Rate Limit같은 IP에서 과도한 요청 차단요청 간격 유지 (1~3초), 프록시 로테이션
JavaScript 렌더링HTML에 데이터를 안 넣고 JS로 로딩Selenium/Playwright 사용
CAPTCHA사람/봇 구분 퍼즐수동 해결 또는 API 서비스
Cloudflare 챌린지JS 퍼즐 + 봇 탐지cloudscraper 라이브러리
Honeypot숨겨진 링크를 봇만 클릭display:none 요소 무시
⚖️
법적 주의사항:
1. robots.txt 확인 — 사이트의 /robots.txt를 보면 크롤링 허용 범위가 적혀있음
2. 서버 부하 금지 — 너무 빠르게 요청하면 DDoS와 다름없음. 요청 사이에 1~2초 딜레이 필수
3. 개인정보 수집 주의 — 이름, 전화번호 등 개인정보를 무단 수집하면 법적 문제
4. 이용약관 확인 — 일부 사이트는 이용약관에서 크롤링을 명시적으로 금지
5. 상업적 사용은 더 조심 — 뉴스 기사를 통째로 복사하면 저작권 위반
🏠 BruDash의 데이터 수집

BruDash는 다양한 소스에서 데이터를 수집합니다:
- 키움 API — COM 인터페이스로 실시간 주가/호가/체결 데이터
- pykrx — KRX(한국거래소) 공식 데이터 (OHLCV, 투자자별 매매동향)
- 텔레그램 Bot API — 증권 뉴스 채널, 핫멘션, 특징주 수집
- 웹 스크래핑 — 38커뮤니케이션(IPO), 네이버증권, 뉴스 사이트
- yfinance — 미국 주식, 원자재, 환율 데이터
- 증권사 리포트 PDF — expert_rag.py로 RAG 검색
모든 데이터는 SQLite(kiwoom_data.db, sector_cache.db)에 저장되어 시황 보고서에 활용됩니다.

8

📊 데이터 시각화

시각화
Chart.js, D3.js, TradingView, matplotlib 도구 비교
도구환경난이도강점적합한 곳
Chart.js웹 (JavaScript)쉬움빠른 구현, 반응형대시보드, 간단한 차트
D3.js웹 (JavaScript)어려움무한한 자유도, SVG 제어뉴욕타임즈급 인포그래픽
ECharts웹 (JavaScript)중간차트 종류 풍부, 인터랙티브대시보드, 금융 차트
TradingView웹 (embed)쉬움주식 차트 전문주식/코인 사이트
matplotlibPython중간과학/분석 표준Jupyter 노트북, 리서치
PlotlyPython/웹중간인터랙티브, 3D데이터 분석 대시보드

Chart.js — 가장 쉬운 웹 차트

Chart.js 기본 예시 <canvas id="myChart"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> new Chart(document.getElementById('myChart'), { type: 'line', data: { labels: ['월', '화', '수', '목', '금'], datasets: [{ label: '코스피', data: [2650, 2680, 2640, 2700, 2720], borderColor: '#e03131', tension: 0.3, fill: false }] } }); </script>

matplotlib — Python 데이터 시각화의 기본

matplotlib + 한글 지원 import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family'] = 'AppleGothic' # Mac에서 한글 dates = ['3/4', '3/5', '3/6', '3/7', '3/10'] kospi = [2650, 2680, 2640, 2700, 2720] plt.figure(figsize=(10, 5)) plt.plot(dates, kospi, 'ro-', linewidth=2, label='코스피') plt.fill_between(dates, kospi, alpha=0.1, color='red') plt.title('코스피 주간 추이', fontsize=16, fontweight='bold') plt.ylabel('지수') plt.legend() plt.grid(True, alpha=0.3) plt.tight_layout() plt.savefig('kospi_chart.png', dpi=150) plt.show()

D3.js — 데이터 시각화의 끝판왕

D3(Data-Driven Documents)는 뉴욕타임즈, 워싱턴포스트 등 유명 미디어의 인터랙티브 차트에 사용되는 라이브러리입니다. SVG를 직접 제어해서 상상 가능한 거의 모든 시각화를 만들 수 있지만, 학습 난이도가 높습니다.

D3.js 기본 — 막대 차트 // SVG에 막대 차트 그리기 const data = [ {name: "방산", value: 8.5}, {name: "에너지", value: 5.2}, {name: "반도체", value: -3.1}, {name: "바이오", value: 2.8}, ]; const svg = d3.select("#chart") .append("svg") .attr("width", 400) .attr("height", 200); const x = d3.scaleBand() .domain(data.map(d => d.name)) .range([0, 400]) .padding(0.3); const y = d3.scaleLinear() .domain([d3.min(data, d => d.value), d3.max(data, d => d.value)]) .range([200, 0]); svg.selectAll("rect") .data(data) .enter() .append("rect") .attr("x", d => x(d.name)) .attr("y", d => d.value >= 0 ? y(d.value) : y(0)) .attr("width", x.bandwidth()) .attr("height", d => Math.abs(y(d.value) - y(0))) .attr("fill", d => d.value >= 0 ? "#e03131" : "#1971c2"); // 상승=빨강, 하락=파랑

TradingView 위젯 — 주식 차트 임베드

TradingView는 주식/코인/원자재 차트를 무료로 임베드할 수 있는 위젯을 제공합니다. 코드 몇 줄이면 전문가급 차트가 웹페이지에 들어갑니다.

TradingView 위젯 임베드 <!-- TradingView 실시간 차트 위젯 --> <div class="tradingview-widget-container"> <div id="tradingview_chart"></div> <script src="https://s3.tradingview.com/tv.js"></script> <script> new TradingView.widget({ "container_id": "tradingview_chart", "symbol": "KRX:005930", // 삼성전자 "interval": "D", // 일봉 "theme": "light", "style": "1", // 캔들스틱 "width": "100%", "height": "400", "locale": "ko_KR", "studies": ["MASimple@tv-basicstudies"] // 이동평균선 }); </script> </div>

Plotly — 인터랙티브 Python 차트

Plotly Express — 3줄로 인터랙티브 차트 import plotly.express as px import pandas as pd # 캔들스틱 차트 import plotly.graph_objects as go df = pd.read_csv("stock_data.csv") fig = go.Figure(data=[go.Candlestick( x=df['Date'], open=df['Open'], high=df['High'], low=df['Low'], close=df['Close'], increasing_line_color='red', # 한국식: 상승=빨강 decreasing_line_color='blue' # 한국식: 하락=파랑 )]) fig.update_layout(title='삼성전자 일봉 차트', xaxis_rangeslider_visible=False) fig.show() # 브라우저에서 인터랙티브 차트 열림! # Dash (Plotly의 웹앱 프레임워크) — 대시보드 만들기 from dash import Dash, html, dcc app = Dash(__name__) app.layout = html.Div([ html.H1('BruDash 시각화'), dcc.Graph(figure=fig) ]) app.run(debug=True)

시각화 선택 가이드

내가 필요한 건:

• 빠르게 웹에 차트 넣기 → Chart.js (쉬움, 반응형)

• 주식 전용 차트 → TradingView 위젯 (무료, 전문가급)

• Python에서 분석+시각화 → matplotlib (정적) 또는 Plotly (인터랙티브)

• 뉴욕타임즈급 커스텀 차트 → D3.js (어렵지만 무한 자유)

• 대시보드 앱 → Plotly Dash 또는 Streamlit

• 코드 없이 → Google Sheets 차트 또는 Tableau Public

🏠 BruDash에서의 시각화

BruDash 시황 보고서는 순수 HTML/CSS로 시각화합니다. 외부 라이브러리 의존 없이, CSS Grid, Flexbox, 색상 코딩만으로 정보를 시각화합니다. 이 방식은 로딩이 빠르고, 어떤 기기에서든 안정적으로 동작합니다. Chart.js나 D3.js를 쓰면 더 화려하지만 로딩 속도와 모바일 호환성 면에서 트레이드오프가 있습니다.

9

🚀 미래 기술

미래
Web3, 양자컴퓨팅, AR/VR, 뇌-컴퓨터, 6G 미래 전망

기술은 가속도적으로 발전합니다. 10년 전에는 상상도 못한 것들이 이미 현실이 되고 있습니다. 지금 개발 중인 기술들이 5~10년 후에 우리 일상을 어떻게 바꿀지 살펴봅니다.

블록체인/Web3

🔗 Web3 / 블록체인 — "탈중앙화된 인터넷"

현재 인터넷(Web2)은 구글, 아마존, 메타 같은 거대 기업이 데이터를 소유합니다. Web3는 블록체인 기술로 사용자가 자신의 데이터를 직접 소유하는 인터넷을 추구합니다.

  • DeFi — 은행 없이 예금, 대출, 환전. 스마트 계약이 자동으로 처리
  • NFT — 디지털 자산의 소유권 증명. 게임 아이템, 디지털 아트 등
  • DAO — 탈중앙화 조직. 코드로 운영되는 회사. 투표로 의사결정
  • 현실 — 아직 투기 위주이고, 실생활 활용은 제한적. "해결하는 문제보다 만드는 문제가 더 많다"는 비판도
양자

⚛️ 양자 컴퓨팅 — "불가능한 계산을 가능하게"

기존 컴퓨터는 0 또는 1(비트)을 처리합니다. 양자 컴퓨터는 0과 1을 동시에(큐비트) 처리할 수 있어서, 특정 문제에서 기존 컴퓨터보다 기하급수적으로 빠릅니다.

  • 신약 개발 — 분자 시뮬레이션으로 약물 후보 물질 탐색 (현재 수 년 → 수 일)
  • 암호 해독 — RSA 암호를 풀 수 있는 수준이 되면 현재의 인터넷 보안 체계 붕괴. 이에 대비해 양자내성 암호(PQC) 개발 중
  • 최적화 — 물류 경로, 금융 포트폴리오, 기상 예측 등
  • 현황 — Google Willow 칩(105큐비트), IBM Condor(1121큐비트). 아직 "양자 우월성"은 특정 문제에서만 입증. 실용화까지 5~10년
AR/VR/XR

🥽 AR/VR/XR — "현실과 가상의 경계가 사라진다"

AR(증강현실)은 현실 위에 디지털 정보를 입히는 것(포켓몬GO), VR(가상현실)은 완전히 디지털 세계에 들어가는 것(메타 퀘스트), XR(확장현실)은 이 모든 것을 아우르는 용어입니다.

  • Apple Vision Pro — 2024년 출시. "공간 컴퓨팅" 시대를 열겠다는 애플의 야심작
  • Meta Quest — 가격 대비 성능 최고. VR 게임과 소셜 플랫폼 Horizon Worlds
  • 산업 활용 — 원격 수술 가이드(AR), 건축 시뮬레이션(VR), 교육/훈련
  • 미래 — AR 안경이 스마트폰을 대체할 것이라는 전망. 길을 걸으며 눈앞에 정보가 뜨는 시대
BCI

🧠 뇌-컴퓨터 인터페이스 (BCI) — "생각만으로 제어"

일론 머스크의 Neuralink가 2024년 첫 인체 이식 수술에 성공했습니다. 전신마비 환자가 뇌파로 마우스 커서를 움직여 체스를 두는 영상이 공개되었습니다.

  • 의료 — 척추 손상 환자의 의사소통, 의수/의족 정밀 제어
  • 비침습형 — 수술 없이 헤드밴드로 뇌파 측정. 집중도, 감정 상태 모니터링
  • 미래 — 텔레파시 통신(?), 기억 백업(?), AI와 뇌 직접 연결(?). 윤리적 논쟁이 거셈
자율주행

🚗 자율주행 — Level 5를 향해

자율주행은 Level 0(수동) ~ Level 5(완전 자율)로 구분됩니다. 2026년 현재 대부분 Level 2~3 수준이며, Waymo(구글)가 미국 일부 도시에서 Level 4 무인 택시를 운영 중입니다.

  • Level 2 — 차선 유지 + 속도 조절 (테슬라 오토파일럿, 현대 HDA)
  • Level 3 — 특정 조건에서 완전 자율 (혼다 레전드, 벤츠 S-Class)
  • Level 4 — 특정 지역에서 무인 운행 (Waymo, 중국 바이두 Apollo)
  • Level 5 — 어떤 도로, 어떤 날씨에서든 완전 자율. 아직 미달성
6G

📡 6G / 우주 인터넷 — "지구 어디서든 초고속"

5G가 상용화된 지 얼마 안 됐는데 벌써 6G 연구가 진행 중입니다. 2030년경 상용화 목표.

  • 6G — 속도 1Tbps (5G의 50배), 지연시간 0.1ms. 홀로그램 통화, 디지털 트윈 실시간 구현 가능
  • SpaceX Starlink — 저궤도 위성 5,000+ 개로 전 세계 인터넷. 아마존, 오히려 산간벽지에서 300Mbps 인터넷. 우크라이나 전쟁에서 통신 인프라 역할
  • 테라헤르츠 통신 — 6G의 핵심 주파수 대역. 초고속이지만 도달 거리 짧아서 초소형 기지국 필요
로봇

🤖 휴머노이드 로봇 — "범용 로봇의 시대"

테슬라 Optimus, Boston Dynamics Atlas, Figure 01 — 범용 휴머노이드 로봇이 빠르게 발전하고 있습니다.

  • 테슬라 Optimus — 자동차 공장에서 부품 정리 작업 수행 중 (2025~). 목표 가격 $25,000
  • Figure + OpenAI — LLM(대규모 언어 모델)으로 로봇에 "이것 좀 해줘"라고 자연어로 지시 가능
  • 한국 — 현대로보틱스, 레인보우로보틱스 등 적극 참여
  • 미래 — 물류, 간병, 가사, 건설 분야에서 노동력 대체. 윤리와 일자리 문제 논쟁
10

🔥 IT 트렌드 2026

트렌드
지금 가장 뜨거운 기술들 2026

2026년 현재 IT 업계에서 가장 뜨거운 키워드들입니다.

1. AI 에이전트 — "AI가 알아서 일하는 시대"

2025년까지는 "AI에게 질문하고 답을 받는" 방식(ChatGPT)이었다면, 2026년은 AI가 스스로 판단하고, 도구를 사용하고, 작업을 완수하는 "에이전트" 시대입니다.

  • Claude Code — 코드를 읽고, 수정하고, 테스트하고, 배포까지 하는 코딩 에이전트. BruDash의 시황 보고서도 이걸로 만듭니다
  • Devin — Cognition AI의 "AI 소프트웨어 엔지니어". 이슈를 받아서 코드를 짜고 PR을 보냄
  • Computer Use — AI가 마우스와 키보드를 직접 조작해서 사람처럼 컴퓨터를 사용
  • MCP (Model Context Protocol) — AI 에이전트가 외부 도구/데이터에 접근하는 표준 프로토콜. Anthropic이 제안

2. 로컬 AI — "내 컴퓨터에서 AI를"

클라우드 없이 내 PC/스마트폰에서 AI 모델을 돌리는 트렌드입니다.

  • Ollama — 한 줄 명령어로 Llama, Gemma 등 오픈소스 LLM을 로컬 실행
  • Apple Intelligence — iPhone/Mac에서 로컬로 AI 작동. 개인 데이터가 외부로 안 나감
  • SDXL Turbo — 일반 GPU에서 1초 안에 이미지 생성. BruDash 윈도우 PC에서도 사용 중
  • 의미 — 프라이버시 보호 + 인터넷 없이도 AI 사용 + 클라우드 비용 절감

3. Rust — "C++의 대안, 안전한 시스템 프로그래밍"

Rust는 2015년 출시 후 매년 "가장 사랑받는 프로그래밍 언어" 1위를 차지하고 있습니다. 2026년에는 Linux 커널, Windows, Android, Chrome 등 핵심 소프트웨어에 Rust가 도입되면서 "이제 진짜 대세"가 되었습니다.

  • 특징 — 메모리 안전성을 컴파일 타임에 보장. C/C++의 성능 + 메모리 버그 없음
  • 생태계 — 웹 서버(Actix), CLI 도구(ripgrep, bat, fd), 데스크톱 앱(Tauri), 블록체인(Solana)

4. WebAssembly (Wasm) — "브라우저에서 C++ 속도를"

JavaScript는 빠르지만 C++만큼은 아닙니다. WebAssembly는 C/C++/Rust로 작성한 코드를 브라우저에서 네이티브에 가까운 속도로 실행하는 기술입니다.

  • Figma, Google Earth, AutoCAD가 브라우저에서 돌아가는 것이 Wasm 덕분
  • 서버 사이드에서도 활용 확대 (WASI — WebAssembly System Interface)

5. 디지털 트윈 — "현실의 쌍둥이를 가상에"

실제 공장, 도시, 인체를 가상 공간에 1:1로 복제해서 시뮬레이션하는 기술입니다.

  • NVIDIA Omniverse — BMW 공장을 가상으로 복제해서 최적 배치 시뮬레이션
  • 도시 계획 — 서울시 디지털 트윈으로 교통, 재난 시뮬레이션
  • 헬스케어 — 환자의 장기를 디지털 트윈으로 만들어 수술 시뮬레이션

6. 탄소 중립 IT — "그린 컴퓨팅"

AI 학습에 엄청난 전력이 소모됩니다. GPT-4 한 번 학습에 소형 발전소 1년 전력이 필요합니다.

  • MS, Google, Amazon — 2030년까지 탄소 중립/네거티브 선언
  • SMR (소형 원자로) — MS가 데이터센터 전용 소형 원자로 건설 추진
  • 효율적 AI — 같은 성능을 적은 연산으로 달성하는 연구 (프루닝, 양자화, 지식증류)

7. Zero Trust Security — "아무도 믿지 마라"

기존: "회사 네트워크 안에 있으면 안전" → 재택근무 시대에 맞지 않음. Zero Trust: "모든 접근을 의심하고, 매번 검증하라."

  • VPN 대신 기기별/사용자별/요청별 인증
  • Google의 BeyondCorp — 직원이 어디서 접속하든 동일한 보안 적용
  • 2026년 대부분의 대기업이 Zero Trust 도입 중

8. 저코드/노코드 — "코딩 없이 앱 만들기"

코드를 한 줄도 안 쓰고 드래그 앤 드롭으로 앱과 자동화를 만드는 플랫폼들입니다.

  • Bubble — 웹 앱. 에어비앤비 같은 서비스를 코딩 없이
  • FlutterFlow — Flutter 기반 모바일 앱 빌더
  • n8n / Zapier / Make — 자동화 워크플로우. "이메일 오면 → Slack 알림 → 스프레드시트에 기록"
  • 한계 — 복잡한 로직이나 고성능이 필요하면 결국 코드가 필요. "80%를 빠르게, 나머지 20%는 개발자에게"
🧠 퀴즈: 2026년 현재, 전 세계 웹사이트에서 가장 많이 사용되는 프로그래밍 언어는?
정답: B. JavaScript. 웹 브라우저에서 돌아가는 유일한 프로그래밍 언어이기 때문에, 전 세계 웹사이트의 98% 이상이 JavaScript를 사용합니다. Python은 AI/서버에서 강세, Rust는 시스템 프로그래밍에서 떠오르는 중이지만, 웹 프론트엔드에서 JS를 대체할 언어는 아직 없습니다.

🎓 Tech Guide 전 시리즈 완결!

Vol.1부터 Vol.5까지, IT의 기초부터 미래 기술까지 모든 것을 다뤘습니다.

Vol.1 — 웹/프론트엔드/백엔드/DB 기초
Vol.2 — 프로그래밍 언어 비교
Vol.3 — AI/ML, 데이터 사이언스
Vol.4 — 인프라/DevOps/보안
Vol.5 — GitHub/앱개발/미래기술 ← 현재
면책 조항

본 글은 일반 정보 제공 및 시장 분석 참고 목적으로 작성된 자료이며, 특정 종목에 대한 매수·매도·보유 권유나 추천이 아닙니다. 본문에 기재된 모든 수치·전망·시나리오·적정가치는 작성 시점의 공개 정보에 기반한 추정치이며 실제와 다를 수 있습니다.

주식 투자는 원금 손실 가능성이 있는 고위험 행위입니다. 모든 투자 결정과 그에 따른 손익은 전적으로 투자자 본인의 책임이며, 본 글을 참고하여 이루어진 어떠한 투자 행위의 결과에 대해서도 작성자(brudash)는 일체의 법적·금전적 책임을 지지 않습니다.

본 글에 포함된 모든 정보는 부정확하거나 시점에 따라 변경될 수 있으며, 출처·근거의 정확성을 보장하지 않습니다. 투자 결정 전 본인의 투자 목적·재무 상황·위험 수용도를 충분히 고려하고, 필요 시 자격을 갖춘 투자 전문가와 독립적으로 상담하기 바랍니다.

💬 브루대시 텔레그램 채널

매일 아침 모닝브리핑, 장중 긴급 알림, 새 분석글 소식을 먼저 받아 보세요.

텔레그램 채널 입장하기 →