반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 코로나19
- K 디지털 크레딧
- 심폐지구력
- SementicTags
- 비전공자개발자이야기
- 무궁화분식
- 걷기
- 서구맛집
- 칼국수맛집
- HTML
- 심박수
- 근지구력
- 바이러스
- 다이어트
- 마라탕맛집
- 유연성
- 막창맛집
- 에너지원
- 조깅
- 달리기
- 근력
- 송도커낼워크
- 탄수화물
- 아이들이 좋아하는
- 인천맛집
- 부평파스타맛집
- SementicWeb
- 청라맛집
- 시맨틱태그
- TypeORM
Archives
- Today
- Total
songin.dev님의 블로그
[공부 정리] Class & OOP & Design Pattern 본문
728x90
목적 : 배운 내용 간단히 정리
클래스(class)
클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다.
클래스의 특징
- class 안에 함수와 변수를 넣어줄 수 있는데, 변수를 선언할 때는 let, const 등을 작성하지 않는다.
- class의 변수명 첫 글자는 대문자로 지정한다.
- this를 사용하여 class 내부에 존재하는 다른 함수 또는 변수를 함수 내에서 사용할 수 있다.
- 내장함수 constructor() 생성자를 사용하여 초깃값을 생성해 줄 수 있다.
객체 지향 프로그래밍(Object Oriented Programming)
- 객체 지향 프로그래밍이란 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 '객체'들의 모임으로 파악하고자 하는 것
- 인간 중심적 프로그래밍 패러다임
- 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법
- 코드 재사용이 쉬우며, 유지 보수가 간편하고 직관적인 코드 분석이 가능하다는 장점이 있다.
객체 지향 프로그래밍(OOP)의 4가지 특징
- 추상화(Abstraction)
- 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현
- 사물의 공통적인 특징, 즉 추상된 특징을 파악해 인식의 대상으로 삼는 행위를 말한다.
- 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 수단
- 캡슐화(Encapsulation)
하나의 객체에 대해 그 객체가 특정한 목적을 위해 필요한 변수나 메서드를 하나로 묶는 것을 의미
- 응집도 : 클래스나 모듈 안의 요소가 얼마나 밀접하게 관련 있는지를 나타냄
- 결합도 : 어떤 기능을 실행하는 데 다른 클래스나 모듈에 얼마나 의존하는지 나타냄
- 정보 은닉 : 캡슐화는 정보 은닉을 통해 높은 응집도와 낮은 결합력을 가지게 된다.
- 필요가 없는 정보는 외부에서 접근하지 못하도록 제한하는 것
- private 키워드를 통해 데이터를 보호해 접근을 제한
- 상속성(Inheritance)
기존 상위 클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념
- 기존 클래스의 기능을 가져와 재사용할 수 있으면서도 새로운 기능을 추가할 수 있게 해줌.
- 여러 개체가 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정
- 같은 특징이 있는 클래스를 그대로 물려받아, 다시 작성할 필요 없이 재사용으로 효율성을 높임
- 이를 통해 다형성을 확보
- 다형성(Polymorphism)
상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해준다.
- 상속과 연계되어 동작하면 매우 강력한 힘을 발휘한다.
- 일반화 관계는 코드를 간결하게 하여 재사용과 유지 보수가 용이하도록 도와주고 변화에도 유연하게 대처할 수 있게 해준다.
- 오버라이딩(Overriding)*
- 부모 클래스에서 상속받은 자식 클래스에서 부모 클래스에서 만들어진 메서드를 자신의 입맛대로 다시 재정의해서 사용하는 것
- 오버로딩(Overloading)*
- 같은 이름의 메서드를 사용하지만 메서드마다 다른 용도로 사용되며 그 결과물도 다르게 구현할 수 있게 만드는 개념
- 오버로딩이 가능하려면 메서드끼리 이름은 같지만 매개변수의 개수나 데이터 타입이 다르면 오버로딩이 적용된다.
Design Pattern
디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 과정에서 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 톨해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.
MVC(Model-View-Controller) Pattern
- controllers : 미들웨어 함수를 분리해서 관리해 주는 곳
- models : DB 생성을 관리해 주는 곳
- views : 화면에 보이는 파일들(html 파일)을 관리해 주는 폴더MVC Pattern을 쓰는 이유서로 분리되어 각자의 열할에 집중해 개발한다면, 유지 보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복 코딩의 문제점 또한 사라지게 된다.
반응형
'TIL(Today I Learned)' 카테고리의 다른 글
[기록하는 습관] TypeORM & Entity (0) | 2023.03.11 |
---|---|
데이터 타입에 따른 저장 방식 (0) | 2023.03.03 |
Comments