-
프레임워크 쉽게 이해하기 (웹 프론트 프레임워크)프로그래밍/꼬꼬개 (개발 이야기) 2021. 9. 16. 20:10
어느 날 누군가에게 이런 질문을 받았습니다.
자신이 순수 html로 작업을 하고 있는데,
Html이 점점 많아지면서 매번 navbar를 각각의 Html에 복붙 하고 있답니다.
그런데 이렇게 하면 좋은 점수(국비 발표)를 받지 못할 것 같으니
혹시 한 군데서 쓰고 다른 곳에서 다 불러와서 쓸 수 없냐고 물어보더군요.
이 질문을 받은 저는 정말 아무생각 없이
"컴포넌트나, nuxt에서 쓰는 레이아웃 개념하고 비슷하게 들리네요.
vue나 react를 이용하세요!"
라고 답했고, 질문을 했던 친구는
"vue가 뭐죠..?"
라고 답했습니다.
그래서 저는 또 아무생각 없이
"자바스크립트 프레임워크에요~"
라고 말하자 그 친구는
"프레임워크가 뭐죠..?"
라고 답했습니다. 그리고 받아본 그 친구의 소스코드에는
제이쿼리가 이용되고 있더라고요.
저는 국비를 다녀본 적은 없지만, 주변의 사람들을 보면
순수 바닐라 자바스크립트나, 프레임워크라는 큰 개념들을 이해하지 못한 채
단순히 기능을 쉽게 구현하기 위해 제이쿼리를 쓰는 걸 꽤 자주 목격했습니다.
이건 그 사람의 문제라기 보단 일부 국비 시스템의 문제겠죠..
그래서 준비한 오늘은 '프레임워크란 무엇인가?' '또 어떤 것들이 있는가?'에 대해 포스팅하고자 합니다.
프레임워크란 무엇인가?
이 포스팅에서 전달하고자 하는 것은 웹 그중에서도 프론트앤드인 자바스크립트의 프레임워크에 대한 것입니다. 그러나 그전에 프레임워크가 무엇인지부터 알아야겠죠?
프레임워크(framework)는 단어 그대로 살펴보면
Frame(틀) + work(일하다)
틀과 일하다 라는 단어가 합쳐진 단어입니다. 즉 틀을 갖고 일을 하는 것이죠.
아직 감이 안 오실 겁니다.
이렇게 생각해보죠. 우리가 실생활에서도 일을 하다가 어느 순간 자기가 무의미하게 정말 비효율적으로 뭔가를 계속하고 있단 생각이 든 적이 있지 않나요?
비효율적이지 않더라도 불편하다고 느끼는 순간들도 있을 테고요.
예를 들어보죠.
'네모'라는 나라가 있었습니다. 여기선 사람을 부를 때 앞에 '볼페 슐레겔 슈타인 하우젠 베르거 도르프'를 넣어서 불러야 합니다. 이름을 적을 때도 말이죠.
사람을 부를 때
"볼페 슐레겔 슈타인 하우젠 베르거 도르프 네모야~"
내 이름을 적을 때
"볼페슐레겔슈타인하우젠베르거도르프 시 네모"
모두 불편해하지만 계속 이렇게 해와서 별 다른 생각이 없었습니다.
그러던 어느 날 누군가 새로운 모임을 만들어서 그 모임 안에서는 '시네모!'라고만 불러도 "'볼페 슐레겔 슈타인 하우젠 베르거 도르프 시네모' 라고 알아듣자!"라고 하기 시작했고,
볼페 슐레겔 슈타인 하우젠 베르거 도르프 시 네모"가 공식적이고 기본적인 이름 부르기 방법이지만, 그 모임 안에서는 누구든 앞의 긴 문자를 떼고 불러도 문제가 없었다고 합니다.
자바스크립트를 계속하다 보면 어느 순간, 정말 긴 코드인데 반복적으로 해줘야 하는 일들이 생겨납니다.
예를 들면 클래스 선택자인 document.querySelector를 생각해봅시다.
const button = document.querySelector('.div_button")
이런 식의 코드를 계속 반복적으로 코딩하다 보니 사람들은 지치기 시작했습니다.
그때 누군가
"우리 모임을 만들자. 이 모임의 이름은 '제이쿼리'야."
"여기선 $(.div_button)이라고만 써도 알아서 const button = document.querySelector('.div_button") 와 똑같이 작동되게 해 줄게!"라고 하기 시작한 거죠.
이렇게 자바스크립트의 반복적이고 비효율적인 기능을 쉽고 빠르게 할 수 있는 것이 자바스크립트 프레임워크입니다.
현재는 vue, react, angular, svelte 등 프레임워크의 종류도 많고, 각각의 기능도 뛰어나서 제이쿼리를 쓰지 않는 추세지만, 아마 모든 프레임워크의 등장은 아주 기본적인 생각에서 나왔을 것입니다.
"불편한 걸 편하게 하고 싶다"
이 마음을 이해한다면 프레임워크는 어렵고 복잡한 것이 아닌
그저 개발자를 더 편하게 해주는 하나의 도구라는 생각이 들 것입니다.
각각 프레임워크의 장단점에 대해선 다음 포스팅에서 알아보도록 하죠!
'프로그래밍 > 꼬꼬개 (개발 이야기)' 카테고리의 다른 글
Stack Overflow Developer Survey 2021 짚어보기! (0) 2021.10.02 Js 프론트엔드 프레임워크 종류(React, Vue, Angular, svelte) (0) 2021.09.24 개발 입문자를 위한 유튜브 안내서 (코딩 유튜버 추천) (0) 2021.09.11 [꼬리에 꼬리를 무는 개발이야기] Ep.02 프론트 엔드 vs 백 엔드 (0) 2021.09.10 [꼬리에 꼬리를 무는 개발 이야기] EP.01 어떤 개발자가 있나요? (0) 2021.09.06