질문

기술노트
Admin (토론 | 기여)님의 2025년 4월 17일 (목) 14:24 판 (CS 용어 정리 - 질문 추가)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
  • 이터레이터 패턴의 장단점은 무엇인가요?
   - 장점
       - 집합체 클래스의 응집도를 높여주기 때문에 집합체 내에서 어떤 식으로 일이 처리되는지 알 필요 없이, 집합체 안에 들어있는 모든 항목에 접근 할 수 있게 해줍니다. 
       모든 항목에 일일이 접근하는 작업을 컬렉션 객체가 아닌 이터레이터 객체에서 맡게 되므로 이렇게 하면, 집합체의 인터페이스 및 구현이 간단해질 뿐만 아니라, 집합체에서는 반복 작업에서 손을 떼고 원래 자신이 할 일에만 전념할 수 있습니다.
   - 단점
       - 단순한 순회를 구현하는 경우 클래스만 많아져 복잡도가 증가할 수 있습니다.
  • 추상화란 무엇인가요?
   - 대상에서 특징을 뽑아낸 것으로 프로그래밍에서는 interface 안에 함수를 쓰는게 추상화를 하는 방법입니다. 코드를 썼을 때 어떤 내용을 수행하는지가 한눈에 파악되지않을때 추상적이라고 말할 수 있습니다.
   
  • MVC 패턴의 특징과 각 부분의 역할을 간략하게 설명해주세요.
   - MVC 패턴은 앱의 구성 요소를 세가지 역할인 모델, 뷰, 컨트롤러로 구분한 디자인 패턴입니다. 재사용성과 확장성이 용이하다는 장점이 있고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계 또한 복잡해지는 단점이 있습니다.
   - 모델은 데이터 처리 역할, 뷰는 사용자가 보는 페이지, 이를 제어하는 컨트롤러 역할을 합니다.
  • MVC 패턴을 쓰는 이유에 대해 말씀해주세요.
   - 효율적인 개발 및 유지보수를 위해서입니다. 모델, 뷰, 컨트롤러로 각각 분리하여 개발하면 중복 개발되는 부분을 방지할 수 있어 개발시 효율성이 증대될 뿐만 아니라, 추후 프로그램의 유연한 확장성을 가질 수 있습니다. 어떠한 부분에서 문제가 발생하더라도, 다른 부분에 최소한의 영향을 주며 변경할 수 있습니다.
  • 디자인 패턴을 따를때의 장점은 무엇인가요?
   - 가장 바깥쪽 계층인 framework 계층을 수정해도 안쪽 비즈니스 로직이 이 수정사항에 의해 영향받지 않습니다. 즉, 독립적으로 뷰계층을 수정하거나 Data source를 바꿀 수 있습니다.
   - 가장 내부에 위치한 모델 컴포넌트는 다른 컴포넌트들로부터 데이터 구조와 같은 내부적인 사항을 숨길 수 있고, 이때 interface를 선언해준다면 로직 재사용이 가능해집니다.
   - 또한, 해당 컴포넌트에 관련된 코드를 분리시켜 다른 컴포넌트로 옮겨가는 것 또한 수월해집니다.