Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Programming Language

ウンジョンサムとJavaでデザインパターンを簡単に始める

デザイン パターンを学習して、柔軟で拡張性の高いオブジェクト指向プログラミングを実装できます。実際の業務で使えるさまざまなパターンを学習して、プロジェクトやコード リファクタリングに適用してみましょう。

  • eunjong
oop
Design Pattern
Refactoring

学習した受講者のレビュー

こんなことが学べます

  • デザインパターン

  • オブジェクト指向プログラミング

  • リファクタリング

  • Java

カカオ社内開発者教育講義!
厳選されたデザインパターンだけを選んで学びます🤓

実例で学ぶデザインパターン✨

現在、複数のシステムがオブジェクト指向プログラミング言語で開発されている理由は何ですか?システムやソリューション開発後の機能の拡張、要件の変更、メンテナンスをより効率的にするためです。これらの変更を容易にするには、設計段階から適切なオブジェクト指向設計を行う必要があります。デザインパターンを学習すると、デザインに対するさまざまなソリューションを理解して適用できます。

なぜデザインパターンを勉強するのですか? 🤔

繰り返し発生する問題に同じ解決策を適用できる場合は、この設計をパターンと呼びます。デザインパターンは、最初の4人の学者GoFが複数の既存のシステムとソフトウェアを分析し、各問題に対する最も合理的なソリューションの方向性をまとめた分野です。したがって、デザインパターンはどんな規則や文法ではありません。また、言語に限定されず、オブジェクト指向言語といえば、すべて適用できます。

開発者は柔軟でメンテナンスに優れたプログラムを開発するためにフレームワークをインポートし、良い方法論を使用します。デザインパターンは複数のフレームワークにもすでに適用されています。パターン自体の学習も意味がありますが、問題解決に効率的なソリューションを設計したら、独自のパターンも作成できます。


今回の講義はカカオ社内開発者教育映像として活用される講義です。 Java文法を知っていますが、クラスを活用したオブジェクト指向設計が難しい方がデザインパターンを通じて学習するのに役立つように作られました。 GoFで紹介した23のパターンがありますが、今回の講義では実際の現業で多く使って実務に役立つパターン16個だけを選んで紹介します。他のフレームワークやライブラリでも多く適用され、多く使用しているパターンだけを圧縮的に勉強してください!これを勉強すると、後でフレームワークを理解するのにも役立ちます。

簡単で楽しい例で学ぶ✨

  • 各パターンは例を通して簡単に理解できます。
  • サンプルコードを与え、デザインパターンを適用してスケーラブルにコードリファクタリングを行います。パターンの適用を通じて変わるコードを見ながら学習できます。
  • 現業に適用できる設計方法を教えてください。

こんな方におすすめですよ🙋‍♀️

オブジェクト指向プログラミングをどうするか分からない方

開発者就職準備生、新入、またはジュニア開発者

Javaを使ったOOP開発を体験したい方

フレームワーク勉強前にデザイン原理を理解したい方


こんなことを学びます🤓

- Strategyパターンの学習例

1.問題は何ですか?

  • このパターンが出てきた問題になる状況は何なのか、このパターンが設計し改善しようとする意図は何かをまず説明します。


2. クラス図によるパターンの理解

  • クラス図と現実的で簡単な例でパターンがどのように適用されるかを学びます。

3. 現実的な例によるパターンの適用とリファクタリング

📢受講前に確認してください!

  • GitLabアドレスとレッスンで使用されるソースGitHubアドレスは、セクション1のFactory Methodのレッスン下部のレッスンノートで確認できます。

受講後のプレビュー 📜

*知識共有者が同じ過程で行った外部メンタリングに対するフィードバックです。

「シングルトンパターンからアダプタパターンまで、主に使用する実効性のあるパターンをよく学ぶことができた。

イノベーションアカデミー - 川*水

「スタディを進める前には、本の説明を見てUMLを見てもパターンを理解することが難しかったです。なのですが、スタディを進めるほど、なぜこのようなパターンが出るしかなかったのかを理解しながら、スタディを進めるようになりました。

イノベーションアカデミー - イ*

「Javaを初めて学習した後、スタディを申請しました。スタディは、毎週ブリッジパターン、ファクトリメソッドパターン、オブザーバーパターンなど、さまざまなデザインパターンを活用してコードをリファクタリングし、課題を解決する方法で行われました。デザインパターンを一人で勉強しにくかった部分を課題とスタディをしながら楽しく理解できました」

イノベーションアカデミー - キム*ヨン

「今回のデザインパターンスタディは前回のJavaスタディよりも楽しく勉強できました!特にファクトリーパターンや、戦略パターン、オブザーバーパターンが記憶がたくさん残るようです。いましたが、現在Springを活用したプロジェクトを進めていますが、このスタディを通じて学んだことを溶かして、少しでも良いコードを書けたらと思います。

イノベーションアカデミー - チョ・ジン


学習内容📚

1.デザインパターンとは何ですか?リファクタリングとは?

2. オブジェクトを生成するパターン

  • Factory Method - ファクトリを利用したオブジェクトの作成とリファクタリング
  • Abstract Factory - ファクトリを選択してインスタンスのセットを作成します。
  • Singleton - 1つのインスタンスのみを作成する

3. アルゴリズムスケルトンや機能と実装を分離して、より柔軟にする

  • Strategy - ポリシーやアルゴリズムを分離し、必要に応じて追加の置換を可能にする
  • ブリッジ - 機能が宣言されている部分とそれに対するさまざまな実装を分離し、ブリッジを介して接続する
  • Template Method - 固定フローは Template で定義し、その中に多様に実装できるメソッドはサブクラスで実装

4. 同一視する

  • Decorator - さまざまな機能を柔軟に追加する(ObjectとDecoratorを同じ時)
  • Composite - 単純オブジェクトとそれを含む複合オブジェクトを同一

5. 状態をクラスで表現して柔軟にする

  • State - 状態の複数の値に基づいてクラス全体の機能が決定されるとき
  • Observer - 1つのオブジェクト(Subject)に依存する複数のオブジェクト(Observer)に変更を通知する必要があるとき

6. 複雑なものを単純に

  • Facade - クライアントが使いやすい1つのインターフェースを提供しよう
  • Mediator - 複数のオブジェクトが互いに通信せず、中央の1つのオブジェクトとのみ通信する

7.構造の中を歩くパターン

  • Iterator - オブジェクトを巡回する方法に対する同じインタフェースを提供しよう
  • Visitor - オブジェクトにアクセスして機能を実行する

8. アクセスを制御する方法

  • Proxy - 実際のオブジェクトのデリゲートを置く

9.互換

  • Adapter - クライアントが目的のインターフェイスに変更する

10. コマンドをオブジェクトとして

  • Command - さまざまなことを一貫したインターフェイスにカプセル化して処理する

11.デザインパターンと一緒にする賢い生活


予想される質問 Q&A 💬

Q. Javaを知らなくても起動できますか?それとも入門者くらいになるべきですか?

Javaを知らなくても、他のOOP言語を知っていれば受講できます。しかし、まったく基礎がない場合には Inflearn に Java 入門無料講義があります。その講義を先に聞いて来心をお勧めします。

Q.他のオブジェクト指向言語(C++, C#)を勉強しました。それでも聞くことができますか?

OOP言語はほとんど同様の概念で設計されています。したがって、あるオブジェクト指向言語をすでに学習しているとすれば、この講義を受講すれば、Javaも学び、オブジェクト指向設計も一緒に学習できる一石二鳥の効果を享受できます。

Q.デザインパターンを学ぶと何がいいですか?

デザインパターンは文法でも規則でもありません。しかし、問題を特定し、その問題に対応する最良の設計方法を提示します。これらのプロセスをコードと共に学習することで、新しいプログラムを設計する際にさまざまなアプリケーションと拡張を実装できます。すでにうまく作られたパターンを学習することで、より良い設計を実現できるのです。

Q.実務に適用できますか?

私たちが実務で使用する多くのフレームワークや開発されたプログラムは、デザインパターンがすでにさまざまな部分に適用されています。したがって、既存のコードを理解するためのデザインパターンの学習は非常に役に立ちます。将来的には、受講生の方がより効率的なコードを書くのにも役立つでしょう。


知識共有者の紹介✒️

東国大学でコンピュータ工学を専攻し、ソウル大学大学院でコンピュータ工学の修士号を取得しました。会社を通う時は、Java、C、C++などの言語で多数の開発プロジェクトを進め、ビットコンピュータ、TアカデミーでJava、Web、資料構造とアルゴリズム、モバイル、デザインパターン分野などの講義を行いました。

国民大と慶熙大で非専攻者を対象としたプログラミング講義を行い、NHN NEXTで兼職教授としてJavaプログラミングとプログラミング練習講義を行いました。 10年は開発者として働いたので、実務で必要な内容をよく知り、もう10年は講義をして初心者の心までよく知ることになりました。

今日の最大の関心事は、小学生から大人まで、各階層の人々が素晴らしいプログラミングの世界に興味を持って勉強するのを助けることです。現在はイノベーションアカデミー(42ソウル)のメンターとしています。

履歴

  • イノベーションアカデミー(42 SEOUL) メンター
  • 「Do It Javaプログラミング入門」著者(イージースパブリッシング)
  • ファーストキャンパス、Inflearnの人気Javaプログラミング講義クリエイター
  • NHN NEXT 兼職教授、ビット教育センター、TAcademy講師
  • スペクトラ開発チーム長
  • 現代情報技術
  • ソウル大学コンピュータ工学部修士
  • 東国大学コンピュータ工学科の学士号

ポートフォリオ/個人映像


こんな方に
おすすめです

学習対象は
誰でしょう?

  • Java を始めた人

  • 他の言語でオブジェクト指向プログラミングを習得し、Java言語も学びたい人

  • Java言語でプロジェクトを行った経験がある方

  • オブジェクト指向プログラミングをデザインパターンで学びたい方

前提知識、
必要でしょうか?

  • Java

  • オブジェクト指向プログラミング言語

こんにちは
です。

1,583

受講生

61

受講レビュー

83

回答

4.8

講座評価

3

講座

지식공유자 소개 ✒️

동국대학교에서 컴퓨터 공학을 전공하고 서울대학교 대학원에서 컴퓨터 공학 석사 학위를 받았습니다. 회사를 다닐 때는 자바, C, C++ 등 언어로 다수의 개발 프로젝트를 진행하였고, 비트 컴퓨터, T 아카데미에서 자바, 웹, 자료구조와 알고리즘, 모바일, 디자인 패턴 분야 등의 강의를 진행하였습니다.

국민대와 경희대에서 비전공자를 대상으로 하는 프로그래밍 강의를 하였으며,  NHN NEXT에서 겸직 교수로 자바 프로그래밍과 프로그래밍 연습 강의를 진행했습니다. 10년은 개발자로 일했기에 실무에서 필요한 내용을 잘 알고, 또 다른 10년은 강의를 하며 초보자의 마음까지 잘 알게 되었습니다.

요즘 최대 관심사는 초등학생부터 어른까지 각계각층의 사람들이 멋진 프로그래밍 세계에 관심을 가지고 공부할 수 있도록 도와주는 것입니다. 현재는 이노베이션 아카데미(42서울)의 멘토로 있답니다.

이력 사항

이노베이션 아카데미(42 SEOUL) 멘토

'Do It 자바 프로그래밍 입문' 저자(이지스퍼블리싱)

패스트캠퍼스, 인프런의 인기 자바 프로그래밍 강의 제작자

NHN NEXT 겸직교수, 비트교육센터, TAcademy 강사

스펙트라 개발 팀장

현대정보기술

서울대학교 컴퓨터공학부 석사

동국대학교 컴퓨터공학과 학사

포트폴리오/개인 영상

Do it 자바프로그래밍 입문 저자

http://www.yes24.com/Product/Goods/62281686

Do it 자바 프로그래밍 입문 강의 (인프런)

자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)

은종쌤과 자바로 디자인 패턴 쉽게 시작하기

은종쌤의 프로그래밍 강의 (유튜브)

https://www.youtube.com/channel/UCTBVYQc1ZVDbAZcm1J_pniA

 

 

カリキュラム

全体

20件 ∙ (6時間 34分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

8件

4.6

8件の受講レビュー

  • j1yeon님의 프로필 이미지
    j1yeon

    受講レビュー 10

    平均評価 4.9

    5

    100% 受講後に作成

    DoIt Java川の先に見てウンジョンサム他の講義を待っていました。時々デザインパターンを勉強しなければなりませんが、ウンジョンサムがデザインパターン講義を?これは運命でした。本物の決済に1秒も迷わず決済しました。説明👍例👍

    • eunjong
      知識共有者

      よろしくお願いいたします。として受け取る住所と受取人の連絡先を送ってくださったら月曜日に発送するようにします。

  • eldeach님의 프로필 이미지
    eldeach

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    デザインパターンに近づきやすくする授業でした。

    • eunjong
      知識共有者

      良い受講評 ありがとうございます 本は受講評を書いてくださった他の方 連絡先が届くように発送していただきますように講義を作った私もやりがいですね~

  • kwindow20898님의 프로필 이미지
    kwindow20898

    受講レビュー 5

    平均評価 3.8

    4

    45% 受講後に作成

    教案はありませんか? 画面に表示される文字が小さすぎます。

    • eunjong
      知識共有者

      Fatory Method 講義 下部の講義ノートに gitlab アドレスに講義資料があります。講義紹介にお知らせしました。ありがとうございます^^

  • brucehanbusiness님의 프로필 이미지
    brucehanbusiness

    受講レビュー 7

    平均評価 4.3

    4

    100% 受講後に作成

    6時間ほどの短い講義時間の中でデザインパターンについてよく理解できました:) ただ残念な部分があれば 1. 音量が小さい 2. 画質がちょっと残念でした。

    • eunjong
      知識共有者

      よろしくお願いいたします。 ありがとうございます。

    • コードが少しぼやけているため、この部分だけが改善されれば良いと思います:)

  • mjdkimss5569님의 프로필 이미지
    mjdkimss5569

    受講レビュー 18

    平均評価 5.0

    5

    30% 受講後に作成

    ¥9,088

    eunjongの他の講座

    知識共有者の他の講座を見てみましょう!

    似ている講座

    同じ分野の他の講座を見てみましょう!