-
[TIL] 항해 99 5주차 주특기 심화 회고록_20일차항해[TIL] 2021. 12. 4. 11:41
Today I Learnd
(2021. 12. 1. 수)
목차
- 객체 지향 언어
- 주특기 심화 3일차 소감 및 부족한 점
1. 객체 지향 언어
객체 지향 언어란
- 컴퓨터 프로그래밍의 패러다임 중 하나다.
- 컴퓨터 프로그램의 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 '객체'들의 모임으로 파악하고자 하는 것이다.
- 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다.
- 위와 같은 객체 프로그래밍에서 사용하는 언어를 객체 지향 언어라고 한다.
객체 지향 언어의 특징
- 캡슐화
- 변수와 함수를 하나의 단위로 묶는 것을 의미
- 해당 class의 인스턴스를 생성을 통해 class안에 포함된 member 변수와 method에 쉽게 접근할 수 있다.
- 이러한 캡슐화를 통해서 정보를 은닉할 수 있다.
- 데이터와 코드의 형태로 외부로부터 알 수 없게 한다.
- 모듈 간의 결합도를 떨어뜨려 유연함과 유지보수성을 높인다.
- 상속
- 부모 class의 모든걸 자식 class가 모두 이어 받는 개념을 가지고 있다.
- 상속을 통해서 캡슐화를 유지하면서 class의 재사용을 가능하도록 한다.
- 다형성
- 상속과 연관된 말로, 한 객체가 다른 여러 상태와 행위로 재구성이 될 수 있다.
- 즉, Overloading과 Overriding이 하나의 예다.
* Overloading : 같은 이름의 method 여러 개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기.
* Overriding : 부모 class가 가지고 있는 method를 자식 class가 재정의해서 사용하는 기술.
객체 지향 언어의 장점
- 재사용성
- 상속을 통해서 프로그래밍 시 코드의 재사용성을 높일 수 있다.
- 생산성 향상
- 잘 설계된 class를 만들어서 독립적인 객체를 사용함으로써 개발의 생산성을 향상시킨다.
- 다른 것은 나중에 수정사항이 생겼을 때 일일히 찾아서 바꿔줘야 하지만, class는 한 곳에서만 바꾸면 된다.
- 자연적인 모델링
- 실제 사물들을 하나의 객체를 생각하면서 프로그래밍이 이루어지기 때문에 class를 구현할 때 일상생활의 모습과 대비시키며 자연스럽게 구현을 할 수 있다.
- 유지보수의 우수성
- 캡슐화로 인해 모듈끼리의 의존성이 낮아진다.
- 그렇기에 프로그램 추가 및 수정과 같은 유지보수에 용이하다.
객체 지향 언어의 단점
- 개발 속도가 느리다.
- 상속과 같은 개념에서 유지보수에 용이하지만, 다중 상속 시 복잡해진다.
- 설계 단계에서 class끼리의 관계를 정확하게 이해할 필요가 있기 때문에 개발 속도가 늦어질 수 있다.
- 실행 속도가 느리다.
- 거의 대부분의 객체 지향 언어에서 기능을 묶으면 함수 호출이 추가로 들어가거나 계산식 중간에 포인터 연산 등이 필요해진다.
- member 함수 같은 경우 어느 객체의 함수인지 지정을 해줘야하기 때문에 추가 포인터 크기와 연산 비용이 들어간다.
- 그러한 이유로 절차적 프로그래밍보다 무겁다.
- 코딩난이도가 상승한다.
- 다중 상속은 개발자들에게 고민거리다. 상속을 통해서 중복을 없앨 수 있지만, 그만큼 부모 class와 자식 class간의 관계를 인지하고 있어야 한다.
2. 주특기 심화 3일차 소감 및 부족한 점
소감
테스트 코드와 관련해서 개인 프로젝트를 해야하는데 class와 객체에 대해서 개념을 거의 모르기 때문에 개인 프로젝트보다는 기초를 공부 중이다. 여태 해오면서 이게 뭐고 저게 뭐구나 하는게 없이 달려온 것 같아서 class와 객체를 공부하는김에 Javascript 기초 자체를 공부중이다.
물론 아는 게 더 많긴 했지만 이게 이럴때 쓰이고 저런거구나 하면서 다시 알아가고 잘못 알고 있던 것들에 대해서 다시 한번 알아가는 시간을 가지고 있다. 물론 과제도 중요하지만 과제를 하기 위해서 또는 이제 앞으로 있을 3개의 프로젝트를 위해서 기초를 알아야 과제를 할 수 있을 것 같다는 생각이 들었다.
부족한 점
5주차에 들어올 동안 내가 모르는 기초 지식들이 너무 많았다. 과제 제출하고 과제만 하느라 급했던 나는 중요한 것을 놓치고 지금까지 시간을 보낸 것 같다라는 생각에 이번주에 많이 반성?을 하고 있다.
난 뭐했을까라는 생각을 했지만, 다른 분들이 내게 찾아와 뭐하고 있냐고 안부인사를 물을 때 기초부터 닦고 있다고 말씀을 드리니까 내가 하는 기초를 닦는 과정에서 뭔가 자극?같은 것을 받아서 기초를 닦는 분도 계셨다.
나만 그런게 아니구나라는 생각이 들어서 한 편으로 안심은 됐지만 여태껏 우리가 달려온 시간들 중에서 기초도 모르고 달려온 것 같은 느낌이 많이 들었다.
이번 주에는 기초를 공부하는 것이 목표라지만 끊임없이 공부해서 수료하고 취업을 할 때 까지 열심히 할 거다.
'항해[TIL]' 카테고리의 다른 글
[TIL] 항해 99 5주차 주특기 심화 회고록_24일차 (0) 2021.12.11 [TIL] 항해 99 5주차 주특기 심화 회고록_21일차 (0) 2021.12.04 [TIL] 항해 99 5주차 주특기 심화 회고록_19일차 (0) 2021.11.30 [TIL]항해99 5주차 주특기 심화 회고록_18일차 (0) 2021.11.30 [TIL] 항해 99 4주차 주특기 숙련 회고록_15일차 (0) 2021.11.29