본문 바로가기

개념정리/기술면접대비

[기술면접 대비] 6. 기타

1. 객체지향 

https://pizzasheepsdev.tistory.com/11?category=849060 

 

SOLID : 의존 역전 원칙

의존 역전 원칙 (DIP : Dependency Inversion Principle) SOLID 원칙의 마지막 원칙이다. 이 원칙을 지키기 위해 해야할 행동은 꽤나 심플하기 때문에 그리 어렵지 않은 원칙이다. 우선, 사전적으로 이 원칙은

pizzasheepsdev.tistory.com

특징

1) 추상화 : 객체화 자체가 추상적인 의미. 세부적인 사물의 공통 특징을 파악해 하나의 객체로 추상화 하는 것.

2) 캡슐화 : 의존성을 해결하고 재사용성을 높이기 위함. 세부 구현내용을 은닉함.

3) 상속 : 부모-자식 간의 상속으로 확장성 

4) 다형성 : 메소드 오버라이딩 (상속), 오버로딩(파라미터 다르게) 등으로 구현

 

설계원칙

1) 단일 책임 : 하나의 클래스는 하나의 책임만

2) 개방-폐쇄 : 기능의 확장은 개방적이되, 이것이 코드를 수정하는 것에는 폐쇄적이어야 한다. 즉 기존 객체 수정하지 말고 상속 써서 확장하라는 의미

3) 리스코프 치환 : 부모 객체가 자식 객체로 치환되어도 문제 없어야 함. 즉 애초에 제대로 상속관계 제대로 규명해라  

4) 인터페이스 분리 : 하나의 인터페이스는 하나의 동작만. 인터페이스간 의존성 분리. 클라이언트가 사용하는 인터페이스와 그렇지 않은 인터페이스가 분리되어야 함

5) 의존 역전 : 상위 모듈이 하위 모듈에 의존적이면 안 됨. 즉 중간에 인터페이스 써라

 

2. 함수형 프로그래밍

선언형 프로그래밍 (기존의 명령형 프로그래밍-절차지향,객체지향 과 반대)

어떻게 보다는 무엇을에 초점을 둔다.

여러 개의 순수함수를 조합한 합성함수를 이용해 프로그램을 구현하며 모든 상태는 공유되지 않고(avoid shared state), immutable하게 관리되어 부작용을 피한다(avoid side effect).

immutable : 기존의 값을 변경시키지 않고 복사하여 새로운 값을 만들어 리턴함.

순수함수 : 입출력이 순수한(동일한 인풋에 대한 동일한 아웃풋)하고, 전달받은 인자만 사용해야 하며, 함수 외부의 값이나 프로그램에 영향을 주지 않음.

 

 

3. MVC 패턴

Model : 핵심적인 비즈니스 로직을 담당하며 데이터를 관리. 컨트롤러의 호출에 맞게 동작하거나 데이터를 전달받음.

View : 사용자에게 보여지는 화면. 컨트롤러로부터 모델의 값을 전달받아 화면에 출력

Controller : 뷰와 모델 사이의 연결고리. 요청에 대한 알맞은 모델을 호출하고, 데이터를 모델에 전달하고, 모델이 동작을 마치면 결과를 뷰에 전달.

 

4. TDD

 

5. Agile

 

6.