DecordRay

Part 1. 전산 기초 - 개발상식(1) 본문

공부/CS

Part 1. 전산 기초 - 개발상식(1)

DecordRay 2023. 1. 16. 18:31
728x90
반응형

좋은 코드란?

사람마다 정의하는 좋은 코드의 기준은 조금씩 다르지만 이정도로 말할 수 있을 것 같다.

  • 읽기 쉬운코드
  • 중복이 없는 코드
  • 테스트가 용이한 코드

 

객체 지향 프로그래밍(Object Oriented Programming)

장점 

1. 코드의 재활용성이 높음

2. 절차지향방식보다 코드작성이 간편함

3. 디버깅이 쉬움

 

단점

1. 절차지향방식보다 처리속도가 느림

2. 설계에 많은 시간이 걸림

 

특징 

1. 캡슐화 - 사용자에게 객체의 기능과 사용법만 제공하고 내부는 감추어 쉽게 사용할 수 있게 하는 기법

  • 데이터 보호 - 사용자가 데이터에 직접 접근하는 것을 차단하여 객체 내 데이터 및 코드의 손상과 오용을 막을 수 있음
  • 추상화 용이 - 추상화를 통해 프로그래밍 문제를 쉽게 개념화 할 수 있음
  • 사용법 용이 - 메서드의 기능만 알면 객체를 사용할 수 있음

    Java의 경우 접근지정자를 통해 객체의 캡슐화, 은닉화를 구현

  • public : 다른 객체에서 해당 객체의 인스턴스를 생성하여 접근할 수 있다.
  • protected : 해당 객체를 상속받은 객체 내부에서 접근할 수 있다.
  • default : 동일한 패키지 내의 객체에서 인스턴스를 생성하여 접근할 수 있다.
  • private : 선언된 객체 내부에서만 사용 가능하다.

2. 상속 - 클래스 간의 관계를 계층화하고 분류하는 기법

  • 이해 용이 - 클래스 간의 체계화된 전체 구조를 파악하기 쉬움
  • 재사용성 증대 - 데이터와 메서드의 오버로딩을 피하고 기존 클래스에 있는 것을 재사용할 수 있음
  • 확장 용이 - 새로운 클래스, 데이터, 메서드를 추가하기가 쉬움
  • 유지보수 용이 - 데이터와 메서드를 변경할 때 상위 클래스 수정을 통해 전체적인 일관성을 유지할 수 있음
  • 추상화 가능 - 일반화, 특수화의 관계를 통해 추상화 단계를 표현할 수 있음

3. 다형성 - 하나의 이름으로 많은 상황에 대처하는 기법

  • 오버로딩 : 한 클래스 내에 같은 이름을 가진 메서드를 여러개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술(같은 클래스 내에서 적용)
  • 오버라이딩 : 상속받은 메소드를 자식 클래스에서 재정의 하는 것. 메소드의 이름, 매개변수, 리턴값이 모두 같아야 함(상속 관계에서 적용)

4. 추상화 - 객체들의 공통적인 특성(변수,메소드)를 묶어 표현하는 기법

 

객체지향 프로그래밍의 5가지 원칙(SOLID)

  • 단일 책임 원칙 (SRP : Single Responsibility Principle)
  • 개방 폐쇄 원칙 (OCP : Open/Closed Principle)
  • 리스코프 치환 원칙 (LSP : Liskov’s Substitution Principle)
  • 인터페이스 분리 원칙 (ISP : Interface Segregation Principle)
  • 의존관계 역전 원칙 (DIP : Dependency Inversion Principle)

단일 책임 원칙 (S)
 -  클래스는 하나의 책임만 가져야 한다.


개방 폐쇄 원칙 (O)
 - 확장에는 열려(Open) 있으나, 변경에는 닫혀(Closed)있어야 한다.


리스코프 치환 원칙 (L)
 - 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.


인터페이스 분리 원칙 
(I)
 - 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.


의존관계 역전 원칙 (D)
 - 추상화에 의존한다. 구체화에 의존하면 안된다. 

 

728x90
반응형

'공부 > CS' 카테고리의 다른 글

CS 면접 다수 기출  (0) 2023.01.16
Comments