$30 off During Our Annual Pro Sale. View Details »

Become a Backend Developer

mingrammer
February 24, 2017

Become a Backend Developer

초보자를 위한 백엔드 개발 시작하기

mingrammer

February 24, 2017
Tweet

More Decks by mingrammer

Other Decks in Programming

Transcript

  1. Become a Backend Developer (for beginner)
    MinJae Kwon (@mingrammer)
    2017.02.24 9XD : return 0

    View Slide

  2. Name
    ӂ޹੤ (MinJae Kwon)
    Nickname
    @mingrammer
    Email
    [email protected]
    Who
    Backend Developer
    Blog
    https://mingrammer.com
    Facebook
    https://facebook.com/mingrammer
    Github
    https://github.com/mingrammer
    Eng Blog
    https://medium.com/@mingrammer

    View Slide

  3. 2. ߔূ٘, Ӓѱ ޥоਃ?
    4. ߔূ٘ ѐߊ੗о غҊ रযਃ!
    3. যڃ Ѫٜਸ ೡ ࣻ ੓աਃ?
    Contents
    5. Next & Future
    1. աח ־ҳੋо

    View Slide

  4. աח ־ҳੋо

    View Slide

  5. աח ־ҳੋо
    Name
    ӂ޹੤ (MinJae Kwon)
    Nickname
    @mingrammer
    Email
    [email protected]
    Who
    ই઱؀೟Ү ࣗ೐౟ਝয೟җ 3೟֙

    View Slide

  6. աח ־ҳੋо
    ѐߊ ҃೷
    জѐߊ ਢѐߊ ߔূ٘/ࢲߡ ѐߊ ࠙࢑ दझమ
    ݠन۞׬
    ߔূ٘/ࢲߡ ѐߊ
    ?
    ?
    ?
    1y 2m
    ?

    View Slide

  7. ѐߊ ҃೷
    աח ־ҳੋо
    AWS
    GCP
    Django
    Flask
    Python
    Go
    + +
    ߔূ٘/ࢲߡ ѐߊ

    View Slide

  8. ѐߊ ҃೷
    աח ־ҳੋо
    ই޷ఫ୛݂
    ੉޷૑ ࢲߡ ѐߊ
    API ࢲߡ ѐߊ
    ೐۽࠺ઉ׬
    ਢࢲ࠺झ ѐߊ
    AWS
    ઑӘঀ ೧ࠌणפ׮ ..

    View Slide

  9. ߔূ٘, Ӓѱ ޥоਃ?

    View Slide

  10. ߔূ٘, Ӓѱ ޥоਃ?
    ৈӝࢶ ನҚ੸ਵ۽ ׮ܛפ׮
    ==
    Backend Developer Server Developer ?

    View Slide

  11. ߔূ٘, Ӓѱ ޥоਃ?
    Service
    Mobile
    User
    Web
    User

    View Slide

  12. ߔূ٘, Ӓѱ ޥоਃ?
    Frontend
    Mobile
    User
    Web
    User
    Backend

    View Slide

  13. ߔূ٘, Ӓѱ ޥоਃ?
    Frontend
    Mobile
    User
    Web
    User
    Web Server
    DB Server
    API Server
    Image Server

    View Slide

  14. ߔূ٘, Ӓѱ ޥоਃ?
    Frontend
    Mobile
    User
    Web
    User
    Web Server
    DB Server
    API Server
    Image Server
    Backend Systems

    View Slide

  15. ߔূ٘, Ӓѱ ޥоਃ?
    Web Server
    DB Server
    API Server
    Image Server
    Frontend
    Mobile
    User
    Web
    User
    Interface Service / Business
    End Users

    View Slide

  16. ߔূ٘, Ӓѱ ޥоਃ?
    प ઱ޙ ୊ܻ
    ਃܻ
    ࢸѢ૑
    ੤ܐ ҙܻ
    ஠਍ఠ
    धఌ
    ప੉௼ইਓ
    ղࠗ
    ઱ߑ
    ࣚש ਺ध੼

    View Slide

  17. ߔূ٘, Ӓѱ ޥоਃ?
    Shop
    Auth Server
    Web Server
    User Shop > Login
    Shop > Buy Pay Server
    DB Server
    Log Server
    Scenario based Simple Backend System Example
    Cache
    Server

    View Slide

  18. ߔূ٘, Ӓѱ ޥоਃ?
    Image Server
    LB
    LB
    LB
    API Server 1
    API Server 2
    DB Server
    Master
    DB Server
    Slave
    Web Server 1
    Web Server 2
    Simple Detailed Backend System Example
    Web Frontend
    Mobile Client
    Log Server

    View Slide

  19. যڃ Ѫٜਸ ೡ ࣻ ੓աਃ?

    View Slide

  20. যڃ Ѫٜਸ ೡ ࣻ ੓աਃ?
    ࢲ࠺झо ೙ਃೠ Ҕ
    ࠺ૉפझ दझమ੉ ೙ਃೠ Ҕ
    ੋ೐ۄо ೙ਃೠ Ҕ
    ؘ੉ఠ ୊ܻо ೙ਃೠ Ҕ

    ࠁా যڃ ౠ੿ ޙઁܳ ೧Ѿೞӝ ਤೠ दझమਸ ы୶ӝ ਤ೧
    ޙઁী ٮۄ ҭ੢൤ ݆਷Ѧ ೡ ࣻ ੓णפ׮.

    View Slide

  21. ѱ੐ ࢲߡ ౠࣻ ݾ੸ ࢲߡ
    ਢࢲ࠺झ ߔূ٘
    যڃ Ѫٜਸ ೡ ࣻ ੓աਃ?
    ࠙ঠ ࠙ܨ
    ֎౟ਕ௼ ࢲߡ
    ѱ੐ ۽૒ ࢲߡ
    ੋૐ ࢲߡ
    ଻օ ࢲߡ
    ݗ ࢲߡ
    ଻౴ ࢲߡ

    ؘ੉ఠ ࣻ૘ ࢲߡ
    ؘ੉ఠ ࠙ࢳ ࢲߡ
    ੋ௏٬ ࢲߡ
    ݫद૑ ௸ ࢲߡ
    झ౟ܻ߁ ࢲߡ
    CI / CD ࢲߡ

    ਢ গ೒ܻா੉࣌ ࢲߡ
    API ࢲߡ
    ۽Ӓ ࢲߡ
    ؘ੉ఠ߬੉झ ࢲߡ
    झషܻ૑ ࢲߡ
    CDN ࢲߡ

    ੌ߈ ࢲߡ
    दр ࢲߡ
    ݫੌ ࢲߡ
    ౵ੌ ࢲߡ
    நद ࢲߡ
    ೐۾द ࢲߡ

    View Slide

  22. যڃ Ѫٜਸ ೡ ࣻ ੓աਃ?
    ਢࢲ࠺झ ѐߊ API ѐߊ ੉޷૑ ࢲߡ ѐߊ
    ݠन۞׬ ੋ೐ۄ
    ইఃఫ୛݂
    ۽Ӓ ࠙ࢳਊ
    ࢲߡ ѐߊ
    ߔয়ೖझ ѐߊ
    ݽפఠ݂
    ࢲߡ ѐߊ
    ੋૐ ࢲߡ ѐߊ
    ޙࢲ ҙܻ
    दझమ ѐߊ
    Common
    Specific Domain
    System / Infra
    ࢲ࠺झ ࢿѺ ࠙ܨ

    View Slide

  23. যڃ Ѫٜਸ ೡ ࣻ ੓աਃ?
    ࠺ૉפझ ۽૒
    ѐߊ
    API ࢸ҅ ߂ ѐߊ
    ౠࣻ ݾ੸ ۽૒
    ѐߊ
    ೐۽࠺ઉ׬
    ݽפఠ݂
    ੉઺ച ߂
    झாੌ݂
    ਃ୒ ୊ܻ ߂
    ஶబஎ ઁҕ
    ؘ੉ఠ߬੉झ
    ࢸ҅
    ইఃఫ୛݂
    ֎౟ਕ௼ ҳઑ
    ࢸ҅
    ӝמ ࠙ܨ

    View Slide

  24. ߔূ٘ ѐߊ੗о غҊ रযਃ!

    View Slide

  25. ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ߔূ٘ ѐߊ੗о غӝ ਤ೧ࢶ ҕࠗ೧ঠೡѱ ઑӘ ੓णפ׮

    View Slide

  26. ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ਍৔୓ઁ
    ֎౟ਕ௼
    ইఃఫ୛
    ؘ੉ఠ߬੉झ
    ࠁউ
    о࢚ ஹೊ౴
    ߓನ ҙܻ
    ݽפఠ݂
    ੉઺ച
    ௿ۄ਋٘ ஹೊ౴
    ঱য / ೐ۨ੐ਕ௼
    పझ౴ ӝߨ
    ٣ߡӦ ӝߨ
    நय
    API ࢸ҅
    ۽Ӓ ҙܻ
    ాन ೐۽ష௒
    झாੌ݂

    View Slide

  27. ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ਍৔୓ઁ
    ֎౟ਕ௼
    ইఃఫ୛
    ؘ੉ఠ߬੉झ ࠁউ
    о࢚ ஹೊ౴ ݽפఠ݂
    ߓನ ҙܻ
    ੉઺ച
    ௿ۄ਋٘ ஹೊ౴
    ঱য / ೐ۨ੐ਕ௼
    పझ౴ ӝߨ
    ٣ߡӦ ӝߨ
    நय API ࢸ҅ ӝߨ
    ۽Ӓ ҙܻ
    ాन ೐۽ష௒
    System Computing Quality Technique
    Management
    झாੌ݂





    View Slide

  28. ঱য / ೐ۨ੐ਕ௼
    PHP
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    Python
    Scala
    Node.js
    Java
    Ruby
    Go
    Haskell
    Spring
    Codeigniter, Laravel
    Flask, Django
    Express, Hapi
    Play
    Ruby on Rails
    Beego, Gorilla, Gin
    Snap

    View Slide

  29. ঱য / ೐ۨ੐ਕ௼
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ݽف જ਷ ঱য੉Ҋ ೐ۨ੐ਕ௼ੑפ׮.
    গ೒ܻா੉࣌੄ ݾ੸җ ࢿѺী ٮۄ ࢶఖೞदݶ ؾפ׮.
    I/O Boundۄݶ Node.js
    CPU Boundۄݶ Go
    ؘ੉ఠ ࠙ঠח Python
    ֫਷ উ੿ࢿ੉ۄݶ Scala

    View Slide

  30. ਍৔୓ઁ
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ۽٘ ߖ۠य, நय, झாે݂ ١ ࢲߡ दझమীࢲ ਃҳغח OS ૑धٜਸ
    ੉೧ೞҊ ੓যঠ೤פ׮.
    Ӓ۞ա ࢲߡܳ ૒੽ ׮ܖח ࠙ঠੋ݅ఀ ӝࠄ੸ੋ OS ૑ध਷ ೙ࣻ੉ݴ
    ݣ౭ झۨ٬/೐۽ࣁय ೐۽Ӓې߁ਸ ೡ ҃਋ ؊਌ Ө਷ ૑धਸ ਃҳ೤פ׮
    ѱ੐ ࢲߡ ౠࣻ ݾ੸ ࢲߡ
    ਢࢲ࠺झ ߔূ٘ ੌ߈ ࢲߡ

    View Slide

  31. ֎౟ਕ௼
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ߔূ٘ী ੓যࢲח ࢎप ਍৔୓ઁࠁ׮ ؊ ઺ਃೠ ࠗ࠙ੑפ׮.
    ౠ൤ ࠁউҗب ૒Ѿغয੓ח ࠗ࠙੉ӝ ٸޙী ֎౟ਕ௼ ૑ध਷ ੿݈ ઺ਃ೤פ׮
    ౠ൤ दझమ੉ ழ૑ݶ ݎ/ࢲ࠳֔ ܻ࠙, ࠁউ ాन, ೐۽ష௒١ਸ ೙ࣻ੸ਵ۽
    Ҋ۰೧ঠೞݴ Ӓী ٮܲ ֎౟ਕ௼ ૑धী ؀ೠ ҕࠗо ೙ࣻੑפ׮
    ѱ੐ ࢲߡ ౠࣻ ݾ੸ ࢲߡ
    ਢࢲ࠺झ ߔূ٘ ੌ߈ ࢲߡ

    View Slide

  32. ؘ੉ఠ߬੉झ
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ױࣽ൤ ؘ੉ఠܳ ੍Ҋ ॳחѢ ੉࢚੄ ׮਺ী ؀ೠ ૑धҗ ੉೧о ઺ਃ೤פ׮
    ࠺ૉפझ৬ दझమ੄ Ѣ੄ ೨बѺੋ ؘ੉ఠ߬੉झח ੿݈ ઺ਃ೤פ׮
    ইఃఫ୛ ࢸ҅ Locking ౟ےં࣌ ҙܻ
    ੉઺ച ੋؙय ௪ܻ ୭੸ച

    View Slide

  33. ߔূ٘ ѐߊ੗о غҊ रযਃ!
    RDBMS
    MySQL
    PostgreSQL
    MSSQL
    Oracle
    Aurora

    NoSQL
    MongoDB
    Redis
    Memcached
    DynamoDB

    ؘ੉ఠ߬੉झ
    झః݃ܳ ъઁೞ૑ ঋই ׮੉ա޸ೠ ؘ੉
    ఠܳ ׮ܙ ࣻ ੓਺
    ࡅܲ ௪ܻܳ ਤೠ ؘ੉ఠ߬੉झ ߂ நय ࢲ
    ߡ۽ ݆੉ ࢎਊؽ
    ؘ੉ఠܳ ҳઑ੸ਵ۽ ׮ܖҊ
    ҙܻೡ ࣻ ੓਺
    ੌ߈੸ੋ ؘ੉ఠ ࣻ૘ ߂ ୊ܻܳ ਤ೧
    ݫੋ ؘ੉ఠ߬੉झ۽ ࢎਊؽ

    View Slide

  34. ௿ۄ਋٘ ஹೊ౴
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    MicroSoft
    Azure
    Amazon Web
    Service
    Google Cloud
    Platform
    ޛܻ ࢲߡ৬ ׳ܻ झாੌ݂੉ ҭ੢൤ ಞೞݴ ݆਷ ࢲ࠺झٜਸ ઁҕ೧ષ
    Scaling, Fail over١ਸ ׮ܖӝо ҭ੢൤ ಞೣ
    ޛܻ ࢲߡ ҙܻী ؀ೠ ࠺ਊ੉ അ੷൤ ઴যٝ
    ࢎਊೠ ݅ఀ੄ ࠺ਊ݅ ૑ࠛೞݶ غӝٸޙী ࠺ਊ ҙܻо ਊ੉ೣ

    View Slide

  35. పझ౴
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    TDDө૓ ইפযب ੸যب ਬ׫పझ౟ח ԙ ੘ࢿೞחѦ ୶ୌ೤פ׮
    ௏٘ ௬ܻ౭ ਬ૑
    ܻಂష݂ ߂ ਬ૑
    ࠁࣻ੄ ਊ੉ࢿ
    ӝמ ز੘ ഛੋ
    పझ౴਷ ষ୒ ઺ਃ೤פ׮.

    View Slide

  36. о੢ જ਷Ѥ ੌױ ٜ݅যࠁࣁਃ!
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    Learning by Doing is Best
    पઁ۽ ૒੽ ೞ׮ࠁݶ ੿݈ ݆਷ ߡӒ৬ ޙઁٜਸ
    ѻਵݶࢲ ࢤпࠁ׮ ݆਷Ѧ ߓ਎ ࣻ ੓णפ׮

    View Slide

  37. AWS Elastic
    Beanstalk
    Amazon

    RDS
    ߓನо ए਍ Elastic Beanstalkܳ ࢎਊ
    ਋ࢶ ਢࢲߡ৬ ؘ੉ఠ߬੉झܳ فҊ ..
    ࢎ۹
    ߔূ٘ ѐߊ੗о غҊ रযਃ!

    View Slide

  38. झషܻ૑ب فҊ ..
    AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    S3
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  39. ੉৴ AWS ॳחѢ بݫੋب Route53
    AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    S3
    Amazon

    Route 53
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  40. S3۽ झ౟ܻ߁ਸ যڌѱ ҳഅೞ૑ .. ?
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  41. Amazon
    CloudFront
    Amazon Elastic 

    Transcoder
    +
    AWSח ࢎیੑפ׮. ׮ ੓਺ ..
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  42. CloudFront۽ ੿੸ ౵ੌө૑ ݽف ࢲࡂೞ੗!
    AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    Route 53
    Amazon

    S3
    Amazon
    CloudFront
    Amazon Elastic 

    Transcoder
    ৔࢚ झ౟ܻ߁਷ ਬܐ੉޲۽ ੽Ӕ ઁೠਸ ف੗!
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  43. ੉ݫੌب ࠁղঠೞפ SESܳ ॳ੗
    AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    Route 53
    Amazon

    S3
    Amazon
    CloudFront
    Amazon Elastic 

    Transcoder
    Amazon
    SES
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  44. ॉ֎ੌਸ ٜ݅যঠ ೞחؘ ੉޷૑ ೐۽ࣁयী दр੉ Ѧܿ
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  45. Lambdaܳ ࢎਊ೧ ੉޷૑ ೐۽ࣁयਸ ਢࢲߡ৬ ܻ࠙
    AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    Route 53
    Amazon

    S3
    Amazon
    CloudFront
    Amazon Elastic 

    Transcoder
    Amazon
    SES
    AWS
    Lambda
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  46. ٯ ੉ۧѱ݅ ҳࢿ೧ࢲ ੌױ ୭ઙ ইఃఫ୛о ৮ࢿؽ
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  47. AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    Route 53
    Amazon

    S3
    Amazon
    CloudFront
    Amazon Elastic 

    Transcoder
    Amazon
    SES
    AWS
    Lambda
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  48. Ӓؘ۠ Ӓ ৬઺ী ইఃఫ୛ ޙઁо ߊѼؽ
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  49. ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹
    AWS Elastic
    Beanstalk
    Amazon

    RDS
    Amazon

    Route 53
    Amazon

    S3
    Amazon
    CloudFront
    Amazon Elastic 

    Transcoder
    Amazon
    SES
    AWS
    Lambda
    Beanstalk ࢲߡী ࠢয ੓ח Admin ࢲߡо
    Publicೠ ৔৉ী ਤ஖
    DB ژೠ Publicೠ ৔৉ী ਤ஖
    Lambdaܳ زӝ੸ਵ۽ प೯दఃҊ ੓਺

    View Slide

  50. Private subnet
    Public subnet
    Web service server
    instance
    Admin web server
    instance
    RDS DB instance
    user
    Admin
    VPN
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  51. Lambdaܳ زӝ੸ਵ۽ प೯दఃҊ ੓਺
    AWS Elastic
    Beanstalk
    Amazon

    S3
    AWS
    Lambda
    ਢࢲߡо Lambda ઙܐܳ ؀ӝ
    AWS Elastic
    Beanstalk
    Amazon

    S3
    AWS
    Lambda
    S3 ੉߮౟ܳ ഝਊೠ ࠺زӝ ୊ܻ
    ৮ܐ റ ॉ֎ੌ ੷੢
    ߔূ٘ ѐߊ੗о غҊ रযਃ!
    ࢎ۹

    View Slide

  52. Next & Future

    View Slide

  53. ইצ ҃਋ب ੓૑݅ Ѣ੄ ؀ࠗ࠙੄ ࢲ࠺झח ߔূ٘ दझమਸ
    ы୶Ҋ ੓ਵݴ Ӓী ؀ೠ ࣻਃب ݆ӝ ٸޙী
    ޷ېח ߋणפ׮!
    Next & Future
    ޛۿ …
    (ౠ൤ ୭Ӕূ ؘ੉ఠ ࠙ࢳҗ ݠन۞׬ ੋ೐ۄী ؀ೠ ࣻਃب ݆णפ׮)

    View Slide

  54. AWS Lambda
    Cloud Functions Azure Function
    Serverless Architecture
    Serverless : ࢲߡ ҙܻ੄ ೙ਃࢿਸ х୷ (ࢲߡо ೙ਃ হ׮ח ੄޷ח ইש)
    Firebase Serverless Framework
    Next & Future

    View Slide

  55. ೞ૑݅! Serverless Architecture۽ ݽٚѦ ೡ ࣻח হणפ׮
    Next & Future
    Serverlessب ѾҴ ࢸ੿җ ҙܻо ೙ਃೣ
    ࢎਊ ӝࣿ੄ ઁড੉ ઓ੤ೡ ࣻ ੓਺
    long-run গ೒ܻா੉࣌ীח ੸೤ೞ૑ ঋ਺
    ݽٚ ࠺ૉפ۽૒ਸ ୊ܻೞӝীח ೠ҅о ࠙ݺ
    ಌನݢझ ޙઁب হ૑ ঋ਺

    ߔূ٘ ѐߊ੗ח લ૑ ঋইਃ

    View Slide

  56. Own (Cloud) Servers Serverless
    Next & Future
    Own (Cloud) Servers
    Serverless
    Ӓېࢲ ࠁా ޙઁী ٮۄ ׮਺җ э੉ ׮নೠ ഋక۽ ઓ੤ೞӝب ೤פ׮
    +
    VM
    VM
    DB
    DB
    API
    API
    VM
    VM
    API
    DB Hook
    Hook
    Event
    Event
    Hook
    Hook
    Event
    Event
    Docker
    Redis
    Auth
    Logic
    Analysis
    Analysis

    View Slide

  57. ߔূ٘੄ ޷ېח ߋणפ׮!
    Next & Future
    Ӓۢ ੉݅ return 0;
    ৈౡ ߓਕفݶ খীࢲب ࠁ؍؀۽ ೡ ࣻ ੓חѤ ҭ੢൤ ݆णפ׮

    View Slide

  58. хࢎ೤פ׮
    MinJae Kwon (@mingrammer)
    2017.02.24 9XD : return 0
    Become a Backend Developer (for beginner)

    View Slide