어떤 패러다임이 가장 좋을까?
그런 건 없다
비즈니스 로직이나 서비스의 특징을 고려해서 패러다임을 정하는 것이 좋음
하나의 패러다임을 기반으로 통일하여 서비스를 구축하는 것도 좋지만
여러 패러다임을 조합하여 상황과 맥락에 따라 패러다임 간의 장점만 취해 개발하는 것이 좋음
예를 들어 백엔드에 머신러닝 파이프라인과 거래 관련 로직이 있다면
머신러닝 파이프라인은 절차지향형 패러다임, 거래 관련 로직은 함수형 프로그래밍을 적용하는 것이 좋음
옵저버 패턴 구현
프록시 객체를 써서 하곤 함
프록시 객체를 통해 객체의 속성이나 메서드 변화 등을 감지하고 이를 미리 서정해 놓은 옵저버들에게 전달하는 방법
프록시 서버 설명 및 사용 사례
클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 서버
주로 서버 앞단에 둬서 캐싱,로깅,데이터 분석을 서버보다 먼저 하는 서버로 쓰임
이를 통해 포트 번호를 바꿔서 사용자가 실제 서버의 포트에 접근 하지 못하게 할 수 있으며, 공격자의 DDOS 공격을 차단하거나
CDN을 프록시 서버로 캐싱을 할 수 있으며, Nginx로 Node.js로 이루어진 서버의 앞단에 둬서 버퍼 오버플로우를 해결할 수 있음
버퍼 오버플로우란,
컴퓨터가 데이터를 저장하려고 만든 공간(버퍼)에
너무 많은 데이터를 넣어서 공간을 넘쳐버리는 것
MVC 패턴 설명 및 MVVM 패턴과의 차이


MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴
앱의 구성요소를 세가지 역할로 구분하여 개발 프로셋 에서 각각의 구성 요소에만 집중해서 개발할 수 있다는 점
재사용성과 확장성 용이
애플리케이션이 복잡해 질 수록 모델과 뷰의 관계 또한 복잡해지는 단점
MVVM 패턴은 MVC의 C에 해당하는 컨트롤러(Controller)가 뷰모델(View model) 로 바뀐 패턴
뷰모델은 뷰를 더 추상화한 계층, MVVM 패턴은 MVC 패턴과는 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징
뷰와 뷰모델 사이에 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용할 수 있고 단위 테스팅하기 쉬움
'Computer Science' 카테고리의 다른 글
| 네트워크 - 처리량과 지연시간 (0) | 2025.04.29 |
|---|---|
| 예상 질문 - 인터페이스 분리 원칙 (0) | 2025.04.28 |
| 프로그래밍 패러다임 - 절차형 프로그래밍 (0) | 2025.04.28 |
| 디자인 패턴 - MVVM 패턴 (1) | 2025.04.24 |
| 디자인 패턴 - MVP 패턴 (0) | 2025.04.24 |