본문 바로가기
back-end/JAVA

1)객체지향-객체지향 언어

by 모두의 향연 2021. 4. 6.
728x90
반응형

1)객체지향-객체지향 언어

현재 객체지향을 사용하고 있는 언어는 C++>JAVA>Python입니다.
뭐든 가운데 끼어있는 것을 배우는 게 제일 좋습니다.
"뭐 먹을래?" 할 때 "난 아무거나"와 같은 맥락입니다.
그래서 자바를 배워보자구요.

 


80년대 초에 소프트웨어의 위기가 찾아옵니다.

소프트웨어의 위기

빠르게 변화하는 시스템에서 소프트웨어가 못 쫓아가는 상황이 발생하는 겁니다.
변화하는 과정마다 소프트웨어를 바꿔주다 보니 비용, 시간이 많이 드는 겁니다.


80년대 초만 해도 c언어, 포트란(Fortran), 코볼(COBOL)과 같은 언어가 쓰였습니다.
도저히 안 되겠다 싶어 해결책으로 객체지향 언어를 도입합니다.
(하지만 1960년에 최초의 객체지향 언어 Simula가 있긴 있었습니다. 이후 Smalltalk도 있었구요. 하지만 하드웨어 성능 때문에 잘 쓰이진 못했습니다)

처음엔 C를 응용하여 C++를 만들었는데 너무 어려운 겁니다(C++써보신 분들 아실 겁니다..)
그래서 생각보다 확장이 많이 안 됐습니다.
그 이후 C++보다는 배우기 쉬운 JAVA가 나왔고, 이후 많이 쓰이기 시작했습니다.


어떤 점이 좋아서 많이 쓰였을까요?
-코드의 재사용성이 높다(매번 새로운 소프트웨어를 만들 필요가 없겠죠?)
-유지보수가 용이하다(원래 있는 코드에 변경해야 하는 부분만 바꾸면 되니 편하겠죠?)
-중복코드제거
이 세 가지의 공통점은 빠른 변화를 쫓아간다는 점입니다.



`객체지향언어` ...? 이름 자체부터 어려움이 느껴집니다.
NO! 어렵게 생각하지 마세요!!
객체지향 언어=프로그래밍 언어+객체지향개념(규칙) 이라고 생각하면 쉽습니다. 즉 프로그래밍 언어에 객체지향규칙을 추가했다고 생각해주세요. 규칙만 외우면 쉽다는 거죠!


그럼 객체지향언어(Object-Oriented Programming, OOP)의 대표적인 특징은 무엇일까요?
1. 캡슐화
2. 상속
3. 추상화
4. 다형성★★★

 

캡상추다

 

앞글자만 따서 캡.상..!'라고 외우시면 됩니다.
그중 다형성은 정말 중요한 개념입니다.
다형성 개념을 제대로 알지 못하면 뒤에 나오는 추상화나 인터페이스 부분을 알지 못합니다.



앞으로 공부할 때 이것만을 지켜주세요.
객체지향 규칙은 그냥 외워주세요.

저도 처음엔 왜? 왜? 했다가 시간만 잡아먹는 격이 되었습니다.
우리가 `적색 신호등은 건너면 안 돼`에서 왜?'라고 할 수 있나요? 할 수 없습니다. 그냥 규칙인겁니다.
냥 자바를 만든 사람의 규칙인 거예요.
외우라고 하는 부분은 외워주세요.
그리고 그걸 반복+외워주세요. 그렇지 않으면 어느 코드에서 틀렸는지 스스로 확인 못 합니다.

 

자바 공부는 자바개념->웹:jsp,Spring/모바일:안드로이드->디자인 패턴 순으로 공부하시면 됩니다.
또한, 너무 개념에만 집착하지 마시고, 실제로 구현하면서 익히는 게 훨씬 중요합니다.

 

 

<정리퀴즈>

1.객체지향언어의 장점은?

코드의 재사용이 높다,유지보수가 용이하다,중복코드를 제거한다

 

2.객체지향언어의 대표적 특징은?

캡슐화,상속,추상화,다형성

 

*유튜브 남궁성 선생님의 `자바의 정석`을 참고하여 만들었습니다*
*자세히 보고 싶은 분들은 유튜브 가서 보시면 되구요! 저는 개인적으로 공부하는 게 목적입니다*

 

728x90
반응형