코드캠프 11일차] Class / OOP / MVC 패턴

haengbeok·2022년 9월 15일
0

코드캠프

목록 보기
3/4

Class?

객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀
객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성되어있다

물건을 만드는 설명서 , 붕어빵 틀 이라고 생각하면 된다
같은 종류의 객체를 여러 개 생성해야 하는 경우에 class를 사용한다

class Monster {
  power = 10;

  constructor(aaa) {
    this.power = aaa;
  }

  attack = () => {
    console.log("공격하자!!");
    console.log("내 공격력은 " + this.power + "야!!!");
  };
}

class 공중몬스터 extends Monster {
  constructor() {
    super(20);
  }

  run = () => {
    console.log("날아서 도망가자");
  };
}

class 지상몬스터 extends Monster {
  constructor() {
    super(50);
  }

  run = () => {
    console.log("뛰어서 도망가자");
  };
}

const mymonster1 = new 공중몬스터();
mymonster1.attack();	// 공격하자!! / 내 공격력은 20야!!!
mymonster1.run();		// 날아서 도망가자

const mymonster2 = new 지상몬스터();
mymonster2.attack();	// 공격하자!! / 내 공격력은 50야!!!
mymonster2.run();		// 날아서 도망가자

extends 로 부모의 속성을 상속 받으며 다른 속성은 따로 빼줄 수 있다
constructor 부분에 있는 super()는 부모의 함수를 호출할 때 사용된다

OOP?

객체지향프로그래밍(OOP, Object Oriented Programming) 의 약자로
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 '객체'들의 상호작용으로 프로그램 로직을 구성하는 컴퓨터 프로그래밍 패러다임이다

프로그래밍 패러다임(Programming Paradigm)

프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다.

OOP의 4가지 특징

1. 추상화(Abstraction)

구체적인 사물들의 공통적인 특징을 파악해서 하나의 개념(집합)으로 다루는 수단
ex) 사과, 딸기, 바나나 --> 과일

2. 캡슐화(Encapsulation)

하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것을 의미
정보 은닉

  • 필요없는 정보는 외부에서 접근하지 못하도록 제한
  • private 키워드를 통해 데이터를 보호해 접근을 제한

3. 상속성(Inheritance)

상속이란 기존 상위 클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념입니다.

  • 기존 클래스의 기능을 가져와 재사용할 수 있으면서도 새로운 기능을 추가할 수 있게 해줌
  • 여러 개체가 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정
  • 같은 특징있는 클래스를 그대로 물려받아 다시 작성할 필요없이 재사용으로 효율성을 늘림
  • 다형성을 확보

4. 다형성(Polymorphism)

다형성은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해줌
형태는 같지만 다른 기능을 하고 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력

오버라이딩(Overriding)

  • 자식 클래스에서 부모 클래스에서 만들어진 메서드를 다시 재정의해서 사용 하는 것

오버로딩(Overloading)

  • 같은 이름의 메서드를 사용하지만 메서드마다 다른 용도로 사용되며 그 결과물도 다르게 구현할 수 있게 만드는 개념
  • 메서드끼리 이름은 같지만 매개변수의 갯수나 데이터 타입이 달라야 오버로딩이 가능

MVC 패턴?

MVC 는 Model, View, Controller 의 약자다

  1. 사용자가 controller를 조작
  2. controller가 model을 통해 데이터를 가져와서
  3. 그 정보를 바탕으로 시각적인 표현을 담당하는 view를 제어해서
  4. 사용자에게 전달

Model

데이터를 가진 객체를 모델이라 칭한다
사용자가 편집하길 원하는 모든 데이터를 갖고있어야함

View

사용자가 볼 결과물을 생성하기 위해 모델에서 정보를 얻어옴
HTML, CSS, Javascript 들을 모아둔 컨테이너

Controller

사용자의 요청을 파악 후 그에 맞는 데이터를 Model에 요청하고 데이터를 반영해 사용자에게 알려줌

MVC를 사용하는 이유

  • 로직을 분리하여 유지보수를 독립적으로 수행 가능
  • 유지보수성, 애플리케이션의 확장성, 유연성이 뛰어남
  • 중복 코딩의 문제점 제거

0개의 댓글