객체지향 프로그래밍이란?

김형민·2021년 6월 17일
0

처음 객체지향을 공부한다면?
문법적인 형식을 일단 알아보도록 하자..!

하나의 프로그램은 하나의 취지를 가지고 있는 로직으로 이루어져 있는 것이 아니라 여러개의 속성을 가지고 있는 로직의 집합이다..!

처음에 어플리케이션을 만들게 될 때는 코드가 많지않다
그런데 사이트의 규모가 커지고 동원되는 인원이 많아지고 프로젝트 기간이 늘어난다면??

이 복잡한 로직들을 기능별로 그룹핑하고 싶어진다..!
ex) 글목록, 본문, 댓글 등등..

그렇다면? 이 사이트를 구성하고 있는 기능들을 나눠서
기능상으로 연관되어있는 코드끼리 모아놓는다 이것을 일종의 그룹핑, 분류화라고한다!

이렇게 사이트가 커지고 복잡해질때 여러가지 문제가 생길 수 있는데
이를 해결해 줄수 있는 방법중 하나가 객체지향 프로그래밍이라고 할 수 있다!

예를 들어 본문에 필요한 변수와 메소드를 그룹핑해놓은 것을 객체라고 할 수 있다!

객체지향의 장점

  • 재활용성 : 이렇게 기능별로 필요한 변수와 메소드를 분리 해놓으면
    다른 어플리케이션을 제작할때도 그대로 가져와서 사용할 수 있다! 로직을 재활용

  • 하나의 객체안에는 그 객체가 가지고 있는 취지에 맞는 변수와 메소드를 넣어놔
    다른 로직과 구분해준다


실용적으로 직접 코드를 살펴보자

예를 들어 리그오브레전드를 캐릭터들을 객체 지향으로 만든다고 가정해보자..!
자료형에다가 먼저 정보들을 담아둬야한다!

object자료형

	var nunu = {
    	q : 'consume',
        w : 'snowball'
    },
    var garen = {
		q : 'strike',
        w : 'courage'
	}

이런 작업을 쉽게하는 방법은??
비슷한 object를 많이 만들일 있다면 class를 써보자

class

쉽게 말해 class는 object를 뽑아내는 기계

함수로 class 구현해보기

	function 기계() {
    	this.q = 'consume' >> 새로생성 되는 object에 {q:'consume'} 추가해주세요 라는 뜻!
    	this.w = 'snowball'
    }

		new 기계() >> {q:'consume'} ,{w:'snowball'}가 남는다
        
	var nunu = new 기계() // 아까 위에 만든 것과 똑같다
    
    var nunu = {
    	q : 'consume',
        w : 'snowball'
    },
	
    /////
    var garen = new 기계() >> nunu의 스킬 object가 찍힌다
    해결해보자!
	>>>
		function 기계(스킬) {
    	this.q = 스킬 
    	this.w = 'snowball'
    }
    이런식으로 단순하게 파라미터롤 값을 넘겨주면 된다..
    var garen = new 기계('consume')

this는 기계로 부터 생성되는 object라고 알아두자

2016년 ES6문법 이후론 아래 처럼 많이쓴다!

	class Hero {
    	constructor(구멍){
          this.q = 구멍;
          this.w = 'snowball'
        }   
    }
	new Hero() >> {q: 구멍}, {w :'snowball'}
	
profile
항해 중인 개발자

0개의 댓글