티스토리 뷰
객체지향 프로그래밍(Object-Oriented Programming or OOP)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)의 행위(behave)로 이루어진 객체로 만드는 것이다.
- 객체지향 프로그래밍을 번역하면서 너무 철학적으로 접근하는 것은 피해야한다.
- 객체는 변수와 메소드를 그룹핑한 것이며 이는 다른 곳에서도 활용함으로써 코드의 재활용성을 높여준다.
객체지향 프로그래밍 교육은 크게 두가지로 구분
- 문법
- 설계
부품화
- 초기의 컴퓨터는 단일된 형태의 컴퓨터였다. 이는 키보드가 고장나도 컴퓨터 전체를 바꿔야하고 cpu에 문제가 생겨도 컴퓨터 전체를 바꿔야한다는 것이다. 또한, 고장이나서 제대로 작동하지 않을 경우에 어디서 문제가 발생했는지 한번에 알기 어렵다. 그렇다면 현재의 컴퓨터는 어떨까? 키보드, 본체, 키보드, 마우스로 나눠져 있다. 마치 객체처럼 기능에 따라 부품화시킨 것이다. 여기서 또 어떻게 분리할 것인가(설계)에 대해서 생각해봐야한다. 애플사의 아이맥의 경우는 본체와 모니터가 일체화돼있고 마우스와 키보드가 분리되어 있다. 어떤 것이 옳고 그르다 라고 말할 수 없으며 설계는 설계하는 이의 적합성 판단에 따라 다양한 방식으로 구현될 수 있다.
- 메소드(method)는 부품화의 예라고 할 수 있다. 메소드를 사용하면 코드의 양을 줄일 수 있고, 메소드 별로 기능이 분류되어 있기 때문에 필요한 코드를 찾기도 쉽고 문제의 진단도 빨라진다.
은닉화,캡슐화
- 제대로된 부품이라면 그것이 어떻게 만들어졌는지 모르는 사람도 그 부품을 사용하는 방법만 안다면 사용할 수 있어야한다.
- 내부의 동작 방법을 단단한 케이스(객체를 가르킴) 안으로 숨기고 사용자에게는 그 부품의 사용방법(메소드)만을 노출하고 있는 것이다.
- 이러한 컨셉을 정보의 은닉화(information Hiding), 또는 캡슐화(Encapsulation)이라고 부른다. *캡슐화- 연관된 데이터와 함수를 논리적으로 묶어놓은 것
인터페이스
- 좋은 제품이라면 부품과 부품을 서로 교환할 수 있어야 한다. 장치와 장치를 연결해주는 연결점을 인터페이스(interface)라고 한다.
- 예를 들어, 표준화된 HDMI케이블이 아니면 연결할 수 없는 것처럼 인터페이스는 이질적인 것들이 결합하는 것을 막아주는 역할도 한다. 이렇게 보면 하드웨어와 소프트웨어가 크게 다르지 않다. (하지만 비유는 비유일 뿐 같은 것이라고 생각하면 안된다.)
- 인터페이스는 부품들 간의 약속이다.
'Frontend > JavaScript' 카테고리의 다른 글
[생활코딩] JS문법(객체지향)- 전역객체(Global object) (0) | 2022.01.17 |
---|---|
[생활코딩] JS문법(객체지향)- 생성자와 new (0) | 2022.01.16 |
[생활코딩] JS문법(함수)- 함수의 호출 : apply (0) | 2022.01.14 |
[생활코딩] JS문법(함수)- arguments (0) | 2022.01.14 |
[생활코딩] JS문법(함수)- 클로저 (0) | 2022.01.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 항해99추천비추천
- fs모듈 넥스트
- grid flex
- 원티드 3월 프론트엔드 챌린지
- getStaticPaths
- 형제 요소 선택자
- 항해99프론트후기
- nvm경로 오류
- 항해99프론트
- D 플래그
- 프리온보딩 프론트엔드 챌린지 3월
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- 타입스크립트 장점
- reactAPI
- is()
- 원티드 FE 프리온보딩 챌린지
- 틸드와 캐럿
- 프리렌더링확인법
- text input pattern
- float 레이아웃
- 원티드 프리온보딩 FE 챌린지
- 타입스크립트 DT
- aspect-ratio
- nvm 설치순서
- ~ ^
- 부트캠프항해
- getServerSideProps
- Prittier
- && 셸 명령어
- tilde caret
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함