기출문제/정보처리기사

2022년 2회 정보처리기사 기출문제 85번

엉클지니 2025. 3. 2. 19:54

85. 소프트웨어 개발 프레임워크와 관련한 설명으로 가장 적절하지 않은 것은?

반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장 받을 수 있게 하는 개발 소프트웨어이다.

 라이브러리와는 달리 사용자 코드에서 프레임워크를 호출해서 사용하고, 그에 대한 제어도 사용자 코드가 가지는 방식이다.

설계 관점에 개발 방식을 패턴화시키기 위한 노력의 결과물인 소프트웨어 디자인 패턴을 반제품 소프트웨어 상태로 집적화시킨 것으로 볼 수 있다.

프레임워크의 동작 원리를 그 제어 흐름의 일반적인 프로그램 흐름과 반대로 동작한다고 해서 IoC(Inversion of Control)이라고 설명하기도 한다.

 

 

이 문제는 소프트웨어 개발 프레임워크에 대한 개념을 정확히 알고 있는지를 묻는 문제입니다.
각 보기와 핵심 개념을 비교해보면서 왜 정답이 ❷인지 설명해드릴게요.


📚 프레임워크(Framework)란?

  • 소프트웨어의 기본 뼈대를 제공하는 개발 도구
  • 개발자가 필요한 기능을 추가/확장할 수 있음
  • 반제품 형태로 제공되어 생산성 향상과 재사용성 증가
  • 대표적으로 Spring, Django, Laravel 등 다양한 프레임워크가 존재

📊 보기 분석

보기 설명 적합 여부

① 반제품 상태로 제공되어 재사용성 확대와 성능 보장 프레임워크의 본질적 특징
❷ 사용자 코드가 프레임워크를 호출하고, 제어권도 사용자에게 있음 ❌ (틀림)  
③ 디자인 패턴을 집적화시켜 반제품화된 소프트웨어 프레임워크의 특징 중 하나
④ 프레임워크는 제어 흐름이 역전되는 IoC 개념을 적용 프레임워크의 핵심 개념

📌 ❷번이 틀린 이유: 제어 역전(Inversion of Control, IoC)

프레임워크와 라이브러리의 차이

구분 라이브러리 프레임워크

호출 주체 사용자 코드가 라이브러리를 호출 프레임워크가 사용자 코드를 호출
제어권 사용자 코드가 제어 프레임워크가 제어
예시 유틸 함수, 데이터 처리 라이브러리 웹 프레임워크 (Spring, Django)

✅ 프레임워크는 프레임워크 자체가 프로그램 흐름을 주도하고,
개발자가 작성한 코드를 필요할 때 프레임워크가 역으로 호출하는 구조입니다.
이걸 **IoC (Inversion of Control)**이라고 부릅니다.

❌ 하지만 보기 ❷는 "사용자 코드가 프레임워크를 호출하고, 제어권도 사용자에게 있다"라고 했습니다.
→ 이건 라이브러리의 특징이지, 프레임워크의 특징이 아닙니다.


✅ 정답


💡 요점 정리

구분 라이브러리 프레임워크

제어권 사용자 코드에 있음 프레임워크에 있음 (IoC 적용)
호출 방식 사용자가 직접 호출 프레임워크가 사용자 코드를 호출
사용 목적 특정 기능 수행 전체 개발 구조 제공 (반제품)

 

 

반응형