Code Monkey home page Code Monkey logo

cracking_design_patterns's Introduction

  • ๐ŸŽจ Interested in services that innovate users' lifestyles.
  • โœ๏ธ Committed to sustainable growth and keeping track of how it happens.
  • ๐Ÿ‘ฉโ€๐Ÿ”ง Worked as an engineer at a coal-fired power plant for 4 years.
  • ๐Ÿ‘ฉโ€๐Ÿ’ป Living through mobile apps pushed me to become an iOS developer.

Professional Experiences

iOS developer at Backpackr/idus (Sep 2022 - Present)

  • Handmade e-commerce platform startup with 17 million app downloads, and 5 million MAU
  • Developed and maintained newly launched idus Global app (released in Feb 2023)
  • Developed and maintained idus Domestic app

Side Projects

๐Ÿ™ WhatToEat

Apr 2022 - Jul 2022

  • An iOS app recommending meals to share based on 9 questions image

Knowledge Sharing

  • Presentation on Localization for Global Apps (Video) / K-WWDC23 (Jul 2023)
  • 3 times iOS Mentor for LikeLion Bootcamp (Dec 2022 - Present)
  • Technical Blog Posts: Over 80 posts with 5,000 monthly visitors (Sep 2021 - Present)
  • Writing Club for developers ๊ธ€๋˜ (Jan 2021 - Present)

Education

iOS Bootcamp / Yagom Academy

Oct 2021 - Apr 2022

Where to find me


Hits

cracking_design_patterns's People

Contributors

just1103 avatar

Watchers

 avatar

cracking_design_patterns's Issues

#1 Factory Method

๋ฌธ์ œ ์ƒํ™ฉ

  • ๋ฌผ๋ฅ˜๊ด€๋ฆฌ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ๋จผ์ € Truck (ํŠธ๋Ÿญ) ์šด์†ก ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์–ผ๋งˆ ๋’ค Ship (์„ ๋ฐ•) ๋“ฑ ์ถ”๊ฐ€์ ์ธ ์šด์†ก์ˆ˜๋‹จ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ๊ธฐ์กด์˜ Truck ํด๋ž˜์Šค์— ๊ฒฐํ•ฉ๋˜์–ด ์žˆ์–ด ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ์ƒํ™ฉ์ด๋‹ค.

ํŒจํ„ด ์„ค๋ช…

  • ์š”์•ฝ : ๋ถ€๋ชจํด๋ž˜์Šค์—์„œ ๊ฐ์ฒด ์ƒ์„ฑ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋™์‹œ์— ์ž์‹ํด๋ž˜์Šค๊ฐ€ ๊ฐ์ฒด์˜ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ด๋‹ค.
  • Product, Creator ์—ญํ• ์ด ํ•„์š”ํ•˜๋‹ค.
    4b048af4-ce48-471a-8b39-d64c7bcb459d

1. Product

  • ์ผ๋ฐ˜์ ์ธ ๊ฐ์ฒด ์ƒ์„ฑ ์ฝ”๋“œ๋ฅผ ๋ถ€๋ชจํด๋ž˜์Šค์˜ ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์— ๋ฐฐ์น˜ํ•œ๋‹ค. ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋Š” ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ด ๊ฐ์ฒด๋ฅผ Product (์ œํ’ˆ)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ์ด์ œ ์ž์‹ํด๋ž˜์Šค์—์„œ ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ overrideํ•˜์—ฌ Product ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ Product๋Š” ๊ณตํ†ต์ ์ธ ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•ด์•ผ ํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ (ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ)๋Š” Product ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋ชจ๋ฅธ๋‹ค.

2. Creator

  • Creator ํด๋ž˜์Šค ๋‚ด๋ถ€์— Product๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•œ๋‹ค.
  • ์˜ˆ์‹œ์˜ ๋ถ€๋ชจํด๋ž˜์Šค Logistics๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ์—์„œ Truck (default transport ๊ฐœ๋…)์„ ์ƒ์„ฑํ•˜๋„๋ก ํ–ˆ๊ณ , Logistics์˜ ์ž์‹ํด๋ž˜์Šค์ธ Road/SeaLogistics๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ overrideํ•˜์—ฌ ๊ฐ๊ฐ Truck/Ship์„ ์ž์ฒด์ ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋„ค์ด๋ฐ์—์„œ ์˜ˆ์ƒ๋˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ, Creator์˜ ์ฑ…์ž„์€ ์ œํ’ˆ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ œํ’ˆ๊ณผ ๊ด€๋ จ๋œ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋Š” ์ด๋Ÿฌํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ Concrete Product ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ (๋””์ปคํ”Œ๋ง)ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค.

์˜ˆ์‹œ ์ฝ”๋“œ

// MARK: - Product
protocol Transport {
    func deliver()
}
class Truck: Transport {
    func deliver() {
        print("Truck - delivery started")
    }
}
class Ship: Transport {
    func deliver() {
        print("Ship - delivery started")
    }
}

// MARK: - Creator
class Logistics {
    func createTransport() -> Transport {
        let defaultTransport = Truck()
        print("Truck - created")
        return defaultTransport
    }
    
    func service() {
        let transport: Transport = createTransport()
        print("Packages on board")
        transport.deliver()
    }
}
class RoadLogistics: Logistics {
    override func createTransport() -> Transport {
        print("Truck - created")
        return Truck()
    }
}
class SeaLogistics: Logistics {
    override func createTransport() -> Transport {
        print("Ship - created")
        return Ship()
    }
}

์žฅ์ 

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ํŒŒ์ผ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ ๋“ฑ ๋Œ€๊ทœ๋ชจ ๊ฐ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ด ํŒจํ„ด์„ ํ™œ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Creator์™€ Concrete Product์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜๋‹ค.
  • ์ œํ’ˆ ์ดˆ๊ธฐํ™” ๊ธฐ๋Šฅ์„ ํ•œ ๊ฐ์ฒด์—์„œ ์ „๋‹ดํ•˜๋ฏ€๋กœ ๋‹จ์ผ์ฑ…์ž„ ์›์น™์„ ์ค€์ˆ˜ํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์€ ์ฑ„๋กœ ์ƒˆ๋กœ์šด Product๋ฅผ ๋„์ž…ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐฉํ์‡„ ์›์น™์„ ์ค€์ˆ˜ํ•œ๋‹ค.

๋‹จ์ 

  • ์ƒˆ๋กœ์šด ์ž์‹ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ฝ”๋“œ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง„๋‹ค. ๋”ฐ๋ผ์„œ Creator ํด๋ž˜์Šค์˜ ๊ธฐ์กด ๊ณ„์ธต๊ตฌ๋„์— ํŒจํ„ด์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

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.