- Introduction
- WEB Demo
- APP Demo
- System Architechture
- Tech stack
- Swagger
- Kafka Workflows
- Directory Structure
- Environment
- How to Start
- Monitoring
- STOCKLY는 주식 투자에 관심이 있지만 시작을 어려워 하는 개인들에게 실전에 가까운 투자 경험과 위험 없는 투자 학습 환경을 제공한다. 더불어 우리는 사용자의 자산을 시각화하여 편리한 자산관리를 돕는다.
https://docs.google.com/spreadsheets/d/1AiwZ3q3cILC9flWU6uRUhQqEs2Dz1rtel5Zh-Gp1QXU/edit?gid=0#gid=0
https://drive.google.com/file/d/1RCKO13ue1S7Rjw33bm4f2IzVcdGs1_K7/view
온보딩 페이지 | 회원가입/로그인 페이지 |
---|---|
![]() |
![]() |
메인 주식 차트 페이지 | 모의 투자 페이지 |
![]() |
default.mp4 |
알림 페이지 | 마이 페이지 |
default.mp4 |
default.mp4 |
주식 차트 페이지 | |
1.mp4 |
default.mp4
![](https://private-user-images.githubusercontent.com/180237201/394552284-e8342bf3-88d3-4cf6-85d5-215808964a5a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzk0NTUyMjg0LWU4MzQyYmYzLTg4ZDMtNGNmNi04NWQ1LTIxNTgwODk2NGE1YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05NTg2MTgyZGExMmJkMjE1OGNhMWIyNTRkNmNmNGFkMmY1MjE1ODczODBiZjA5YjViZDk2ZTkwNGIyNjA5NDg5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.bFEQBIPhngeqSmAqyxLxRb322zhpENt7gHywn140yk0)
![](https://private-user-images.githubusercontent.com/180237201/393664514-cf0d1092-ac1e-4cbd-b8aa-686967497d11.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzkzNjY0NTE0LWNmMGQxMDkyLWFjMWUtNGNiZC1iOGFhLTY4Njk2NzQ5N2QxMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NzViMWI4MmQ0NDg2MmZlMmVhYWQwOTI4M2Q2OWM5MWEwOGNhZTViYzc2ODkzZTBhMzg2NDRhNWIwYWExZWJhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.-BEmiaJ9bkm3XtvBXE7cCTmuRwFOfWbL9E8-qNGYw6E)
![image](https://private-user-images.githubusercontent.com/180237201/393668396-275bd32a-b38f-4201-ba67-429f6f5cb640.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzkzNjY4Mzk2LTI3NWJkMzJhLWIzOGYtNDIwMS1iYTY3LTQyOWY2ZjVjYjY0MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ZDUxMmU1NTFmODU1OGRlZDM0ZTRkYTQxODAxOGQ1ZTg0ZDMyZTI4ZjMzNjFlZDMwODIyY2ExNjUxYmMwOWE5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.PESZl3t8peP0PDUlIHnK7iGLYQxi9kuTqtEY9zVx4q4)
![image](https://private-user-images.githubusercontent.com/180237201/393669111-2778e07e-d3ec-40ce-b407-51366d1546c8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzkzNjY5MTExLTI3NzhlMDdlLWQzZWMtNDBjZS1iNDA3LTUxMzY2ZDE1NDZjOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMDRkYWYxNzQ4NDZkMmNkY2QwMTk3YjVlYzY4MWI0NDMwNzI1ZjUwNTVkOTNiMWUxMTlmMDc3OGJjOGUzY2MyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.NzbKBNhl4CDd6P8P5-u5p2yEcf9sq_CB_pjhTmDnmbU)
![image](https://private-user-images.githubusercontent.com/180237201/393668731-671b68ba-862a-453d-b560-3d256db3acfa.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzkzNjY4NzMxLTY3MWI2OGJhLTg2MmEtNDUzZC1iNTYwLTNkMjU2ZGIzYWNmYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDU5NGRiMTVhZjQwMTYyZDEyYWFjMWVkY2JjZThiYmQxMTYxN2I0NGVhNWFkZjU3N2Y2NGExMmI3OGVmYjJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nUMejLyBwtcp3niIi9aCh8O4zbiAalpqNlQFpDu0Y_U)
![](https://private-user-images.githubusercontent.com/180237201/394630097-1b01625b-3421-459a-8838-559bd019b6c9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzk0NjMwMDk3LTFiMDE2MjViLTM0MjEtNDU5YS04ODM4LTU1OWJkMDE5YjZjOS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZGYwMDI5ZDI4Yzg1NWJkMjA4ZDMyOGJlODdlYjY5ZjVlYzVmZmQzN2Q5MzIzOWRmYjlkMjhhOGRiZjlhMjc4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.4y0wIhan0nDDL-dpuJjeLPWHxPEfQDCMavv9W9rSM-8)
![](https://private-user-images.githubusercontent.com/180237201/393667206-86c698b2-af5f-4c5a-9437-b5b6e83e7627.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzODQsIm5iZiI6MTczOTE4NDA4NCwicGF0aCI6Ii8xODAyMzcyMDEvMzkzNjY3MjA2LTg2YzY5OGIyLWFmNWYtNGM1YS05NDM3LWI1YjZlODNlNzYyNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMDQxMjRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hOWI0OTcxYWFiODUwZDYxZWQ5ZWNmMDE1YTc3M2MwYTkzNDljYzk5MjZlZmE0ZmU3NWQzMGJjZWZmMmE3MWIzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.HrRSmhObUSaIsuSfbMo75UdIqEP_IW724mvx2vvffmo)
Web
📦 Web
┣ 📂public
┃ ┗ 📜vite.svg
┣ 📂src
┃ ┣ 📂assets
┃ ┃ ┣ 📂icons
┃ ┃ ┃ ┣ 📜alert.svg
┃ ┃ ┃ ┣ 📜alert_hover.svg
┃ ┃ ┃ ┣ 📜assets_icon.svg
┃ ┃ ┃ ┣ 📜cancel.svg
┃ ┃ ┃ ┣ 📜like.svg
┃ ┃ ┃ ┣ 📜like2.svg
┃ ┃ ┃ ┣ 📜like2_hover.svg
┃ ┃ ┃ ┣ 📜like_hover.svg
┃ ┃ ┃ ┣ 📜main_logo.svg
┃ ┃ ┃ ┣ 📜money_icon.svg
┃ ┃ ┃ ┣ 📜profile_icon.svg
┃ ┃ ┃ ┣ 📜roi_icon.svg
┃ ┃ ┃ ┗ 📜stock_icon.svg
┃ ┃ ┣ 📂images
┃ ┃ ┃ ┣ 📜CandleImg.png
┃ ┃ ┃ ┣ 📜OrderImg.svg
┃ ┃ ┃ ┗ 📜blueImg.svg
┃ ┃ ┗ 📜react.svg
┃ ┣ 📂components
┃ ┃ ┣ 📂menuBar
┃ ┃ ┃ ┣ 📜AlertList.tsx
┃ ┃ ┃ ┣ 📜MenuBar.tsx
┃ ┃ ┃ ┣ 📜MenuBarAlertContent.tsx
┃ ┃ ┃ ┣ 📜MenuBarChartContent.tsx
┃ ┃ ┃ ┣ 📜MenuBarLikeContent.tsx
┃ ┃ ┃ ┗ 📜MessageList.tsx
┃ ┃ ┣ 📂mypageContent
┃ ┃ ┃ ┣ 📜Account.tsx
┃ ┃ ┃ ┣ 📜Charge.tsx
┃ ┃ ┃ ┣ 📜MyOrderList.tsx
┃ ┃ ┃ ┣ 📜MyStockList.tsx
┃ ┃ ┃ ┣ 📜OrderList.tsx
┃ ┃ ┃ ┣ 📜RoiChart.tsx
┃ ┃ ┃ ┗ 📜UserInfo.tsx
┃ ┃ ┣ 📂onBoardingContent
┃ ┃ ┃ ┣ 📜ExampleMyInvest.tsx
┃ ┃ ┃ ┣ 📜OnBoarding1.tsx
┃ ┃ ┃ ┣ 📜OnBoarding2.tsx
┃ ┃ ┃ ┣ 📜OnBoarding3.tsx
┃ ┃ ┃ ┗ 📜OnBoarding4.tsx
┃ ┃ ┣ 📂orderContents
┃ ┃ ┃ ┣ 📜Buy.tsx
┃ ┃ ┃ ┣ 📜BuyLimit.tsx
┃ ┃ ┃ ┣ 📜BuyMarket.tsx
┃ ┃ ┃ ┣ 📜Order.tsx
┃ ┃ ┃ ┣ 📜Sell.tsx
┃ ┃ ┃ ┣ 📜SellLimit.tsx
┃ ┃ ┃ ┗ 📜SellMarket.tsx
┃ ┃ ┣ 📂stockDetails
┃ ┃ ┃ ┣ 📜ChartContainer.tsx
┃ ┃ ┃ ┣ 📜DayChart.tsx
┃ ┃ ┃ ┣ 📜Echart.tsx
┃ ┃ ┃ ┣ 📜MinChart.tsx
┃ ┃ ┃ ┣ 📜MonthChart.tsx
┃ ┃ ┃ ┣ 📜OrderBook.tsx
┃ ┃ ┃ ┣ 📜TopContent.tsx
┃ ┃ ┃ ┣ 📜WeekChart.tsx
┃ ┃ ┃ ┗ 📜YearChart.tsx
┃ ┃ ┣ 📜Modal.tsx
┃ ┃ ┣ 📜NewAlertContent.tsx
┃ ┃ ┣ 📜SearchContent.tsx
┃ ┃ ┣ 📜SignIn.tsx
┃ ┃ ┣ 📜#.tsx
┃ ┃ ┣ 📜StockChartList.tsx
┃ ┃ ┗ 📜TopNavBar.tsx
┃ ┣ 📂fonts
┃ ┃ ┣ 📜Pretendard-Black.ttf
┃ ┃ ┣ 📜Pretendard-Bold.ttf
┃ ┃ ┣ 📜Pretendard-ExtraBold.ttf
┃ ┃ ┣ 📜Pretendard-ExtraLight.ttf
┃ ┃ ┣ 📜Pretendard-Light.ttf
┃ ┃ ┣ 📜Pretendard-Medium.ttf
┃ ┃ ┣ 📜Pretendard-Regular.ttf
┃ ┃ ┣ 📜Pretendard-SemiBold.ttf
┃ ┃ ┗ 📜Pretendard-Thin.ttf
┃ ┣ 📂hooks
┃ ┃ ┣ 📜AlertMessageData.tsx
┃ ┃ ┣ 📜DataWorker.js
┃ ┃ ┗ 📜RealTimeData.tsx
┃ ┣ 📂pages
┃ ┃ ┣ 📜LoginPage.tsx
┃ ┃ ┣ 📜MainPage.tsx
┃ ┃ ┣ 📜MypagePage.tsx
┃ ┃ ┣ 📜OnBoardingPage.tsx
┃ ┃ ┗ 📜StockDetailsPage.tsx
┃ ┣ 📂routes
┃ ┃ ┣ 📜GuestRoute.tsx
┃ ┃ ┗ 📜ProtectedRoute.tsx
┃ ┣ 📂types
┃ ┃ ┗ 📜NewStockData.ts
┃ ┣ 📂zustand
┃ ┃ ┣ 📜AlertStore.tsx
┃ ┃ ┣ 📜ChartListStore.tsx
┃ ┃ ┣ 📜MarketStore.tsx
┃ ┃ ┣ 📜MenuBarStore.tsx
┃ ┃ ┣ 📜TopNavBarStore.tsx
┃ ┃ ┗ 📜UserStore.tsx
┃ ┣ 📜.DS_Store
┃ ┣ 📜App.css
┃ ┣ 📜App.tsx
┃ ┣ 📜index.css
┃ ┣ 📜main.tsx
┃ ┗ 📜vite-env.d.ts
┣ 📜.DS_Store
┣ 📜.eslintrc.js
┣ 📜.prettierrc
┣ 📜README.md
┣ 📜build.sh
┣ 📜eslint.config.js
┣ 📜index.html
┣ 📜package-lock.json
┣ 📜package.json
┣ 📜tailwind.config.js
┣ 📜tsconfig.app.json
┣ 📜tsconfig.json
┣ 📜tsconfig.node.json
┣ 📜vercel.json
┗ 📜vite.config.ts
App
Stock-Producer-Server
📦Stock-Producer-Server
┣ 📂.github
┃ ┣ 📂ISSUE_TEMPLATE
┃ ┃ ┣ 📜♻️-refactor.md
┃ ┃ ┣ 📜✨-feature.md
┃ ┃ ┣ 📜🐛-bug.md
┃ ┃ ┗ 📜🛠️-setting.md
┃ ┣ 📂workflows
┃ ┃ ┗ 📜ci.yml
┃ ┗ 📜pull_request_template.md
┣ 📂src
┃ ┣ 📂alert
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜crud.py
┃ ┃ ┣ 📜routes.py
┃ ┃ ┗ 📜schemas.py
┃ ┣ 📂common
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜admin_kafka_client.py
┃ ┃ ┣ 📜kis_configs.py
┃ ┃ ┗ 📜producer.py
┃ ┣ 📂order
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜order_book_ws.py
┃ ┃ ┣ 📜routes.py
┃ ┃ ┣ 📜schemas.py
┃ ┃ ┗ 📜service.py
┃ ┣ 📂stock
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜crud.py
┃ ┃ ┣ 📜faust_models.py
┃ ┃ ┣ 📜price_websocket.py
┃ ┃ ┣ 📜routes.py
┃ ┃ ┣ 📜schemas.py
┃ ┃ ┗ 📜websocket.py
┃ ┣ 📂user
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜crud.py
┃ ┃ ┣ 📜routes.py
┃ ┃ ┗ 📜schemas.py
┃ ┣ 📜__init__.py
┃ ┣ 📜configs.py
┃ ┣ 📜database.py
┃ ┣ 📜logger.py
┃ ┣ 📜main.py
┃ ┗ 📜requirements.txt
┣ 📜.env
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜build.sh
┣ 📜docker-compose.yml
┣ 📜init.sql
┗ 📜my.cnf
Stock-Consumer-Server
📦Stock-Consumer-Server
┣ 📂.github
┃ ┣ 📂ISSUE_TEMPLATE
┃ ┃ ┣ 📜♻️-refactor.md
┃ ┃ ┣ 📜✨-feature.md
┃ ┃ ┣ 📜🐛-bug.md
┃ ┃ ┗ 📜🛠️-setting.md
┃ ┣ 📂workflows
┃ ┃ ┗ 📜ci.yml
┃ ┗ 📜pull_request_template.md
┣ 📂src
┃ ┣ 📂alert
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜crud.py
┃ ┃ ┣ 📜routes.py
┃ ┃ ┗ 📜service.py
┃ ┣ 📂faust_app
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜app.py
┃ ┃ ┣ 📜models.py
┃ ┃ ┗ 📜sse.py
┃ ┣ 📂stock
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜crud.py
┃ ┃ ┣ 📜routes.py
┃ ┃ ┗ 📜service.py
┃ ┣ 📜__init__.py
┃ ┣ 📜consumer.py
┃ ┣ 📜database.py
┃ ┣ 📜logger.py
┃ ┣ 📜main.py
┃ ┣ 📜producer.py
┃ ┗ 📜requirements.txt
┣ 📜.env
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜build.sh
┗ 📜docker-compose.yml
Order-Consumer-Server
📦Order-Consumer-Server
┣ 📂.github
┃ ┣ 📂ISSUE_TEMPLATE
┃ ┃ ┣ 📜♻️-refactor.md
┃ ┃ ┣ 📜✨-feature.md
┃ ┃ ┣ 📜🐛-bug.md
┃ ┃ ┗ 📜🛠️-setting.md
┃ ┣ 📂workflows
┃ ┃ ┗ 📜ci.yml
┃ ┗ 📜pull_request_template.md
┣ 📂src
┃ ┣ 📜consumer.py
┃ ┣ 📜database.py
┃ ┣ 📜logger.py
┃ ┣ 📜main.py
┃ ┣ 📜requirements.txt
┃ ┣ 📜routes.py
┃ ┣ 📜schemas.py
┃ ┗ 📜service.py
┣ 📜.env
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜build.sh
┗ 📜docker-compose.yml
- backend/.env
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_HOST=
REDIS_URL=
# 한국 투자 증권 앱 키
APP_KEY=
APP_SECRET=
SSE_KEY=
SSE_SECRET=
HOGA_KEY=
HOGA_SECRET=
flutter pub get # 패키지 설치
flutter run # 디버그 모드로 실행
flutter build apk # APK 빌드
flutter clean # 빌드 캐시 정리
npm install
npm run dev
# Docker Desktop 실행 -> Settings -> Kubernetes -> Enable Kubernetes
# Kubernetes, helm 설치
brew install kubectl
brew install helm
# 트래픽 활성화
helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install traefik traefik/traefik --namespace kube-system --set "dashboard.enabled=true" --set "service.type=LoadBalancer"
# 로컬에서 트래픽 사용을 위한 설정
sudo nano /etc/hosts
127.0.0.1 localhost.stock-service
127.0.0.1 localhost.stock-server
127.0.0.1 localhost.order-service
127.0.0.1 traefik.internal
127.0.0.1 localhost.traefik
127.0.0.1 localhost.kafka
127.0.0.1 localhost.zookeeper
127.0.0.1 localhost.argocd
# 위의 내용을 복사, 붙여넣기 후 저장
# 네임스페이스 생성
kubectl create namespace stockly
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# argoCD 실행
kubectl apply -f argoCD/app.yaml
# argoCD 접속
kubectl port-forward svc/argocd-server -n argocd 8080:443
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo # 비밀번호 화인 명령어(아이디는 Admin)