개요
현재 다니는 회사는 프론트엔드 프레임워크로 Angularjs를 이용중이다.
Angularjs 는 클래스 기반의 구조로 컴포넌트들을 제작하고, 클래스 기반 구조의 가장 큰 장점인 객체 지향 프로그래밍 방법에 대해서 얕지만, 경험을 바탕으로 작성하고자 한다.
객체지향이란?
- 객체 지향 프로그래밍(OOP)는 프로그래밍에서 필요한 데이터를 추상화 시켜 상태 와 행위를 가진 객체로 만들고, 객채들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법
왜 객체지향 프로그래밍을 이용할까?
- 당연히, 이미 회사에서 채택한 프레임워크이고 이게 단순히 객체 지향 프로그래밍처리를 선호하니 회사 규칙에 따라서 쓴다고 생각.
하지만, 왜 회사에서 채택했는지 생각했을 때, 내가 객체 지향 프로그래밍 기법을 이용하며 느낀 가장 큰 장점은 모듈화 와 코드 재사용성 이다. 이게 매번 함수를 제작하지 않아도 되고, 유지보수를 용이하게 만들어준다. (하지만, 이미 있는 객체나 함수여도 회사 내부 코드를 잘 알지 못하면 새로 만드는 경우가 많음ㅋㅋ)
** 객체지향 프로그래밍 특징 (얕은 지식, 경험 바탕)
1. 추상화
- interface를 이용하여, 명령어를 줄이고, 클래스보다 큰 틀을 제작할 수 있음.
- 해당 interface를 이용 할 class는 이 interface를 implements 하여 필수적으로 interface 내부에 있는 메서드를 구현해야 한다.
2. 캡슐화
- 클래스의 존재를 가장 직관적으로 보여주는 특징 (데이터와 기능이 클래스로 캡슐화 되어있기 때문!)
- 캡슐화 된 컴퓨터 자원의 묶음을 객체(object)라고 함
3. 상속
- extends 되는 걸 의미.
- 부모 클래스에서 생성한 변수와 메서드를 그대로 물려받아 사용 할 수 있음
- super() 함수와 클래스 옆에 붙는 extends 를 생각하면 편함
class LoginComponent extends AuthComponent {
constructor() {
super();
}
}
4. 다형성
- 부모에서 자식으로 상속받은 메서드를 자식은 그대로 사용하지 않고, 입맛에 맞춰 이용할 수 있다.
5. 은닉성
- private와 public 존재를 의미한다.
- 바깥(외부 컴포넌트)에서 호출할 때 발생하는 오류를 방지할 수 있음
'CS' 카테고리의 다른 글
로컬환경에서 더 많은 메모리를 할당할 수 있는 이유 (0) | 2024.04.22 |
---|---|
POST 요청을 보낼 때 Authorization을 헤더에 넣는 이유 (0) | 2024.02.13 |
멀티스레드? 멀티 프로세스? (0) | 2022.12.09 |
CSR VS SSR (장단점, 개념, 나만의 로직정리) (0) | 2022.12.06 |
CORS (0) | 2022.10.11 |
댓글