Code Monkey home page Code Monkey logo

teampjt-sharecodinglive's Introduction

๐Ÿ’ป ์‰์ฝ”๋ผ ( Share Coding Live )

๐ŸŒˆ์‰์ฝ”๋ผ ์†Œ๊ฐœ / ์‹œ์—ฐ ์˜์ƒ๐ŸŒˆ

https://www.youtube.com/watch?v=od30ifCdaBc

  • ๐Ÿ“‘ ์˜์˜

    ์ฝ”๋กœ๋‚˜๋กœ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ƒ์Šนํ•˜๋˜ ๋น„๋Œ€๋ฉด ์ˆ˜์—… ์ˆ˜์š”๊ฐ€ ์ฝ”๋กœ๋‚˜ ์ข…์‹๊ณผ ํ•จ๊ป˜ ์‚ฌ๊ทธ๋Ÿฌ ๋“ค๊ณ ๋Š” ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋น„๋Œ€๋ฉด ์ˆ˜์—…์— ๋Œ€ํ•œ ์ˆ˜์š”๋Š” ๊ทธ์น˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์กดํ•˜๋Š” ํ™”์ƒ ์„œ๋น„์Šค์—๋Š” ์—†๋Š” ํŽธ์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ์‰์ฝ”๋ผ๋Š” ์ข€ ๋” ์ฝ”๋”ฉ ์ˆ˜์—…์— ์ตœ์ ํ™”๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๐Ÿ“… ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ - 2023.07.10 ~ 2021.08.18

  • ๐Ÿ‘‰ ์‰์ฝ”๋ผ ์„œ๋น„์Šค ํ™”๋ฉด

  • ํšŒ์›๊ด€๋ฆฌ

    1. ํšŒ์›๊ฐ€์ž… ํšŒ์›๊ฐ€์ž…
    2. ๋กœ๊ทธ์ธ ๋กœ๊ทธ์ธ
  • ๋งˆ์ดํŽ˜์ด์ง€

    1. ๋‹‰๋„ค์ž„ ๋ณ€๊ฒฝ ๋‹‰๋„ค์ž„_๋ณ€๊ฒฝ
    2. ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๋น„๋ฐ€๋ฒˆํ˜ธ_๋ณ€๊ฒฝ
    3. ๊ฐ•์˜ ๋ฐ ์ฝ”๋“œ ๊ธฐ๋ก ๊ฐ•์˜_๊ธฐ๋ก
  • ํšŒ์˜๋ฐฉ

    1. ๊ฐ•์˜ ์˜ˆ์•ฝ ํšŒ์˜_์˜ˆ์•ฝ
    2. ๊ฐ•์˜ ์ƒ์„ฑ ๊ฐ•์˜_์ƒ์„ฑ
    3. ๊ฐ•์˜ ์ฑ„ํŒ…๋ฐฉ (์ผ๋ฐ˜์ฑ„ํŒ…, ์ฝ”๋“œ์ฑ„ํŒ…, ์งˆ๋ฌธ์ฑ„ํŒ…) ์ฑ„ํŒ…์ฐฝ
    4. ๊ฐ•์˜ ํ™”๋ฉด ๊ณต์œ  ํ™”๋ฉด๊ณต์œ 
    5. ์†๋“ค๊ธฐ ์†๋“ค๊ธฐ
    6. OCR OCR
    7. ์›๊ฒฉ ์ ‘์† ์›๊ฒฉ
  • ๐Ÿ–ฅ๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ


  • ๐Ÿ›  Backend

    • Spring Boot
    • MySql
    • Redis
    • JWT
    • Spring Security
    • NodeJS
  • ๐Ÿ›  Frontend

    • Visual Studio Code
    • React.js 18.2.0
    • react-bootstrap 2.8.0
    • Material-UI
    • redux-toolkit 1.9.5
    • redux 8.1.1
  • ๐Ÿ›  Web RTC

    • openvidu 2.28.0
  • ๐Ÿ›  Pose Detection

    • fingerpose
    • tensorflow
  • ๐Ÿ›  OCR / SCREEN CAPTURE

    • tesseract.js
    • html2canvas
  • ๐Ÿ›  CI/CD

    • aws ec2
    • aws eks (k8s)
    • aws cloudWatch
    • docker
    • jenkins
    • grafana
    • cAdivsor
    • prometheus

๐Ÿงฑ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜


์•„ํ‚คํ…์ฒ˜1 ์•„ํ‚คํ…์ฒ˜2 ์•„ํ‚คํ…์ฒ˜3

โ— ๊ธฐ์ˆ  ํŠน์ด์ 


  • ์›๊ฒฉ ์ ‘์† (Robot.js)

    • Robot.js๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž PC์˜ ํ‚ค๋ณด๋“œ์™€ ๋งˆ์šฐ์Šค๋ฅผ ์›๊ฒฉ ์กฐ์ข… ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • WebRTC (Openvidu)

    • ํ™”๋ฉด์ƒ์— ๋ณด์ด๋Š” ๊ธ€์ž๋ฅผ ์บก์ณํ•˜๊ณ  ์ด๋ฅผ OCR๋กœ ์ธ์‹ํ•ด text ํŒŒ์ผ๋กœ ์ถ”์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์—์„œ ์†์„ ๋“ค๋ฉด tesorflow๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์ž‘์„ ์ธ์‹ํ•˜๋Š” ์†๋“ค๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • ๊ฐ•์˜๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ ์ƒ๊ธด ๋งํฌ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ์ด์šฉ์ž๊ฐ€ ๊ฐ•์˜์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • redux-toolkit

    ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌํ˜„์‹œ์—๋Š” React์™€ redux-toolkit์„ ์ด์šฉํ•˜์—ฌ Ducks Pattern ๊ธฐ๋ฐ˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • Docker

    • ๋„์ปค ๋„คํŠธ์›Œํฌ๋กœ ํ…Œ์ŠคํŠธ ๋ถ„๋ฅ˜์— ๋”ฐ๋ฅธ NAT๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์šด์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • Docker Volume์„ ์ด์šฉํ•˜์—ฌ DB ๋ฐ์ดํ„ฐ ๋ณด์กด, ๋„์ปค compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ grafana์— ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋ฅผ ์‹คํ–‰, cAdvisor์™€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค (eks)

    • horizontal autoscale, verticle autoscale, cluster autoscale ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • cloudwatch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์ง„ํ–‰ํ•˜์˜€๊ณ , DB ๊ตฌ์„ฑ์— EBS ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • DB ์ด์ค‘ํ™”

    xtrabackup๊ณผ statefullset, NodePort, clusterIP, ์‚ฌ์šฉํ•˜์—ฌ MySql ์ด์ค‘ํ™”

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง ํ˜‘์—… ํˆด


  • Git
  • Jira
  • Notion
  • Mattermost
  • Webex

API ๋ช…์„ธ์„œ


API01 API01 API01 API01

โœจ์ฝ”๋“œ ์ปจ๋ฒค์…˜


### ํ•จ์ˆ˜, ๋ณ€์ˆ˜๋ช…

- ํ•จ์ˆ˜
    - ์ฒซ๋ฒˆ์งธ๋Š” ๋™์‚ฌ๋กœ
    - numOfSockets ํ•˜์ง€ ๋ง๊ณ  numberOfSockets
- ๋ณ€์ˆ˜ โ†’ ๋ช…์‚ฌ
- INT A, B, C ํ•˜์ง€ ๋ง๊ธฐ
- ์นด๋ฉœ ์ผ€์ด์Šค

### SQL

- * ์“ฐ์ง€ ๋ง๊ณ  ๋‹ค ์จ์ฃผ๊ธฐ
- from member๋ฉด ์ฒซ๋จธ๋ฆฌ ๋”ฐ๊ธฐ m์œผ๋กœ

### ํ•จ์ˆ˜์— ํŒŒ๋ผ๋ฏธํ„ฐ thows

- ์ธํ…”๋ฆฌ์ œ์ด ์ปจ๋ฒค์…˜ ์„ค์ • ์ฐพ์•„๋ณด์ž!
- ํŒŒ๋ผ๋ฏธํ„ฐ์— 1๊ฐœ๋‹น ์ค„๋ฐ”๊ฟˆ ์—์™ธ ์ฒ˜๋ฆฌํ• ๊ฑฐ๋ฉด ๋งˆ์ง€๋ง‰ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ด์–ด์„œ ์“ฐ๊ธฐ

[์ธํ…”๋ฆฌ์ œ์ด ์ž๋ฐ” ํ”„๋กœ์ ํŠธ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜ ์ ์šฉํ•˜๊ธฐ (velog.io)](https://velog.io/@nefertiri/%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4-%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%BD%94%EB%94%A9-%EC%BB%A8%EB%B2%A4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0)

### if {}, for {}

- ํ•œ์ค„์ด์–ด๋„ if() {
- } ์ด๋ ‡๊ฒŒ ์“ฐ๊ธฐ

### Lombok

- @Data ์“ฐ์ง€ ๋ง๊ธฐ

### return Arguments

- return new A() ์“ฐ์ง€๋ง๊ณ 
- A a = new A()
- return a ์“ฐ๊ธฐ

### ํŒจํ‚ค์ง€๋ช… ์ปจ๋ฒค์…˜

- domain
- controller
- service
- mapper (๋งˆ์ด๋ฐ”ํ‹ฐ์Šค), repository(JPA)
- config โ†’ ์„ค์ •ํŒŒ์ผ
- dto

โœจGit ์ปจ๋ฒค์…˜


- [๊ธฐ๋Šฅ]  -  ๊ธฐ๋Šฅ ์„œ์ˆ 
- [๋ฒ„๊ทธ] - ๋ฒ„๊ทธ ๋ฐœ์ƒ ์‹œ ์‚ฌ์šฉ
- [๋ฌธ์„œ] - README.md ์ˆ˜์ •
- [์ด๋™] - ๋ฌธ์„œ ์ด๋™ ์‹œ ์‚ฌ์šฉ
    - `[์ด๋™] ArticleService โ†’ BoardService`
- [์ด๋ฆ„] - ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ์‹œ ์‚ฌ์šฉ
    - `[์ด๋™] [Hello.java](http://Hello.java) โ†’ Hi.java`
- [์ถ”๊ฐ€] - lib ์ถ”๊ฐ€ ์‹œ ์‚ฌ์šฉ
    - [์ถ”๊ฐ€] myBatis ์ถ”๊ฐ€
- [์Šคํƒ€์ผ] - ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ • ์‹œ ์‚ฌ์šฉ
- [๋ฆฌํŒฉํ† ๋ง] - ํ•จ์ˆ˜ ๋ถ„๋ฆฌ ๋“ฑ๋“ฑ๋“ฑ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ›„ ๋“ฑ๋“ฑ๋“ฑ
- [ํ…Œ์ŠคํŠธ] - ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ

๐Ÿ’กGit Flow ๋ธŒ๋žœ์น˜ ์ „๋žต


  • Git Flow model์„ ์‚ฌ์šฉํ•˜๊ณ , Git ๊ธฐ๋ณธ ๋ช…๋ น์–ด ์‚ฌ์šฉํ•œ๋‹ค.

  • Git Flow ์‚ฌ์šฉ ๋ธŒ๋žœ์น˜

  • Git Flow ์ง„ํ–‰ ๋ฐฉ์‹

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Jira


ํ˜‘์—… ๋ฐ ์ผ์ •, ์—…๋ฌด ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Jira๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งค์ฃผ ์›”์š”์ผ ์˜ค์ „ ํšŒ์˜์—์„œ ํ•œ ์ฃผ๋™์•ˆ ์ง„ํ–‰๋˜์–ด์•ผ ํ•  ์ฃผ ๋‹จ์œ„ ๊ณ„ํš์„ ์งœ๊ณ , ์ง„ํ–‰ํ•  ์ด์Šˆ๋“ค์„ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ฆฐํŠธ๋Š” ์ผ์ฃผ์ผ ๋‹จ์œ„๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Notion


๋ชจ๋‘๊ฐ€ ๋ด์•ผํ•  ๊ณต์ง€, ํ•จ๊ป˜ ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๋งํฌ ๋“ฑ์„ ๋ชจ์•„ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํšŒ์˜ ๊ธฐ๋ก ๋ฐ ์˜๊ฒฌ๋“ค์€ ํ•ญ์ƒ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ณต๊ธฐ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๊ณ , ๊ณตํ†ต์œผ๋กœ ๋ณด์•„์•ผํ•˜๋Š” ์ปจ๋ฒค์…˜ ๋ฐ ์Šค์ผ€์ฅด ํ• ์ผ ๋“ฑ์€ ๋‚ ์งœ๋ณ„๋กœ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Scrum


๋งค์ผ ์•„์นจ 9์‹œ์— ์˜ค๋Š˜ ํ•ด์•ผ ํ•  ์ผ, ์ง„๋„, ๋„์›€์ด ํ•„์š”ํ•œ ์ ์„ ๊ผผ๊ผผํžˆ ๊ณต์œ ํ•˜์—ฌ ํŒ€์› ๊ฐ„์˜ ์†Œํ†ต์— ์—๋Ÿฌ๊ฐ€ ์—†๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โœจ ER Diagram


๐Ÿ˜ƒ ํŒ€์› ์—ญํ• 


  • ํŒ€์žฅ ๊น€๋ฏผ์ˆ˜ [BE]

    • jwt๋ฅผ ์ด์šฉํ•œ ํšŒ์›๊ด€๋ฆฌ ๊ตฌํ˜„
    • Redis๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ตฌํ˜„
  • ์ง„ํฌ์†œ [BE]

    • ์šด์˜๊ณผ ๋ฐฐํฌ
    • jwt ๊ตฌํ˜„
    • robot.js๋ฅผ ์ด์šฉํ•œ ์›๊ฒฉ ์ ‘์† ๊ตฌํ˜„
    • openvidu ์„œ๋ฒ„ ๊ตฌ์ถ•
  • ๊น€์œ ์ • [BE]

    • ํšŒ์›๊ด€๋ฆฌ, ํšŒ์˜๋ฐฉ ์ƒ์„ฑ ๋ฐฑ ๋กœ์ง ๊ตฌํ˜„
    • websocket๊ณผ stomp๋ฅผ ์ด์šฉํ•œ ์ฑ„ํŒ… ๊ตฌํ˜„
    • chatGPT๋ฅผ ์ด์šฉํ•œ ์ฝ”๋“œ ํ•ด์„ ์„œ๋น„์Šค ๊ตฌํ˜„
    • DB ์ƒ์„ฑ ๋ฐ ๊ตฌ์กฐ ๊ตฌ์ถ•
  • ์ •์žฌ์šฑ [FE]

    • ํšŒ์›๊ด€๋ฆฌ ํ”„๋ก ํŠธ ๊ตฌํ˜„
    • ๋ฉ”์ธ ํŽ˜์ด์ง€ ๋ฐ ์ „๋ฐ˜์ ์ธ ์Šคํƒ€์ผ CSS ๋ฐ ํ”ผ๊ทธ๋งˆ
    • ํ™”๋ฉด ์บก์ณ ๋ฐ OCR ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ํ™ˆ ํ™”๋ฉด ์ปดํฌ๋„ŒํŠธ ๋ผ์šฐํŒ… ๋ฐ ๊ตฌ์กฐ ๊ตฌ์„ฑ
    • styled-component์™€ material-ui๋ฅผ ํ†ตํ•œ css ์Šคํƒ€์ผ๋ง
  • ๋ฐ•๋‹จ๋น„ [FE]

    • ์ฑ„ํŒ… ๊ตฌํ˜„(socketJS, stomp)
    • ์ž…๋ ฅ์ฐฝ ์ž๋™ ์™„์„ฑ, ์˜ˆ์•ฝ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œ/์กฐํšŒ
    • ์ฐธ๊ฐ€์ž ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ์† ๋“  ์‚ฌ๋žŒ ๊ตฌ๋ถ„
    • UCC ์ถœ์—ฐ
    • ์‹œ์—ฐ ๋ฐœํ‘œ
  • ๋ฐ•๋ฏผ์•„ [FE]

    • webrtc ์ „๋ฐ˜ ( mediastream, openvidu, tensorflow )
    • ์ฝ”๋“œ ๊ธฐ๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„ ( css, redux-toolkit )

teampjt-sharecodinglive's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.