디자인 패턴을 학습하여 유연하고 확장성 있는 객체지향 프로그래밍을 구현할 수 있습니다. 실제 현업에서 사용할 수 있는 여러 패턴들을 학습하여 프로젝트와 코드 리팩토링에 적용해보세요
이런 걸
배워요!
디자인 패턴
객체지향프로그래밍
리펙토링
자바
카카오 사내 개발자 교육 강의!
엄선된 디자인 패턴만 골라 배워요 🤓
현재 여러 시스템이 객체지향 프로그래밍 언어로 개발되고 있는 이유가 뭘까요? 시스템이나 솔루션 개발 후 기능의 확장, 요구사항 변경, 유지보수를 좀 더 효율적으로 하기 위함입니다. 이러한 변경들이 쉬우려면 그 설계 단계부터 제대로 된 객체 지향 설계가 이루어져야 합니다. 디자인 패턴을 학습하면 설계에 대한 여러 솔루션을 이해하고 적용할 수 있어요.
반복적으로 발생하는 문제에 동일한 솔루션이 적용될 수 있다면, 이런 설계를 패턴이라고 합니다. 디자인 패턴은 처음 4명의 학자 GoF가 여러 기존의 시스템과 소프트웨어를 분석하여 각 문제에 대한 가장 합리적인 솔루션의 방향을 정리해 놓은 분야입니다. 따라서 디자인 패턴은 어떤 규칙이나 문법은 아닙니다. 또한 언어에 국한되지 않고 객체지향 언어라고 하면 다 적용될 수 있습니다.
개발자들은 유연하고 유지보수하기 좋은 프로그램을 개발하기 위해 프레임워크도 가져다 쓰고 좋은 방법론을 사용합니다. 디자인 패턴은 여러 프레임워크에도 이미 적용되어 있습니다. 패턴 자체에 대한 학습도 의미가 있지만, 문제 해결에 효율적인 솔루션을 설계했다면 자신만의 패턴도 만들 수 있습니다.
이번 강의는 카카오 사내 개발자 교육 영상으로 활용되는 강의입니다. 자바 문법을 알고 있지만, 클래스를 활용한 객체 지향 설계가 어려운 분들이 디자인 패턴을 통해 학습하는 데 도움을 드리고자 제작되었습니다. GoF에서 소개한 23가지 패턴이 있는데, 이번 강의에선 실제 현업에서 많이 쓰고 실무에 유용한 패턴 16개만 추려서 소개해 드립니다. 다른 프레임워크나 라이브러리에서도 많이 적용되었고 많이 사용하고 있는 패턴들만 압축적으로 공부하세요! 이걸 공부하면 나중에 프레임워크를 이해하는 데에도 도움이 될 거예요.
객체 지향 프로그래밍을 어떻게 할지 모르겠는 분
개발자 취업준비생이나 신입 혹은 주니어 개발자
자바를 이용한 OOP 개발을 경험해보고 싶은 분
프레임워크 공부 전에 디자인 원리를 이해하고 싶은 분
- Strategy 패턴의 학습 예
1. 문제가 무엇인가?
2. 클래스 다이어그램을 통한 패턴 이해하기
3. 현실적인 예제를 통한 패턴 적용 및 리팩토링
📢 수강 전 확인해주세요!
*지식공유자가 같은 과정으로 진행한 외부 멘토링에 대한 피드백입니다.
"싱글톤 패턴부터 어댑터 패턴까지 주로 사용하는, 실효성 있는 패턴들을 잘 배울 수 있었다. 각 패턴의 특징과 객체 간 협력관계를 이해함으로써 이후 학습할 스프링 프레임워크를 더 잘 이해하게 되었다."
이노베이션 아카데미 - 강*수
"스터디를 진행하기 전에는 책 설명을 보고 UML을 봐도 패턴을 이해하기 어려웠습니다. 스터디를 진행하면서 2~3주 차쯤에는, 디자인패턴이 결국 추상화와 인터페이스를 잘 사용하라는 방법론이 아닌가 하는 생각이 주를 이루었습니다. 하지만 스터디를 진행할수록 왜 이러한 패턴이 나올 수밖에 없었는지를 이해하면서 스터디를 진행하게 되었습니다. 스터디 이후에 각 패턴을 학습하는데 너무 잘 이해가 돼서 스스로 놀라웠습니다"
이노베이션 아카데미 - 이*
"자바를 처음으로 학습한 후에 스터디를 신청하였습니다. 스터디는 매주 브릿지 패턴, 팩토리 메서드 패턴, 옵저버 패턴 등 여러 가지 디자인 패턴들을 활용하여 코드를 리팩토링하며 과제를 해결하는 방식으로 진행되었습니다. 디자인 패턴을 혼자 공부하며 어려웠던 부분을 과제와 스터디를 하면서 재밌게 이해할 수 있었습니다."
이노베이션 아카데미 - 김*연
"이번 디자인패턴 스터디는 지난번 자바 스터디보다 더 재밌게 공부할 수 있었습니다! 특히 팩토리 패턴이나, 전략 패턴, 옵저버 패턴이 기억이 많이 남는 것 같습니다. 디자인패턴을 통한 유지보수 편의성의 막강한 힘을 조금이나마 체험할 수 있었던 것 같습니다. 현재 스프링을 활용한 프로젝트를 진행하고 있는데 이 스터디를 통해 배운 것들을 녹여서 조금이라도 더 좋은 코드를 작성할 수 있었으면 좋겠습니다."
이노베이션 아카데미 - 조*진
1. 디자인 패턴이 무엇인가요? 리팩토링은?
2. 객체를 생성하는 패턴들
3. 알고리즘 뼈대나 기능과 구현을 분리하여 좀더 유연하게 만들기
4. 동일시하기
5. 상태를 클래스로 표현하여 유연하게 만들기
6. 복잡한 것을 단순하게
7. 구조안을 돌아다니는 패턴들
8. 접근 제어하는 방법
9. 호환
10. 명령을 객체로
Q. 자바를 몰라도 시작할 수 있나요? 아니면 입문자 정도는 되어야 하나요?
자바를 몰라도 다른 OOP 언어를 알면 수강할 수 있습니다. 하지만, 전혀 기초가 없는 경우에는 인프런에 자바 입문 무료 강의가 있습니다. 그 강의를 먼저 듣고 오심을 추천합니다.
Q. 다른 객체지향 언어(C++, C#)를 공부했습니다. 그래도 들을 수 있나요?
OOP 언어들은 대부분 비슷한 개념으로 설계되어 있습니다. 따라서 어떤 객체지향 언어를 이미 학습했다고 하면 이 강의를 수강하게 되면 자바도 배우고 객체지향 설계도 같이 학습할 수 있는 일석이조의 효과를 누릴 수 있습니다.
Q. 디자인 패턴을 배우면 뭐가 좋은가요?
디자인 패턴은 문법도 규칙도 아닙니다. 하지만 문제를 파악하고 그 문제에 해당하는 가장 좋은 설계 방법을 제시해줍니다. 이러한 과정을 코드와 함께 학습함으로써 어떤 새로운 프로그램을 설계할 때 다양한 응용과 확장을 구현할 수 있습니다. 이미 잘 만들어진 패턴을 학습함으로써 더 좋은 설계를 구현할 수 있는 것입니다.
Q. 실무에 적용할 수 있나요?
우리가 실무에서 사용하는 많은 프레임워크나 개발된 프로그램은 디자인 패턴이 이미 여러 부분에 적용되어 있습니다. 따라서 기존의 코드를 이해하는데 디자인 패턴의 학습은 아주 많은 도움이 될 것입니다. 또한 앞으로 수강생분이 더 효율적인 코드를 작성하는데도 여러모로 도움이 될 것입니다.
동국대학교에서 컴퓨터 공학을 전공하고 서울대학교 대학원에서 컴퓨터 공학 석사 학위를 받았습니다. 회사를 다닐 때는 자바, C, C++ 등 언어로 다수의 개발 프로젝트를 진행하였고, 비트 컴퓨터, T 아카데미에서 자바, 웹, 자료구조와 알고리즘, 모바일, 디자인 패턴 분야 등의 강의를 진행하였습니다.
국민대와 경희대에서 비전공자를 대상으로 하는 프로그래밍 강의를 하였으며, NHN NEXT에서 겸직 교수로 자바 프로그래밍과 프로그래밍 연습 강의를 진행했습니다. 10년은 개발자로 일했기에 실무에서 필요한 내용을 잘 알고, 또 다른 10년은 강의를 하며 초보자의 마음까지 잘 알게 되었습니다.
요즘 최대 관심사는 초등학생부터 어른까지 각계각층의 사람들이 멋진 프로그래밍 세계에 관심을 가지고 공부할 수 있도록 도와주는 것입니다. 현재는 이노베이션 아카데미(42서울)의 멘토로 있답니다.
학습 대상은
누구일까요?
자바를 입문한 사람
다른 언어로 객체지향 프로그래밍을 익히고 자바 언어도 배우고 싶은 사람
자바언어로 프로젝트를 해 본 경험이 있는 분
디자인 패턴으로 객체지향 프로그래밍을 학습하고자 하는 분
선수 지식,
필요할까요?
자바
객체지향 프로그래밍 언어
동국대학교에서 컴퓨터 공학을 전공하고 서울대학교 대학원에서 컴퓨터 공학 석사 학위를 받았습니다. 회사를 다닐 때는 자바, 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