일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 프로그래머스 레벨2
- 양과늑대
- 코딩테스트
- 프로그래머스 레벨1
- 파이썬 양과늑대
- 도커오류
- 프로그래머스 파이썬
- 카카오 코딩테스트
- Cannot connect to the Docker daemon at unix
- 프레임워크란?
- 파이썬 카카오코딩테스트
- level1
- 파이썬
- 카카오코딩테스트
- 파이썬 프로그래머스
- 카카오코테
- 파이썬 재귀함수
- 라이브러리란?
- 카카오 파이썬
- 네이버 부스트캠프
- 프로그래머스
- docker시작하기
- 부스트캠프 회고
- 프로그래머스LEVEL1
- 프로그래머스 양과늑대
- 도커연결오류
- 부스트캠프
- 부캠
- 프로그래머스 레벨3
- 부스트캠프AITech
- Today
- Total
코린이의 공부일기
[개발용어] 프레임워크(Framework) 와 라이브러리(Library) 의 차이 본문
일단 프레임워크(Framework)와 라이브러리 (Library)의 먼저 공통점은 !
개발자가 쉽게 사용할 수 있도록 사람(?)이 만들어 놓은 것!
But, 심플한 차이점은
-> " 누가 누구를 컨트롤 하는가" 이다
1. 내가 코드를 컨트롤 하는 것
-> 라이브러리 (Library)
2. 내가 정해진 규칙을 따라하는 것
-> 프레임워크 (Framework)
즉, 예시를 들어본다면 훨씬 더 쉽게 이해할 수 있다.
먼저 라이브러리에 대해 설명하자면,
머신러닝 라이브러리 중 하나인 scikit learn 에서 K fold와 Stratified K fold 을 사용해 교차검증을 사용할 수 있는 것처럼 라이브러리는 내가 선택해 사용할 수 있다. 그리고 쉽게 대체해서 사용할 수 있다.
예를들어, 교차검증데이터셋은 사실 직접 손으로 세트를 나누어 구성할 수 있지만 시간절약을 하기위해 소환하여 쓰는 것으로 이해하면 될 것 같다.
그렇다면 프레임워크는 ?
프레임워크는 "나"를 부르는 것이다.
즉 일을 할 때 프레임워크의 규칙을 따라 코드를 작성해야 한다.
프레임워크는 어디에 코드를 넣어야하는지 규칙을 알려준다.
즉 , 내가 컨트롤 하는 것이 아닌 규칙을 따라가는 것이다.
예를 들어 Pytorch와 Tensorflow와 같이 데이터 셋을 정의 해주는 것, 데이터 로더지정, 모델설계, criterion, Optimizer와 같이 pytorch에 지정되어있는 규칙을 따라 코드를 넣어주어야한다.
결국 한 줄로 정의하자면
라이브러리는 내가 필요한 기능을 쓰고 싶을 때 직접 호출하여 사용하는 것이고 프레임워크는 프레임워크가 정해준 작업과 구조를 토대로
구현하는 것 이라고 생각하면 될 것 같다.
즉 가장 큰 차이점은 "코드 흐름의 주인" 이 누구한테 있느냐로 생각하면 된다.