# 질의 응답 상황
[면접관]
지원자님 Spring Framework을 주로 사용하셨는데 여기서 Framework이란 무엇인지 간략하게 설명하세요. |
[막개발자]
Framework 이란 설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 확장하는 데 필요한 라이브러리 이 두 가지 요소가 통합되어 제공되는 형태를 의미 합니다. 사용자는 이러한 Framework을 이용해서 일정 수준 이상의 품질을 보장받는 코드를, 비교적 빠른 시간에 완성 및 유지 보수할 수 있는 환경을 제공해주는 솔루션 입니다. |
# 상세 설명
- **프레임워크(Framework)**는 소프트웨어 개발에서 특정 목적을 달성하기 위해 미리 정의된 구조와 규칙을 제공하는 재사용 가능한 코드의 집합입니다. 이를 통해 개발자들은 공통적으로 반복되는 작업을 효율적으로 처리하고, 프로젝트 개발 시간을 단축하며, 품질을 보장할 수 있습니다. 프레임워크는 주로 소프트웨어 아키텍처와 설계 원칙을 따르며, 특정 도메인이나 목적에 최적화되어 있습니다.
- 미리 정의된 구조
개발 작업을 위한 뼈대를 제공하며, 개발자는 이를 기반으로 애플리케이션을 구성합니다.
예: MVC(Model-View-Controller) 패턴을 따르는 웹 프레임워크. - 재사용성
코드와 설계를 재사용함으로써 개발 비용과 시간을 절감합니다.
예: 데이터베이스 연결, 인증 시스템 등의 반복적인 작업을 위한 기능 포함. - 표준화된 방식
일관된 규칙을 제공해 협업 및 유지보수가 용이합니다.
예: 코드 작성 방식이나 파일 구조가 일정. - 확장성
기본적인 기능을 제공하면서, 개발자가 이를 확장하거나 커스터마이징할 수 있도록 설계되어 있습니다.
- 웹 프레임워크
웹 애플리케이션 개발에 특화된 프레임워크.
예:- Django (Python): 빠르고 간결한 웹 개발.
- Spring (Java): 강력한 엔터프라이즈 솔루션 제공.
- Ruby on Rails (Ruby): 간단하고 직관적인 웹 개발.
- 프론트엔드 프레임워크
웹사이트의 사용자 인터페이스를 개발하는 데 초점.
예:- React: 컴포넌트 기반 UI 개발.
- Angular: 강력한 데이터 바인딩과 도구 제공.
- Vue.js: 가볍고 유연한 UI 구축.
- 백엔드 프레임워크
서버 측 로직을 처리하고 데이터베이스와의 통신을 관리.
예:- Express (Node.js): 경량의 웹 애플리케이션 프레임워크.
- Laravel (PHP): PHP 개발을 위한 강력한 도구 모음.
- 데스크톱 애플리케이션 프레임워크
데스크톱 소프트웨어를 개발하는 데 사용.
예:- Electron: 웹 기술로 데스크톱 앱 개발.
- Qt: 크로스 플랫폼 GUI 애플리케이션 개발.
- 모바일 애플리케이션 프레임워크
모바일 앱 개발에 필요한 도구 제공.
예:- Flutter: 크로스 플랫폼 모바일 앱 개발.
- React Native: JavaScript로 네이티브 모바일 앱 개발.
- 미리 정의된 구조
프레임워크와 라이브러리의 차이
-
- 프레임워크: 개발자가 정해진 구조와 규칙에 따라 코드를 작성해야 함. 개발의 흐름을 프레임워크가 제어(제어의 역전, Inversion of Control).
- 라이브러리: 개발자가 필요할 때 호출하는 방식으로 동작하며, 개발자가 전체 흐름을 제어.
예: React는 UI 라이브러리로 간주되며, Angular는 프레임워크로 간주됩니다.
장점
-
- 생산성 향상: 반복 작업 감소.
- 코드 품질 보장: 검증된 설계를 따름.
- 협업 용이: 표준화된 구조.
단점
-
- 학습 곡선: 복잡한 프레임워크는 학습에 시간이 걸릴 수 있음.
- 제한적 자유도: 제공된 규칙을 따르지 않을 경우 호환성 문제 발생 가능
'[이직 면접] 질의 응답' 카테고리의 다른 글
[Web 개발 기본] URI / URL에 대해서 말씀하세요. (0) | 2021.01.04 |
---|---|
[Spring Framework] Spring Framework 동작방식에 대해서 설명하세요. (0) | 2020.12.31 |
[Web 개발 기본] DB에서 Index가 무엇인지 설명하세요. (0) | 2020.12.29 |
[자료 구조] Stack과 Queue의 차이점과 구현 방법 (0) | 2020.12.29 |
[네트워크] OSI 7계층에 대해서 설명하세요. (0) | 2020.12.29 |