You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
MVC 패턴
모델
뷰
컨트롤러
MVC 패턴의 예 리액트
MVP 패턴

- 뷰와 프레젠터는 일대일 관계여서 MVC 패턴보다 더 강한 결합을 지닌 디자인 패턴MVVM 패턴

- 뷰모델은 뷰를 더 추상화한 계층 - MVC 패턴과 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징 - 뷰, 뷰모델 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용 할 수 있음. - 단위 테스팅하기 쉽다는 장점이 있음.MVVM 패턴의 예: 뷰
커맨드
데이터 바인딩
프로그래밍 패러다임
프로그래밍의 관점을 갖게해주는 역할을 하는 개발 방법론
객체지향 프로그래밍은 프로그램을 상호 작용하는 객체들의 집합
반면 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각
jdk 1.8 이전 자바 : 객체지향 프로그래밍 지원
jdk 1.8 이후 버전 함수형 프로그래밍 패러다임 지원을 위한 람다식, 생성자 레퍼런스, 메서드 레퍼런스 도입, 선언형 프로그래밍을 위해 스트림 같은 표준 API 등도 추가
C++, 파이썬, 자바스크립트 등도 여러 패러다임 지원
선언형. 명령형으로 프로그래밍 패러다임을 분류
선언형은 함수형 / 명령형은 객체지향 절차지향으로 나뉨
선언형과 함수형 프로그래밍
순수 함수
pure 함수는 들어오는 매개변수 a, b에만 영향을 받는다. 만약 a, b 말고 다른 전역 변수 c등이 출력에 영향을 주면 순수 함수가 아니다.
고차 함수
일급 객체
고차 함수를 쓰기 위해 해당 언어가 일급 객체라는 특징을 가져야 한다.
객체지향 프로그래밍 OOP
객체지향 프로그래밍 특징
추상화
캡슐화
상속성
다형성
오버로딩
오버로딩은 같은 이름을 가진 메서드를 여러 개 두는 것을 말함. 메서드의 타입, 매개변수의 유형, 개수 등으로 여러 개를 둘 수 있고 컴파일 중 발생하는 ‘정적’ 다형성
⇒ 매개변수의 개수에 따라 다른 함수가 호출됨
오버라이딩
⇒ 부모 클래스는 mumu! mumu!로 짖게 만들었지만 자식 클래스에서 wal!!!, wal!!!로 짖게 만들어서 자식 클래스 기반으로 메서드가 재정의 됨
설계 원칙
객체지향 프로그래밍 설계할 때 SOLID 원칙 지켜주어야 함
S는 단일 책임 원칙 Single Responsiblity Principle
모든 클래스는 각각 하나의 책임만 가져야 하는 원칙
A라는 로직 존재하면 어떠한 클래스는 A에 관한 클래스여야 하고 이를 수정한다 했을 때고 A와 관련된 수정
유지 보수 사항 생기면 코드를 쉽게 확장할 수 있도록 하고 수정할 때는 닫혀 있어야 하는 원칙 / 기존의 코드는 잘 변경하지 않으면서 확장은 쉽게 할 수 있어야 함
리스코프 치환 원칙은 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 하는 것을 의미. 클래스는 상속이 되기 마련, 부모, 자식이라는 계층 관계가 만들어진다.
부모 객체에 자식 객체를 넣어도 시스템이 문제없이 돌아가게 만드는 것을 말함. 범석 객체가 홍철 객체의 자식 계층일 때 범석 객체를 홍철 객체와 바꿔도 문제가 없어야 하는 것
인터페이스 분리 원칙은 하나의 일반적인 인터페이스보다 구체적인 여러 개의 인터페이스를 만들어야 하는 원칙
자신보다 변하기 쉬은 것에 의존하던 것을 추상화된 인터페이스나 상위 클래스를 두어 변하기 쉬운 것의 변화에 영향받지 않게하는 원칙
예를 들어 타이어 갈아끼울 수 있는 틀을 만들어 놓은 후 다양한 타이어를 교체할 수 있어야 한다. 즉 상위 계층은 하위 계층의 변화에 대한 구현으로부터 독립해야 함.
절차형 프로그래밍
자연수로 이루어진 배열에서 최댓값을 찾으라고 한다면 아래와 같은 로직 구성
패러다임의 혼합
<출처 및 참고 : 면접을 위한 CS 전공지식 노트 - 주홍철 >
Beta Was this translation helpful? Give feedback.
All reactions