Wu22e / career-wbs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿชด career-WBS

mermaid๋กœ ์ž‘์„ฑ๋œ ๊ณผ์ œ๋Š” ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ(WBS.md)๋กœ ์˜ฌ๋ ค์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (md ํŒŒ์ผ ๋‚ด์— ๊ธฐ์กด ๊ตฌ์กฐ๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”)
๋ณ„๋„ ์•„ํ‚คํƒ์ณ๋‚˜ ๋ชจ๋ธ๋ง ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š” ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ(WBS.md)๊ณผ png, gif, jpg, pdf ํŒŒ์ผ ํ˜•์‹์œผ๋กœ WBS-{gitID}.png ํŒŒ์ผ๋ช…์œผ๋กœ upload ํ•ด์ฃผ์„ธ์š”

์š”๊ตฌ์‚ฌํ•ญ

  • ๊ฐœ์„ ํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ตœ์ข… ์„ค๊ณ„
    • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ Target ์‹œ์Šคํ…œ ์„ค๊ณ„๋ฅผ ํ™•์ •ํ•œ๋‹ค. (2์ฃผ์ฐจ ๋ฏธ์…˜ ํ™œ์šฉ)
    • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ธฐ๋Œ€ํšจ๊ณผ๋ฅผ ํ™•์ •ํ•œ๋‹ค. (2์ฃผ์ฐจ ๋ฏธ์…˜ ํ™œ์šฉ)
  • task list ๋„์ถœ
    • ํ˜„ ์‹œ์Šคํ…œ์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๋ถ€๋ถ„์„ class diagram(DB๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ERD์ถ”๊ฐ€)์œผ๋กœ ์ž‘์„ฑ
    • ๋ณ€๊ฒฝ, ์ถ”๊ฐ€ ๋  ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ์ž‘์—… ๋ชฉ๋ก์„ ์ž‘์„ฑํ•œ๋‹ค.
  • ์ผ์ • ๊ณ„ํš ๋ฌธ์„œ (WBS)
    • ์ž‘์—…๋ชฉ๋ก์˜ ์†Œ์š”์ผ์ •์„ ์‚ฐ์ • ํ•œ๋‹ค.
    • ์ž‘์—… ๋ชฉ๋ก์˜ ์˜์กด์„ฑ์„ ์ •์˜ ํ•œ๋‹ค.
    • ์ž‘์—… ๋ชฉ๋ก์˜ ์ „์ฒด ์ผ์ •์„ ์ž‘์„ฑํ•œ๋‹ค.
    • ์ง„ํ–‰ ์ƒํƒœ๋ฅผ checkํ•˜๊ธฐ์œ„ํ•œ ๋งˆ์ผ์Šคํ†ค ์„ค์ • ํ•œ๋‹ค.

๐Ÿš€๋ฏธ์…˜

AS-IS

AS-IS ๊ฐœ์„ ํฌ์ธํŠธ ๋ถ„์„

  • ๋งค์ผ ์ „๋‚ ์˜ ๊ฒฐ์ œ ๋ฐ์ดํ„ฐ์ค‘ timeout์ด ๋ฐœ์ƒํ•œ ๊ฒฐ์ œ ๊ฑด์— ๋Œ€ํ•œ ๋ฆฌํฌํŠธ๋ฅผ ๋ฐ›์•„์„œ ํ•ด๋‹น๊ฑด์„ ํ™•์ธ ํ•˜๊ณ  ์žˆ๋‹ค.
  • timeout์ด ๋ฐœ์ƒํ•˜์˜€์„ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฑด์ด PG์—์„œ ๊ฒฐ์ œ๊ฐ€ ๋˜์—‡๋Š”์ง€ ์•ˆ๋˜์—‡๋Š”์ง€? ์•Œ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์Šน์ธ๊ฑด์˜ key๋ฅผ pg์‚ฌ์˜ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ํ™•์ธ ํ•œ๋‹ค.
  • ์Šน์ธ๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑด์„ ์ทจ์†Œํ•˜๊ณ  ์šด์˜DB์— ๊ฒฐ์ œ ์‹คํŒจ๋กœ ์ˆ˜๊ธฐ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ์Šน์ธ์ด ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์šด์˜DB์— ๊ฒฐ์ œ ์‹คํŒจ๋กœ ์ˆ˜๊ธฐ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋งค์ผ timeout๊ฑด์„ ํ™•์ธํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•˜๋ฃจ 2์‹œ๊ฐ„์”ฉ ๊ณ ์ •์ ์ธ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋‹ค.

AS-IS ํ”„๋กœ์„ธ์Šค

flowchart TB
    A[Start] --์ฃผ๋ฌธ์š”์ฒญ--> B(์Šน์ธ)
    B --> C{PG์š”์ฒญ}
    C -- Success --> D[์ฃผ๋ฌธ์™„๋ฃŒ]
    C -- Fail --> E[๊ฒฐ์ œ์ทจ์†Œ]
    C -- Timeout --> F[๋ฐ์ดํ„ฐ๋ณด์ •]
Loading

Class diagram

  • AS-IS ๊ตฌ์กฐ์—์„œ ๊ฐœ์„ ์„ ํ• ๋•Œ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ๋˜๋Š” class diagram์„ ์ž‘์„ฑํ•œ๋‹ค.
classDiagram 

    class PaymentMethod {
        +String paymentMethodID
        pay()
        cancel()
    }
    PaymentMethod <|-- Card
    PaymentMethod <|-- Bank

    class PG {
        +String pgID
        pay()
        cancel()
    }
    PG <|-- Card
    PG <|-- Bank


    class Payment {
        +String paymentID
        +String transactionID
        void pay()
    }

    class Cancel {
        +String cancelID
        +PaymentID paymentID
        +String transactionID
        void cancel()
    }

    class CancelDetail {
        +String cancelDetailID
        +String cancelID
    }

    class PaymentDetail {
        +PaymentID paymentID
    }


    class Card {
        CardID
        pay()
        cancel()
        checkTransaction()
    }
    note for Card "checkTransaction() : ๊ฒฐ์ œ๋‚ด์—ญํ™•์ธ"

    class Bank {
        BankID
        pay()
        cancel()
        checkTransaction()
    }
    note for Bank "checkTransaction() : ๊ฒฐ์ œ๋‚ด์—ญํ™•์ธ"

   Payment "1" -- "*" PaymentDetail : ๊ฒฐ์ œ์ˆ˜๋‹จ, ๊ธˆ์•ก, ์ƒํ’ˆ ์ •๋ณด
   Cancel "1" -- "*" CancelDetail : ๊ฒฐ์ œ์ˆ˜๋‹จ, ๊ธˆ์•ก, ์ƒํ’ˆ ์ •๋ณด
   Cancel "0..1" --> "1" Payment : ์›๊ฒฐ์ œ ์ •๋ณด
   Payment --> PaymentMethod : ๊ฒฐ์ œ์š”์ฒญ
   Cancel --> PaymentMethod : ์ทจ์†Œ์š”์ฒญ


Loading

ERD

-AS-IS ๊ตฌ์กฐ์—์„œ ๊ฐœ์„ ์„ ํ• ๋•Œ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ๋˜๋Š” ERD๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

erDiagram
  Payment {
    Integer id 
    String name
  }
  Payment ||--|{ PaymentDetail : has

  PaymentMethod {
    Integer id
    String name 
  }

  PaymentDetail {
    Integer id
    Integer paymentId
    Integer paymentMethodId
    Long productId
    Integer amount
    Integer quantity
    Integer unitPrice
    String productInfo
  }
  PaymentDetail ||--|{ PaymentMethod : fundingsource

  Cancel {
    Integer id
    Integer paymentId
    String transactionId
  }
  Cancel ||--|{ CancelDetail : has
  CancelDetail ||--|{ PaymentMethod : fundingsource

  CancelDetail {
    Integer id
    Integer cancelId
    Integer amount
    String productInfo
  }

  PaymentDetail {
    String paymentId
    String paymentMethodId
  }

  CancelDetail {
    String cancelId
  }

  
Loading

TO-BE

TO-BE ๊ธฐ๋Œ€ํšจ๊ณผ ๋ถ„์„

  • timeout ๊ฑด์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ๋งค์ผ ์†Œ์š”๋˜๋Š” 2์‹œ๊ฐ„์˜ ์—…๋ฌด ์‹œ๊ฐ„์„ 30๋ถ„ ๋‚ด์™ธ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์‚ฌ๋žŒ์ด ์ง์ ‘ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ž๋™ํ™” ํ•˜์—ฌ ์‹ค์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ€๋” ๊ฒฐ์ œ๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ timeout๊ฑด์œผ๋กœ ๋‚˜์™”์œผ๋‚˜ ์ˆ˜๊ธฐ์ฒ˜๋ฆฌ์‹œ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ๊ณ ๊ฐ์˜ CS ํด๋ž˜์ž„์ด ์ธ์ž…๋˜๊ณ  ์ข‹์ง€์•Š์€ ๊ณ ๊ฐ๊ฒฝํ—˜์„ ์ค€๋‹ค.
    • timeout ๊ฐค์ œ CS์ธ์ž…๊ฑด 1๊ฑด/week ์„ 0๊ฑด์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์ต์ผ ์ฒ˜๋ฆฌ๋˜๋˜ ํ”„๋กœ์„ธ์Šค๋ฅผ 5๋ถ„๋‹จ์œ„์˜ batch๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ์„œ ๊ณ ๊ฐ๋งŒ์กฑ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
    • ์ฃผ๋ฌธ์€ ์‹คํŒจ ํ–ˆ์ง€๋งŒ ๊ฒฐ์ œ๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” CS ๊ฑด 3๊ฑด/week๋ฅผ 0๊ฑด์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

TO-BE ํ”„๋กœ์„ธ์Šค

flowchart TB
 G[Start] --์ฃผ๋ฌธ์š”์ฒญ --> H(์Šน์ธ)
    H --> I(PG์š”์ฒญ)
    I -- Success --> J[์ฃผ๋ฌธ์™„๋ฃŒ]
    I -- Fail --> K[๊ฒฐ์ œ์ทจ์†Œ]
    I -- Timeout --> L[์žฌ์ฒ˜๋ฆฌ]
    L -- ์Šน์ธํ™•์ธ --> M(PG)
    M -- ๊ฒฐ์ œ์‹คํŒจ --> Z(์™„๋ฃŒ)
    M -- ๊ฒฐ์ œ์„ฑ๊ณต --> O(์Šน์ธ์ทจ์†Œ)
    O --> Z

Loading

class diagram

  • class diagram
classDiagram

    class PaymentMethod {
        +String paymentMethodID
        pay()
        cancel()
    }
    PaymentMethod <|-- Card
    PaymentMethod <|-- Bank

    class PG {
        +String pgID
        pay()
        cancel()
    }
    PG <|-- Card
    PG <|-- Bank


    class Payment {
        +String paymentID
        +String transactionID
        void pay()
    }

    class Cancel {
        +String cancelID
        +PaymentID paymentID
        +String transactionID
        void cancel()
    }

    class CancelDetail {
        +String cancelDetailID
        +String cancelID
    }

    class PaymentDetail {
        +PaymentID paymentID
    }


    class Card {
        CardID
        pay()
        cancel()
        checkTransaction()
    }
    note for Card "checkTransaction() : ๊ฒฐ์ œ๋‚ด์—ญํ™•์ธ"

    class Bank {
        BankID
        pay()
        cancel()
        checkTransaction()
    }
    note for Bank "checkTransaction() : ๊ฒฐ์ œ๋‚ด์—ญํ™•์ธ"

   Payment "1" -- "*" PaymentDetail : ๊ฒฐ์ œ์ˆ˜๋‹จ, ๊ธˆ์•ก, ์ƒํ’ˆ ์ •๋ณด
   Cancel "1" -- "*" CancelDetail : ๊ฒฐ์ œ์ˆ˜๋‹จ, ๊ธˆ์•ก, ์ƒํ’ˆ ์ •๋ณด
   Cancel "0..1" --> "1" Payment : ์›๊ฒฐ์ œ ์ •๋ณด
   Payment --> PaymentMethod : ๊ฒฐ์ œ์š”์ฒญ
   Cancel --> PaymentMethod : ์ทจ์†Œ์š”์ฒญ


   class PaymentTiemoutListner {
        +beforeCancelForTimeout()
        -checkLimitRetryCount()
        -isPay()
        +cancelForTimeout()
        +postCancelForTimeout()
   }

   class timeoutResultNotification {
        sendNotification()
   }


    PaymentTiemoutListner "1" -- "1" Payment : ์›๊ฒฐ์ œํ™•์ธ
    Payment --> PaymentTiemoutListner : Timeout Event
    PaymentTiemoutListner --> PaymentMethod : cancel ์ฒ˜๋ฆฌ

Loading

ERD

  • TO-BE ๊ตฌ์กฐ์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ERD๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
erDiagram
  Payment {
    Integer id 
    String name
  }
  Payment ||--|{ PaymentDetail : has

  PaymentMethod {
    Integer id
    String name 
  }

  PaymentDetail {
    Integer id
    Integer paymentId
    Integer paymentMethodId
    Long productId
    Integer amount
    Integer quantity
    Integer unitPrice
    String productInfo
  }
  PaymentDetail ||--|{ PaymentMethod : fundingsource

  Cancel {
    Integer id
    Integer paymentId
    String transactionId
  }
  Cancel ||--|{ CancelDetail : has
  CancelDetail ||--|{ PaymentMethod : fundingsource

  CancelDetail {
    Integer id
    Integer cancelId
    Integer amount
    String productInfo
  }

  PaymentDetail {
    String paymentId
    String paymentMethodId
  }

  CancelDetail {
    String cancelId
  }

  payTimeoutRetry {
    String id
    Integer retryCnt
    String status
  }

  payTimeoutRetryHistories {
    String id
    String status
  }

payTimeoutRetry ||--o{ Retry-Process : do
payTimeoutRetryHistories ||--o{ Retry-Process : dohistories

Loading

Task List

  1. Timeout ๋ฐœ์ƒ ์‹œ Event๋ฐœ์ƒ ์ˆ˜์ •- SQS, SNS
  2. Timeout event subscription module ์ž‘์„ฑ
  3. Timeout log table ์„ค๊ณ„, ์ƒ์„ฑ
  4. Timeout ์žฌ์ฒ˜๋ฆฌ service ์„ค๊ฐœ, ๊ตฌํ˜„
        1. transaction ์„ฑ๊ณต์—ฌ๋ถ€ ํ™•์ธ
        2. transaction ์ทจ์†Œ ์ฒ˜๋ฆฌ ํ•˜๊ธฐ (๊ฒฐ์ œ์‹œ)
        3. ์žฌ์ฒ˜๋ฆฌ logging(DB) : ์ฒ˜๋ฆฌ ํšŸ์ˆ˜(3ํšŒ), ์ฒ˜๋ฆฌ ๋‚ด์—ญ
  5. Timeout ์žฌ์ฒ˜๋ฆฌ ํ˜„ํ™ฉ ์กฐํšŒ ์–ด๋“œ๋ฏผ page.
  6. Timeout ์žฌ์ฒ˜๋ฆฌ ์‹คํŒจ์‹œ ๋ฉ”์ผ ๋ฐœ์†ก ๋ชจ๋“ˆ.

WBS

  1. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ : ์ด๋ฏธ์ˆ˜ํ–‰
  2. ์„ค๊ณ„ : 3d
  3. ์ผ์ •์‚ฐ์ •: 1d
  4. Timeout ๋ฐœ์ƒ ์‹œ Event๋ฐœ์ƒ ์ˆ˜์ •- SQS, SNS : ์ด๋ฏธ ์‚ฌ์šฉํ•˜๋Š” SQS๊ฐ€ ์žˆ๊ณ  ํ์ƒ์„ฑ ๋ฐ ๊ธฐ์กด์ฝ”๋“œ ์ˆ˜์ • : 2d
  5. Timeout event subscription module ์ž‘์„ฑ : SQS, SNS : ์ด๋ฏธ ์‚ฌ์šฉํ•˜๋Š” SQS๊ฐ€ ์žˆ๊ณ  ์‹ ๊ทœ class ์ƒ์„ฑ : 2d
  6. Timeout log table ์„ค๊ณ„, ์ƒ์„ฑ : 1d
  7. Timeout ์žฌ์ฒ˜๋ฆฌ service ์„ค๊ฐœ, ๊ตฌํ˜„ : 2d
    1. transaction ์„ฑ๊ณต์—ฌ๋ถ€ ํ™•์ธ : 0.5d
    2. transaction ์ทจ์†Œ ์ฒ˜๋ฆฌ ํ•˜๊ธฐ (๊ฒฐ์ œ์‹œ) : 0.5d
    3. ์žฌ์ฒ˜๋ฆฌ logging(DB) : ์ฒ˜๋ฆฌ ํšŸ์ˆ˜(3ํšŒ), ์ฒ˜๋ฆฌ ๋‚ด์—ญ : 1d
  8. Timeout ์žฌ์ฒ˜๋ฆฌ ํ˜„ํ™ฉ ์กฐํšŒ ์–ด๋“œ๋ฏผ page.: ๊ธฐ์กด admin์— ๋ฉ”๋‰ด ์ถ”๊ฐ€ : 5d
  9. Timeout ์žฌ์ฒ˜๋ฆฌ ์‹คํŒจ์‹œ ๋ฉ”์ผ ๋ฐœ์†ก ๋ชจ๋“ˆ: ๊ธฐ์กด notification์— method ์ถ”๊ฐ€ : 1d
gantt
    dateFormat  YYYY-MM-DD
    title       ๊ฒฐ์ œ ์žฌ์ฒ˜๋ฆฌ WBS
    excludes    weekends, 2023-12-25, 2024-01-01
    %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)

    section prepare
    ์š”๊ตฌ์‚ฌํ•ญ๋ถ„์„                    :done,    des1, 2023-12-01, 10d
    ์„ค๊ณ„                            :active,  des2, 2023-12-11, 3d
    ์ผ์ •์‚ฐ์ •                        :         des3, after des2, 1d
    Timeout log table ์„ค๊ณ„, ์ƒ์„ฑ    :       des4, 2023-12-27, 1d

    section ๊ธฐ์กด ๋ชจ๋“ˆ ์ˆ˜์ •
    Payment timeout event ๋ฐœ์ƒ          :crit, b1, 2024-01-03,2d
    Cancel timeout์šฉ cancel ์ถ”๊ฐ€        :crit, b2, 2024-01-10, 2d

    section ์‹ ๊ทœ ๋ชจ๋“ˆ ๊ตฌํ˜„
    Timeout event consumer ๋ชจ๋“ˆ์ž‘์„ฑ    :c1, after b1, 2d
    Queue ๋™์ž‘ํ™•์ธ                      :milestone, after c1, 0d
    Timeout service ๊ตฌํ˜„                  :c2, after b2  , 2d
    Timeout ์žฌ์ฒ˜๋ฆฌ ํ˜„ํ™ฉ ์กฐํšŒ ์–ด๋“œ๋ฏผ ๊ฐœ๋ฐœ    :c3, after c2  , 5d
    Timeout ์žฌ์ฒ˜๋ฆฌ ์‹คํŒจ์‹œ notification     : c4, after c3, 1d

    section ํ…Œ์ŠคํŠธ
    Test & QA                           :after c4, 2d

Loading

About