오늘은 웹개발 전반을 아우르는 CS 지식들을 찾아보고 짤막한 발표를 해보면서 찾아보았던 내용을 복습하면서 정리해보았다.
1. 라이브러리와 프레임워크
1-1. 라이브러리와 프레임워크
라이브러리와 프레임워크는 둘 다 미리 작성해둔 코드를 불러와서 사용하는 것이라는 공통점이 있고 개발자가 생산성있는 개발을 할 수 있도록 돕는다. 쉽게 말해 다른 사람이나 회사같은 단체에서 작성해둔 코드들을 필요하다면 개발자가 가져와서 사용할 수 있는 것이다. 물론 아주 힘들겠지만 본인이 직접 라이브러리나 프레임워크를 만들 수도 있을 것이다.
라이브러리는 하나 이상의 프로그램에 활용될 수 있는 데이터와 명렁어들의 집합이다. 특정 작업을 수행하기 위한 기능을 일정 단위로 모듈화한 것이다. 쉽게 말하면 재사용 가능한 동작들의 모음이다.
백엔드에서 사용하는 라이브러리에는 Java에서 사용하는 Apache Commons IO, Python에서 사용하는 TensorFlow, Pandas, Scikit 등이 있다.
프론트엔드에서 사용하는 라이브러리에는 JavaScript에서 사용하는 JQuery, React Lodash 등이 있다.
웹 개발 종합반 강의를 들으면서 부트스트랩, JQuery 라이브러리를 불러와서 사용하는 것은 직접 해보았다.
프레임워크는 개발자가 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 뼈대, 틀을 의미한다. 프레임워크를 이용하면 라이브러리와 개발자가 작성한 코드를 엮어 필요한 코드를 추가하는 것만으로 원하는 프로그램을 개발할 수 있다.
프레임워크의 종류로는 백엔드 개발에서 사용되는 Spring, django, node.js 등이 있고, 프론트엔드에서 사용되는 Vue, Angular 등이 있다.
프레임워크는 아직 학습해보지 못했는데 Spring 프레임워크을 곧 공부하고 사용해볼 예정이므로 조금 더 알아봐야겠다.
1-2. 라이브러리와 프레임워크의 차이
라이브러리와 프레임워크를 가르는 차이는 주도성이 누구에게 있느냐, 프로그램의 흐름을 누가 제어하느냐이다.
라이브러리를 사용하는 것은 개발자가 자기가 작성한 코드의 일부분으로서 라이브러리를 가져와서 사용하하는 것으로 프로그램은 개발자가 작성한 코드가 직접 제어하게 된다.
반면 프레임워크를 활용해 프로그램을 만들게되면 개발자가 짠 코드가 프레임워크의 일부분이 되어 프레임워크에 의해 제어되게 된다. 프레임워크를 사용하면 제어의 책임이 프레임워크로 넘어가게 된다.
프레임워크에는 라이브러리가 포함된다(들어있다). 프레임워크는 개발자가 짠 코드를 호출하며 직접 프로그램을 제어하게 된다. 개발자가 라이브러리를 사용하면 개발자가 작성한 코드에서 라이브러리를 호출하게 된다.
프론트엔드에서 사용되는 리액트의 경우는 통상적으로 라이브러리로 분류되지만 프레임워크처럼 개발자가 작성한 코드의 일부를 불러다가 사용하는 경우도 있다고 한다.
라이브러리는 사용하다가 불편하거나 어려운 부분이 있다면 다른 라이브러리로 대체하는 것이 쉽지만 프레임워크는 대체하는 것이 매우 어렵다고 한다.
2. 플러그인
플러그인은 기존 프로그램이나 시스템에 추가적인 기능과 특징을 제공하는 소프트웨어 구성요소이다. 원래 있는 소프트웨어에 연결되어 특정 작업을 수행하거나 기능을 확장하는 역할을 한다. 쉽게 말하면 사용하고 있는 프로그램에 어떤 기능을 더하는 역할을 한다.
예시로 아래는 내가 크롬 브라우저에서 사용중인 플러그인(애드온 add-on 이라고도 부른다)들을 들 수 있겠다.
광고를 차단해주는 애드블록, git에 풀이한 문제를 자동으로 커밋해주는 백준허브, JSON데이터를 가독성 있게 볼 수 있게 해주는 JSONVue이다.
플러그인을 사용하는 목적은 여러가지가 있다.
먼저 플러그인을 사용해 소프트웨어에 새로운 기능을 확장, 추가 할 수 있다. 위에서 예시로든 웹브라우저의 애드온들을 들 수 있다.
또 소프트웨어에 새로운 데이터 형식을 지원, 확장하도록 하는 것이 이유이다. 기존에 지원하지 않았던 새로운 확장자를 가진 파일형식을 소프트웨어가 지원하도록 만들 수 있을 것이다.
다른 소프트웨어와 상호 작용이 가능하게 만들기 위해 플러그인을 사용할 수도 있다. 호환성을 확장하도록 만드는 것이 플러그인의 역할이다.
어떤 소프트웨어가 설치될 때 특정 사용자에게는 불필요한 부분까지 모두 설치를 해야만 한다면 설치 시간도 오래 걸리고 용량도 불필요하게 많이 필요할 것이다. 사용자가 필요한 기능만 선택하여 플러그인을 설치하고 사용할 수 있도록 하기 위해 플러그인을 사용하기도 한다. 플러그인을 사용하면 사용자가 자신의 요구에 맞게 조정하고 개인화할 수 있다.
2. 오늘 알게된 것
- 웹개발 전반에 대해 필수적으로 알아야할 내용들에 대해 공부해보았다.
'오늘 배운 것' 카테고리의 다른 글
24-03-26 Kotlin 컬렉션 집계하기 (0) | 2024.03.26 |
---|---|
24-03-25 데이터베이스와 쿼리 (0) | 2024.03.25 |
24-03-23 SQL UNION과 UNION ALL (0) | 2024.03.23 |
24-03-22 SQL Having과 Where (0) | 2024.03.22 |
24-03-21 Kotlin 컬렉션 필터링하기 filter(), filterIndexed() ... (0) | 2024.03.21 |