OOP 객체지향으로 프로그래밍하기!

박두팔이·2023년 5월 10일
0

OOP 객체지향 프로그래밍 강의

Oop의 세가지 특징?

: 캡슐화/상속/다형성/추상화 (추상화는 현업에서 많이 쓰이지 않는 경우도 더러 있음)

  • 캡슐화
    : 외부에 노출할 필요가 없는 정보들은 은닉(정보은닉, 은폐)
    ex) 퍼블릭, 프라이빗 등 외부에서 접근할 수 있는 권한을 얼만큼 부여할 것인지에 대해 생각하면서 작성해야한다.

  • 상속
    : 상속 관계에 있는 두 클래스에 대해, 부모클래스가 자손 클래스에게 속성을 물려주는 것.

  • 다형성
    : 같은 형태지만 다른 기능을 하는 것
    : 오버로딩, 오버라이딩은 이와 관련된 기능임

  • 추상화
    : 예를들어 사람이라는 오브젝트를 위해서 필수요소를 미리 정의해놓음
    : 객체의 공통된 속성들 중 필요한 부분을 포착해서 클래스로 정의하는 설계기법
    : 추상화를 잘 사용하는 기업은 시니어가 전체적인 부분을 추상화시키고 작업시작
    : 제일 상위의 추상화는 object임.


디자인 패턴

💡 정의?
기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션이다. 디자인패턴의 종류는 다양하지만 비지니스 로직이 동작하기 때문에 제대로 사용하기는 어렵다.


라이브러리를 잘 사용하는 회사가 좋다😇

자주 쓸만한 로직을 잘 갖춰놓고 필요할 때마다 가져다 쓰는 유틸리티 클래스들의 모음이다. 프레임워크 상에서 mvc모델 상 잘 짠 코드는 하드코딩이 아닌, 라이브러리 클래스를 잘 만들어 둔 회사가 좋은 회사다.


프레임워크

💡 정의?

디자인 패턴의 결합과 설계자의 독자적인 설계 끝에 업무 구현에 적당한 제어흐름을 구성한다. 그러면 개발자들은 제어흐름에 주어진 규칙을 저절로 지키도록 강제하게 되고 의도한 어플리케이션을 편리하게 작성할 수 있도록 이끌어준다.


OOP 적용하기

내가 짜놓은 클래스를 수정했을 때 다른형태의 비즈니스 로직에서 뻑(?)이나면 잘 짠 코드라고 할 수 없다.

수직적으로 코드를 전달하는 경우, 상속을 사용하면 좋다. 부모의 것을 상속받은 자식클래스에서 코드수정을 아무리 해도 연관된 코드를 사용하는 다른 클래스에서는 문제발생이 생기지 않음.

If/else 문 사용을 줄이는것을 추천한다. If문은 분기점이 발생하기 때문에 사이드이펙트가 발생할 확률이 높다. 수직적관계인 경우 같은 팀원에게 제공할 코드는 상속으로 주는 것이 좋고, 수평적으로 다른 팀에게 전달할 경우는 접근제한자를 다르게 정의하여 캡슐화하여 인터페이스 형식으로 전달하는 것이 좋다.

profile
기억을 위한 기록 :>

0개의 댓글