Notice
Recent Posts
Recent Comments
Link
반응형
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 바이러스
- 근지구력
- K 디지털 크레딧
- 서구맛집
- 막창맛집
- 심박수
- SementicTags
- 유연성
- 청라맛집
- 탄수화물
- 근력
- 심폐지구력
- 송도커낼워크
- 달리기
- 마라탕맛집
- 다이어트
- 아이들이 좋아하는
- 에너지원
- 인천맛집
- 걷기
- 칼국수맛집
- TypeORM
- SementicWeb
- 비전공자개발자이야기
- 코로나19
- 시맨틱태그
- 무궁화분식
- HTML
- 조깅
- 부평파스타맛집
Archives
- Today
- Total
Feel It First
[공부 정리] 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을 쓰는 이유서로 분리되어 각자의 열할에 집중해 개발한다면, 유지 보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복 코딩의 문제점 또한 사라지게 된다.
반응형
'IT' 카테고리의 다른 글
[기록하는 습관] TypeORM & Entity (0) | 2023.03.11 |
---|---|
[Docker] Error: connect ECONNREFUSED 0.0.0.0:3306 (0) | 2023.03.11 |
데이터 타입에 따른 저장 방식 (0) | 2023.03.03 |
2022년 회고(개발자가 되기로 결심) (0) | 2023.02.16 |
기업협업 회고 (0) | 2023.02.16 |
Comments