개체지향 프로그래밍 및 설계 (Java)

이 과목은 '개체지향 프로그래밍(OOP)'과 '개체지향 분석 및 설계(OOAD)'를 한꺼번에 가르치는 과목으로 OO 언어의 사용법을 배우는데 그치지 않고 실세계를 컴퓨터 프로그램의 개체로 모델링할 수 있는 능력까지 훈련시켜 줍니다. 그 외에 OO 분야의 다양한 주장들이 나오게 된 배경과 각 주장의 장단점, 그리고 그들 사이에서 어떻게 밸런스를 잡아야 훌륭한 프로그래머가 될 수 있는지에 대한 가이드도 제공합니다



수강생 'Lee'

처음에는 확신이 없었지만, 강의를 듣다 보며 이 사람은 옳은 것을 알리고 탐구하려 노력하는 사람이란 걸 많이 느끼게 되었다. ... 100% 믿고 확실하게 흡수하려 노력했다. 내 생각에, 현재 한국에서 프로그래밍 교육을 하는 사람 중에서는 최고 수준이라고 생각한다.

수강생 'Seungwoohyun'

강사님의 강의력이 굉장히 뛰어나시고, 강의 자료나 구성이 잘 되어 있어, 제대로 개체지향에 대해 개념을 잡고 넘어갈 수 있을것 같습니다.

POCU @ teachable은 신용카드체크카드 결제를 지원합니다.

지원하는 카드: Visa, Mastercard, American Express

지원하지 않는 카드: 라쿠텐(楽天カード), UnionPay(中国银联)

배울 내용

  • OO의 객관적인 정의
  • OOP 모델링/프로그래밍 기법
  • 개체지향 분석 및 설계


요구 사항

  • '소프트웨어 공학용 수학' 수료
  • '실무 프로그래밍 입문 (C#)' 수료


설명

본 비디오 강좌는 POCU아카데미에서 진행하는 COMP2500 수업의 비디오 강좌입니다.


'인간이 생각하는 방식으로 프로그래밍 하자!'라는 야심찬 목표를 가지고 시작한 개체지향 프로그래밍(OOP, Object-Oriented Programming)은 이제 주류 프로그래밍 패러다임이 되었습니다. 허나 기존의 프로그래밍 패러다임(예: 절차적 프로그래밍)에 비해 '인간이 생각하는 방식', 다른 말로 하면 '인간다움'이란 정의는 매우 주관적일 수밖에 없습니다. 각 개인이 속한 환경과 시대에 따라 세상을 보는 눈이 달라지니까요.

이 때문에 특정 OO 언어의 사용법만 익히는 것은 반쪽짜리 OOP 공부입니다. 특정 언어의 사용법은 객관적인 측면일 뿐이니까요. 이 외에 사람의 관점에서 바라본 실세계를 컴퓨터 프로그램의 개체로 모델링할 수 있는 능력(주관적인 측면)을 같이 키워나가야만 제대로 OOP를 배우는 겁니다. 후자는 개체지향 분석 및 설계(OOAD, Object-Oriented Analysis and Design)의 영역으로 본 과목은 OOP와 OOAD(이후 합쳐서 OO라고 표현)를 동시에 가르칩니다.

상술한 주관성 때문에 OO 분야에는 다양한 의견과 주장이 존재해왔습니다. 그리고 어느 시대와 진영의 자료로 공부했느냐에 따라 각 프로그래머가 OO(OOP와 OOAD를 모두 포함)를 이해하는 방식이 많이 다릅니다. 객관성을 추구하는 컴퓨터 과학/공학이라는 학문에 이런 광범위한 주관성은 많은 혼란을 야기합니다. 더 나아가 다른 주장이 나온 이유를 이해하려는 노력 없이 자신이 무비판적으로 수용하며 배운 내용에 기초하여 다른 진영이 무조건 틀렸다고 공격하는 모습들도 OO 분야에서는 종종 발견되는 건설적이지 못한 모습입니다.

이런 문제들을 해결하기 위해 본 과목은 현재 실무에서 다수설로 받아들이는 OO의 정의와 모델링/프로그래밍 기법을 배우는 외에도 이런 다양한 주장들이 나오게 된 배경과 각 주장의 장단점, 그리고 그들 사이에서 어떻게 밸런스를 잡아야 훌륭한 프로그래머가 될 수 있는지에 대한 가이드도 제공합니다.

이 강좌의 대상

  • 컴퓨터 공학의 기본기를 배우고 싶은 분들
  • 프로그래머로서 평생 커리어를 꿈꾸는 분들


강좌 콘텐츠

  과목 소개
Available in
일 after you enroll
  수업에 도움되는 자료
Available in
일 after you enroll
  Java 언어의 기본 문법
Available in
일 after you enroll
  개체지향 프로그래밍의 필요성
Available in
일 after you enroll
  클래스
Available in
일 after you enroll
  개체 모델링 1
Available in
일 after you enroll
  static, 싱글턴, 내포 클래스
Available in
일 after you enroll
  상속
Available in
일 after you enroll
  상속을 이용한 개체 모델링
Available in
일 after you enroll
  상속 vs 컴포지션
Available in
일 after you enroll
  다형성
Available in
일 after you enroll
  추상 메서드/클래스
Available in
일 after you enroll
  인터페이스
Available in
일 after you enroll
  인터페이스 vs 구현
Available in
일 after you enroll
  디자인 패턴
Available in
일 after you enroll
  예외
Available in
일 after you enroll
  SOLID 설계 정신
Available in
일 after you enroll
  소수설에서 태어난 다양한 주장들
Available in
일 after you enroll
  강의를 마무리 하며
Available in
일 after you enroll