실제 기술면접에서 받은 질문들에 대한 내용을 챗 GPT의 힘을 빌려 작성했습니다.
참고용으로만 봐주세요.
프레임워크
개발자들이 애플리케이션을 만들기 위해 사용하는 공통된 기능과 구조를 미리 구현해둔 라이브러리 모음이다. 즉, 개발자가 새로운 애플리케이션을 개발할 때 프레임워크를 이용하면 프레임워크에서 제공하는 라이브러리, 클래스, 함수 등을 사용해서 보다 빠르고 안정적인 애플리케이션을 개발할 수 있다.
프레임워크는 일반적으로 특정한 도메인이나 분야를 위한 것으로, 웹 애플리케이션, 모바일 애플리케이션, 게임 개발 등 다양한 분야에서 사용된다. 대표적으로 Spring, Django, Ruby on Rails가 있다.
프레임워크 장점
- 개발 시간 단축: 이미 구현된 기능을 사용할 수 있기 때문에 개발 시간을 단축할 수 있다.
- 코드 일관성: 프레임워크에서 제공하는 구조를 따르면, 코드 일관성을 유지할 수 있다.
- 보안성 향상: 프레임워크는 보안 취약점을 줄이기 위한 다양한 보안 기능을 제공한다.
- 커뮤니티 지원: 대부분의 프레임워크는 다양한 개발자 커뮤니티에서 지원되므로 문제 발생 시 도움을 받을 수 있다.
라이브러리
어떤 특정 기능을 수행하기 위한 코드들의 집합이며, 다른 프로그램에서 재사용이 가능한 형태로 제공되는 소프트웨어 모듈이다. 프로그래머들은 라이브러리를 사용해서 특정 기능을 구현하거나, 특정 작업을 수행하는데 필요한 코드를 간편하게 호출하고 사용할 수 있다.
라이브러리의 예시
JDBC, JPA → 자바에서 DBMS를 사용하기 위한 라이브러리 모음으로, JDBC는 DBMS와 직접적으로 연결하여 사용할 때 이용하고 JPA는 Spring 환경에서 반복적인 CRUD 작업을 처리하고 Repository 인터페이스만 작성하여 편리하게 DBMS 기능을 사용할 수 있게 해준다.
프레임워크 vs 라이브러리
프레임워크는 개발자가 사용할 수 있는 도구로, 미리 정해진 규칙에 따라 개발자가 작성한 코드를 실행하는 도구이다. 프레임워크는 개발자가 코드를 작성할 때, 프레임워크가 정해 둔 규칙과 패턴에 맞춰 코드를 작성해야 한다. 프레임워크는 개발자가 직접 코드를 작성하는 것보다는 이미 만들어진 틀 안에서 개발을 하는 것이다.
라이브러리는 개발자가 필요할 때 필요한 기능을 가져와서 사용하는 일종의 도구상자이다. 라이브러리를 사용하는 개발자는 라이브러리가 제공하는 기능을 직접 호출하여 사용할 수 있다.
→ 라이브러리는 개발자가 필요할 때 호출하여 사용하고, 프레임워크는 개발자가 작성한 코드를 실행할 때 필요한 규칙과 패턴을 제공한다.
Spring vs Spring Boot
스프링과 스프링 부트는 모두 자바 기반의 오픈소스 애플리케이션 프레임워크이다.
스프링은 큰 규모의 애플리케이션을 만들기 위한 다양한 기능과 옵션을 제공한다. 스프링은 대규모 애플리케이션에서의 구성, 보안, 트랜잭션 관리, 데이터 액세스, 웹 개발 등 다양한 기능을 제공한다. 스프링의 핵심은 IoC와 AOP이다.
스프링 부트는 스프링의 부트스트래핑 프레임워크로, 간단하고 빠르게 스프링 애플리케이션을 만들 수 있도록 해준다. 스프링 부트는 스프링 프레임워크의 기능과 라이브러리를 미리 구성해둔 것으로 개발자가 별도로 구성하지 않아도 기본 설정을 제공한다. 또한 자동설정, 내장형 서버, 스타터 의존성 등의 기능을 제공하여 개발 생산성을 향상시킨다.
→ 스프링은 다양한 기능을 제공하는 규모가 큰 프레임워크이며, 스프링 부트는 스프링을 더 쉽고 빠르게 사용할 수 있도록 도와주는 도구이다.
Git Flow
Git 버전관리시스템에서의 브랜치 관리 모델이다. 개발 중인 프로젝트를 관리하고 유지하는데 필요한 각종 브랜치를 정의하고 관리하는 것을 목적으로 한다.
Git Flow 과정
- Feature 브랜치 생성: 새로운 기능 개발을 위한 브랜치 생성
- Development 브랜치 생성: 개발이 진행되는 브랜치이다. Feature 브랜치에서 개발이 완료된 것을 Development 브랜치로 병합한다.
- Release 브랜치 생성: 프로덕션에 적용할 준비가 된 브랜치이다. Development 브랜치에서 Release 브랜치로 병합한다.
- Hotfix 브랜치 생성: 프로덕션에서 발생한 긴급 버그를 수정하기 위한 브랜치이다. Master 브랜치에서 HotFix 브랜치를 생성하고, 버그 수정 이후 Master와 Develop 브랜치에 병합한다.
★ 회사마다 Git Flow 과정은 모두 다를 수 있다. 하지만 대개의 경우, 위의 과정을 거친다.
'CS' 카테고리의 다른 글
[데이터베이스] Key (0) | 2025.01.26 |
---|---|
신입 개발자 CS 면접 대비 질문-네트워크 #1 (0) | 2023.02.14 |
신입 개발자 CS 면접 대비 질문-운영체제 #2 (0) | 2023.02.12 |
신입 개발자 CS 면접 대비 질문-웹 #1 (0) | 2023.02.02 |
신입 개발자 CS 면접 대비 질문-운영체제 #1 (0) | 2023.01.30 |
댓글