자바는 객체 지향 프로그래밍이라고 한다. 객체 지향?

 

객체 지향 프로그래밍(Object Oriented Programming) 이란 말을 들어본 적이 있는가?

 

     최근의 프로그래밍 언어라면 OOP 개념을 탑재하고 나오는게 기본이다. 그래서 최신의 기술이라고 생각할 수 있지만 실제 객체지향 프로그래밍의 역사는 1960년대로 거슬러 올라간다. 그러니까 컴퓨터 역사의 초창기에도 클래스 개념이 있었다.

 

     클래스를 사용하는 프로그래밍은 획기적인 방법이지만, 하드웨어 성능이 뒷받침되지 않으면 효율적이지 않기 때문에 컴퓨터 하드웨어의 발전과 함께 발전해왔다. 한국은 2000년대 초반에 자바와 C++를 중심으로 객체지향 프로그래밍이 보급되기 시작해서, 지금은 정부가 자바 기반의 정보시스템 구축에 활용할 수 있는 개발·운영 표준 환경을 제공하고 있다.

 

전자정부 표준프레임워크에 들어가면 표준 프레임워크 개발에 대한 내용을 볼 수 있다. 표준 프레임워크에 대한 유튜브 강의도 올려놨다.

 

https://www.egovframe.go.kr/

 

eGovFrame Portal 온라인 지원 포탈

묻고 답하기 더보기 자주하는 질문 더보기 공지사항 더보기

www.egovframe.go.kr

자바는 객체지향 프로그래밍 언어이다. 프로그램 안에서 다루는 거의 모든 것들이 객체로 이루어져 있다. 자바로 무엇인가 코드를 작성하고 실행하려면 객체를 사용해야 한다.

 

그러니까 객체지향 프로그래밍이란 개념은 이해하기가 어렵다.

 

     한국에 자바가 들어왔을 때도 마찬가지 였다. 객체지향을 아는 사람도 가르치는 사람도 별로 없었다. 지금이야 정말로 좋은 선생님들이 많아지고 유튜브에 무료 동영상 강의도 많아져서 배움이 더 수월해졌다. 물론 프레임워크도 많아지고 기능이 다양해지다 보니 배워야 할 양도 많아지긴 했다.

 

어쨋든 객체 지향과 클래스는 처음에 들었을 때 이해가 잘 안가고 어려운게 정상이다.

 

     코드를 1번 라인 부터 100번 라인까지 순차적으로 실행시키는 것에서 벗어나 객체라는 개념을 만들고 운영한다는 것은 한차원 높은 발상이다. 사실 객체 지향 프로그래밍을 알게 되면 그제서야 하나의 분리된 학문인, 소프트웨어 공학을 하고 있다는 생각이 든다. 이것은 0과1의 세계를 벗어난 느낌을 준다. 동물 클래스를 만들고 동물 클래스에서 상속한 사람 클래스를 만들고 사람을 상속한 자손 클래스를 만들고 메모리에 실제 이름을 가진 인스턴스를 생성한다.

 

프로그래머가 무엇인가를 창조해 내는 것 이다. 0과1을 재료로 전자적으로 살아있는 무언가를 만들어 내는 것이다. 그것들은 실제 물리 세계와 결합할 수도 있고 아니면 가상의 세계에만 머무를 수도 있다.

 

 

신은 흙을 빚어서 인간을 창조했고,

 

작가는 스토리를 가지고 캐릭터를 창조했고,

 

프로그래머는 0과1을 재료로 인스턴스를 생성했다.

 

 

소프트웨어 공학적으로 객체 지향 프로그래밍에 대하여 설명하는 것은 다행히 유튜브에 충분히 있다. 각자 자신만의 예제를 가지고 설명하기 때문에 좀더 쉽게 다가올 것이다. 한글과 영문 두개의 설명을 다 보는 것을 추천한다.

 

https://www.youtube.com/watch?v=vrhIxBWSJ04

https://www.youtube.com/watch?v=pTB0EiLXUC8

 

http://book.interpark.com/product/BookDisplay.do?_method=detail&sc.shopNo=0000400000&sc.prdNo=249927409&utm_medium=cpc&utm_source=google&utm_campaign=book%5F181201%5Fpaidsearch%2Dforeignlanguage%5Fdomestic%5Fcpc&utm_term=%EC%9E%90%EB%B0%94%EC%9D%98%EC%A0%95%EC%84%9D&_emk_keyword=%EC%9E%90%EB%B0%94%EC%9D%98%EC%A0%95%EC%84%9D&gclid=CjwKCAjwr7X4BRA4EiwAUXjbt_WOhaGN1J_7HwsRrO1AWyppAgSsePh3nDk6uWj60Bdt-BMHD_cZvhoC5OMQAvD_BwE

 

싸니까 믿으니까 인터파크도서

Chapter 1 자바를 시작하기 전에 1. 자바(Java Programming Language) 1.1 자바란? 1.2 자바의 역사 1.3 자바언어의 특징 1.4 JVM(Java Virtual Machine) 2. 자바개발환경 구축하기 2.1 자바 개발도구(JDK)설치하기 2.2 Java A

book.interpark.com

그리고 자바의 정석이란 책을 추천한다. 자바 학습자들에게 수학의 정석같은 책인데 객체 지향 프로그래밍에 대해서 무려 100페이지가 넘게 상세히 기술되어 있다.

 

자바에서 객체 지향은 테크닉이지만, 컴퓨터공학 분야에서는 이론이기 때문에 최소 대학의 한학기 강의로 들어간다.

 

고등교육 교수학습자료 공동활용 체제 KOCW(Korea OpenCourseWare) 에서 검색창에 '객체 지향' 으로 검색해보면 국내 유수 대학의 컴퓨터공학과 교수들의 동영상 강의가 올려져 있다. 좀더 이론적으로 심화학습을 하고 싶은 분들께 추천드린다. 보통 C언어나 자바의 기초와 객체지향프로그래밍을 같이 묶어서 강의하니까 OOP는 앞부분은 건너뛰고 클래스 단원 부터 봐도 된다.

 

http://www.kocw.net/home/index.do

 

http://www.kocw.net/home/index.do

 

www.kocw.net

https://www.inflearn.com/courses?s=%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5

 

객체 지향 검색순 온라인 강의 - 인프런

객체 지향 검색순 온라인 강의

www.inflearn.com

인프런에서는 더 많은 유료 강의들이 있다.

 

https://www.udemy.com/

 

온라인 강좌 - 자신의 일정에 맞춰 뭐든지 배워 보세요 | Udemy

Udemy는 100,000개 이상의 강좌와 24백만 명 이상의 수강생이 있는 온라인 학습 및 교수 마켓플레이스입니다. 프로그래밍, 마케팅, 데이터 과학 및 그 밖의 분야에 대해 배워 보세요.

www.udemy.com

 

내친김에 유데미도 추천한다. 유료지만 전세계 사람들이 사용하는 인강 플랫폼이다. 최근엔 한국어 강의도 많아졌다.

 

자칫 잘못하면 객체 지향 프로그래밍에 빠져 허우적 댈 수 있다. 이론이 중요하지만 코드의 기능들을 완성하다 보면 경험이 축적되어 자연스럽게 실력이 느는 것이다.

 

한권의 입문서나 온라인 강의에서 답을 찾기는 어렵다. 그만큼 방대하고 논란이 있는 OOP 다. 다양한 내용을 찾아 보고 스스로 생각해 볼 것을 추천한다.

 

이 글을 읽는 분들이 다 성공적으로 OOP를 마스터 하시도록 행운을 빈다.

공유하기

facebook twitter kakaoTalk kakaostory naver band