1. 객체지향
https://pizzasheepsdev.tistory.com/11?category=849060
특징
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.
'개념정리 > 기술면접대비' 카테고리의 다른 글
[기술면접 대비] 6. 모던 프레임워크 - node, vue, react (0) | 2021.06.10 |
---|---|
[모의면접 2차] (0) | 2021.05.31 |
[모의면접 1차] (0) | 2021.05.26 |
[기술면접 대비] 5. CS 공통 - 데이터베이스 (0) | 2021.05.16 |
[JS 기초탄탄 프로젝트] 브라우저 이해하기 - 문서, 이벤트, 인터페이스 (0) | 2021.05.11 |