본문 바로가기
CS

[CS] 디자인패턴과 라이브러리/프레임워크

by naahy 2024. 6. 26.

디자인패턴
- 객체 간 상호관계를 통해 문제 해결
- 프레임워크, 라이브러리의 토대 (ex. sns 로그인 연동시 한 줄로 해결)
- 이를 기반으로 여러 문제를 해결하는 데 있어 빠른 의사소통 가능


코드를 모두 한 파일에 넣으면
모듈화
에러 수정, 로직 변경이 어려움

규약, 전략패턴

종류
- 생성 패턴: 객체를 어떻게 만들까
- 구조 패턴: 만들어진 객체를 어떤 구조로 무엇을 만들 것인가 (프록시, 어댑터,
- 행동 패턴: 객체나 클래스 간 알고리즘, 책임 할당에 관한 패턴 (이터레이터, 옵저버, 전략, 
--> 이외에도 수천가지 다양한 디자인패턴이 있다.




라이브러리/프레임워크
- 공통으로 사용될 수 있는 특정한 기능들 모듈화
- 폴더명, 파일명 규칙 X / 규칙 O

라이브러리(ex. axios)는 프레임워크(ex. vue.js)에 비해 자유로움
예를 들어 라이브러리는 자동차와 같고 경로 변경 자유로움 but 프레임워크는 비행기, 경로 변경 불가
라이브러리는 커스텀 가능, 프레임워크는 자유도 감소 but 프레임워크가 제공되는 것들이 더 많다
라이브러리는 프레임워크에 넣어 작성할 수 있다. 하지만 반대는 불가
또 프레임워크의 경우 엄격하기 때문에 모든 라이브러리를 받을 수 있는 것도 아님

 

퀴즈

1. 모듈화와 유지보수

질문: 모든 코드를 하나의 파일에 넣었을 때 발생할 수 있는 주요 문제는 무엇인가요?

A) 코드의 실행 속도가 느려진다.
B) 모듈화가 어려워진다.
C) 모든 라이브러리를 사용할 수 없다.
D) 컴파일 시간이 길어진다.

 

2. 라이브러리 vs 프레임워크

질문: 다음 설명 중 라이브러리와 프레임워크의 차이에 대한 올바른 설명은 무엇일까요?

A) 프레임워크는 특정 기능을 모듈화한 것이며, 라이브러리는 전체적인 애플리케이션 구조를 제공한다.
B) 라이브러리는 사용자가 자유롭게 선택하여 사용할 수 있지만, 프레임워크는 사용자가 그 규칙에 따라야 한다.
C) 라이브러리는 프레임워크를 내부에 포함할 수 있지만, 프레임워크는 라이브러리를 포함할 수 없다.
D) 프레임워크는 더 많은 자유도를 제공하지만, 라이브러리는 엄격한 규칙을 가지고 있다.

 

3. 디자인 패턴의 활용

질문: 다음 중 디자인 패턴의 이점으로 가장 적합하지 않은 것은 무엇일까요?

A) 문제 해결을 위한 빠른 의사소통
B) 객체 간의 상호관계 이해
C) 코드의 실행 속도 증가
D) 프레임워크나 라이브러리의 토대 제공

 

더보기

1. 모듈화와 유지보수

정답: B) 모듈화가 어려워진다.

설명: 하나의 파일에 모든 코드를 넣으면 모듈화가 어려워져 코드의 유지보수와 로직 변경이 복잡해질 수 있습니다.

 

2. 라이브러리 vs 프레임워크

정답: B) 라이브러리는 사용자가 자유롭게 선택하여 사용할 수 있지만, 프레임워크는 사용자가 그 규칙에 따라야 한다.

설명: 라이브러리는 특정 기능을 제공하여 개발자가 선택적으로 사용할 수 있는 반면, 프레임워크는 전체적인 애플리케이션 구조와 규칙을 제시하여 개발자가 그에 맞춰 개발하도록 합니다.

 

3. 디자인 패턴의 활용

정답: C) 코드의 실행 속도 증가

설명: 디자인 패턴은 주로 코드 구조와 설계 문제를 해결하는 데 중점을 둡니다. 실행 속도를 직접적으로 향상시키는 것은 아닙니다.

댓글