개체지향 프로그래밍 및 설계 (Java)
'개체지향/객체지향 프로그래밍(OOP)'과 '개체지향 분석 및 설계'를 함께 배우는 과목. OOP 언어 사용법뿐만 아니라 실세계를 모델링하는 능력을 익힐 수 있습니다. (김포프, POCU 포큐 아카데미)
Description
본 비디오 강좌는 POCU 아카데미에서 진행하는 COMP2500 수업의 동영상 강의입니다.
'인간이 생각하는 방식으로 프로그래밍 하자!'라는 야심찬 목표를 가지고 시작한 개체지향 프로그래밍(OOP, Object-Oriented Programming)은 이제 주류 프로그래밍 패러다임이 되었습니다. 허나 기존의 프로그래밍 패러다임(예: 절차적 프로그래밍)에 비해 '인간이 생각하는 방식', 다른 말로 하면 '인간다움'이란 정의는 매우 주관적일 수밖에 없습니다. 각 개인이 속한 환경과 시대에 따라 세상을 보는 눈이 달라지니까요.
이 때문에 특정 OO 언어의 사용법만 익히는 것은 반쪽짜리 OOP 공부입니다. 특정 언어의 사용법은 객관적인 측면일 뿐이니까요. 이 외에 사람의 관점에서 바라본 실세계를 컴퓨터 프로그램의 개체로 모델링할 수 있는 능력(주관적인 측면)을 같이 키워나가야만 제대로 OOP를 배우는 겁니다. 후자는 개체지향 분석 및 설계(OOAD, Object-Oriented Analysis and Design)의 영역으로 본 과목은 OOP와 OOAD(이후 합쳐서 OO라고 표현)를 동시에 가르칩니다.
상술한 주관성 때문에 OO 분야에는 다양한 의견과 주장이 존재해왔습니다. 그리고 어느 시대와 진영의 자료로 공부했느냐에 따라 각 프로그래머가 OO(OOP와 OOAD를 모두 포함)를 이해하는 방식이 많이 다릅니다. 객관성을 추구하는 컴퓨터 과학/공학이라는 학문에 이런 광범위한 주관성은 많은 혼란을 야기합니다. 더 나아가 다른 주장이 나온 이유를 이해하려는 노력 없이 자신이 무비판적으로 수용하며 배운 내용에 기초하여 다른 진영이 무조건 틀렸다고 공격하는 모습들도 OO 분야에서는 종종 발견되는 건설적이지 못한 모습입니다.
이런 문제들을 해결하기 위해 본 과목은 현재 실무에서 다수설로 받아들이는 OO의 정의와 모델링/프로그래밍 기법을 배우는 외에도 이런 다양한 주장들이 나오게 된 배경과 각 주장의 장단점, 그리고 그들 사이에서 어떻게 밸런스를 잡아야 훌륭한 프로그래머가 될 수 있는지에 대한 가이드도 제공합니다.
What You Will Learn!
- 객체지향 프로그래밍
- 올바른 객체지향 설계
- 디자인 패턴
Who Should Attend!
- 올바른 OO 프로그래밍과 설계를 배우고 싶으신 분들
- 컴퓨터 공학의 기본기를 배우고 싶은 분들
- 프로그래머로서 평생 커리어를 꿈꾸는 분들