안녕하세요.
IT를 쉽게 알려주는
강쌤입니다.
오늘 이야기의 주제는 바로
객체지향프로그래밍(OOP)입니다.
프로그래밍을 공부해 봤거나
IT분야에 관심이 있으시다면
한번쯤은 들어보셨을 말인데요.
절자치향프로그래밍과
객체지향프로그래밍의 차이는 무엇일까요??
간혹 객체지향프로그래밍이 무슨말인지
이해가 안된다거나
절차지향과 객체지향의 차이점 등을
많이들 물어보시곤 하는데요.
그래서 오늘은 객체지향프로그래밍(OOP)를
주제로 이야기를 하면서 절차지향프로그래밍도
조금 설명을 드리려고 합니다.
그럼 끝까지 읽어주세요!!
우선 객체지향프로그래밍(OOP)가 무엇인지
정의를 먼저 해야하는데요.
객체지향프로그래밍(OOP)는
프로그램을 단순히 데이터와 처리 방법으로
나누는 것이 아니라, 프로그램을 수많은
'객체'라는 기본 단위로 나누고 이 객체들의
상호작용으로 서술하는 방식이다. 객체란 하나의
역할을 수행하는 '메소드와 변수(데이터)'의
묶음입니다.
쉽게 설명을 드리자면 객체로 각각의 기능을 나누어
필요할때 객체를 생성하여 사용한다라고
생각해주시면 쉬울것 같습니다.
그럼 절차지향프로그래밍은
물 흐르듯 수차적인 처리를 중요시 하며
프로그램 전체가 유기적으로 연결되도록
만드는 프로그래밍 입니다.
절차지향은 위키에 너무 어렵게 설명이
되어있어 생략했습니다...
정의를 하면서 차이점을 느끼셨나요???
순차적인 실행이 중점인지와
객체를 중심으로 프로그래밍이 이루어지냐의
차이라고 생각하시면 쉽게 차이점을 느낄수 있을겁니다.
그럼 객체지향의 장점은 뭘까요?
우리가 객체지향프로그래밍(OOP)을 공부해야
하는 이유는 무엇일까요??
장점이 있어야 배우겠죠??
객체지향프로그래밍(OOP)의 장점을 말
씀드리겠습니다.
첫 번째는 캡슐화입니다.
캠슐화란 2가지 측면이 있는데요.
객체의 속성(data fields)과 행위(메서드, methods)를
하나로 묶고 실제 구현 내용 일부를 외부에
감추어 은닉할수 있습니다.
쉽게 설명을 하면 외부에서 접근을 하지못하게
숨길수 있고 객체의 기능을 하나로 묶을수 있다는
말입니다.
두 번째는 다형성입니다.
상속되는 기능을 재정의하거나 하나의 인터페이스에
다양한 매소드를 정의하여 확장성, 유연성을
제공하는 객체지향 특징이라고 설명이 되있는데요.
쉽게 말하면 같은 이름의 메서드나 변수를 사용하거나
재정의할수 있다는 겁니다.
IT분야에서는 오버라이딩, 오버로딩
이라고 표현합니다.
세 번째는 상속입니다.
상속(inheritance)은 객체들 간의 관계를
구축하는 방법이다. 클래스로 객체가
정의되는 고전 상속에서, 클래스는 기반 클래스,
수퍼클래스, 또는 부모 클래스 등의
기존의 클래스로부터 속성과 동작을 상속받을 수 있다.
또 상속은 2개이상으로 다중상속도 가능합니다.
쉽게 설명을 하면 나보다 더 높은 클래스에서
속성과 메서드, 기능을 물려받을수 있고
같은 레벨의 클래스에서도 동일하기
속성과 메서드, 기능을 물려받아
사용할수 있다는 말입니다.
그럼 객체지향프로그래밍(OOP)에는
어떤 프로그래밍 언어가 있을까요??
대표적으로 몇개만 소개를 해드리겠습니다.
C++, C#, pythone
ASP, Objective-C , JAVA
등이 있습니다.
절차지향에는 어떤 언어들이 있을까요?
정말 고뇌하면 생각을 해봤는데
C언어 밖에 생각이 나질않네요....
언어를 소개해 드렸으니 어떤 분야에서
사용하시는지 알아보아야겠지요?
제가 소개드린 언어로 설명을 드리자면
게임개발, 웹개발, 앱개발등이 있습니다.
어떤 직업군으로 가시더라도
파이썬과 C언어는 기초지식으로
공부를 하시는것을 추천드립니다.
그러면 객체지향과 절차지향을 모두
공부하시는게 되겠죠??
두 분야 모두 중요하고 장점이 있으니
무작정 자신의 분야에 맞는 언어로
공부를 시작하지 마시고
기초지식부터 먼저 쌓는다는 생각으로
파이썬, C언어로 공부를 해보세요!!
오늘은 객체지향프로그래밍(OOP)에 대해서
이야기를 해보았는데요.
블로그에 하나하나 자세히 적기에는
양도 많아지고 지루해질것 같아
최대한 간추려서 적어보았습니다.
객체지향프로그래밍(OOP) 또는
절차지향프로그래밍을 하더라도
각 프로그래밍의 기법에 준수하여
공부를 하시길 추천드립니다.
실무에서도 실제로 준수해서 사용하니깐요!!
설명이 부족하여 궁금한 부분이나
IT를 진로로 잡고계신분들은
공부커리큘럼과 진로/진학/취업/
고민/자격증/포트폴리오/
1:1 무료상담 진행중이니 부담없이 말씀해주세요!
끝까지 읽어주셔서 감사합니다..
'프로그래밍 정보' 카테고리의 다른 글
코딩배우기, 어떻게 시작해야 할까? (0) | 2020.12.10 |
---|---|
파이썬강의, 집에서 기초부터 크롤링까지 마스터하자! (0) | 2020.12.10 |
소프트웨어 개발자 : 프로그램 개발을 주도하는 인재 (0) | 2020.11.26 |
자료구조, 꼭 공부해야 하는 이유 (0) | 2020.11.26 |
코딩 공부, 청년구직활동지원금을 이용해서 시작해보자 (0) | 2020.11.25 |