개념부터 약간 다르다.

 

이건 라이브러리 도구 vs 프레임워크를 비교하는 거다.

 

라이브러리 도구와 프레임워크의 가장 큰 차이는 개발 흐름의 주도권을 누가 가지고 있는가에 달렸다.

 

개발자가 코딩할 때, 라이브러리는 자신에게 필요한 기능만 사용해도 되므로, 개발 주도권이 개발자에게 있다.

 

프레임워크개발 주도권이 프레임워크에게 있다.

(웹 개발을 시작하는 방법부터 기능을 구현하는 모든 것을 프레임워크에서 정해 놓은 대로 따라야 한다.)

 

라이브러리 도구
프레임워크
주도권
* 개발 주도권이 개발자에게 있다.
* 개발자가 코딩할 때, 라이브러리는 자신에게 필요한 기능만 사용해도 된다.
* 개발 주도권이 프레임워크에게 있다.
* 웹 개발을 시작하는 방법부터 기능을 구현하는 모든 것을 프레임워크에서 정해 놓은 대로 따라야 한다.
EX
* 제이쿼리(jQuery)
* D3.js
* 부트스트랩(Bootstrap)
* 리액트(React)
* 앵귤러(Angular)
* 뷰(Vue)

 

부트스트랩의 장점

  • 반응형 디자인 – 스타일과 구조에 반응하고 여러 플랫폼과 호환되는 사용자 인터페이스를 만드는 데 필요한 기능을 제공합니다.
  • 시간 절약 – 각 구성 요소에 대한 우수한 문서를 제공하고 쉽게 사용할 수 있는 리소스를 통해 코드 작성 프로세스를 생략하고 사이트를 신속하게 디버그할 수 있습니다. CSS 전처리기 LESS를 사용하여 사용자 정의 개발 프로세스 시간을 절약할 수 있습니다. 
  • 구성 요소 스타일링 – 프로젝트 요구 사항에 따라 무료로 사용자 정의할 수 있는 다양한 사용자 템플릿, 테마 및 플러그인과 그리드 시스템을 제공합니다.
  • 일관성 및 호환성 – 탁월한 CSS 및 Javascript 호환성을 통해 브라우저 간 일관성이 탁월합니다.
  • 상당한 커뮤니티 지원 – Github에서 사용할 수 있는 무료 오픈 소스 프레임워크로, 개발에 기여하는 상당한 커뮤니티 지원을 제공합니다.

부트스트랩의 단점

  • 유사한 웹 사이트 템플릿 – 일반적으로 제한된 템플릿을 사용하여 Bootstrap으로 만든 웹 사이트와 응용 프로그램을 동일하게 보이게 한다는 비판을 받습니다. 이러한 유사성을 피하려면 시간이 많이 걸리고 이 프레임워크를 사용하는 목적을 능가하는 광범위한 수동 사용자 지정이 필요할 수 있습니다. 
  • 학습 곡선 – 개발자는 프론트엔드 기술에 대한 사전 지식에 따라 클래스 구성 요소 및 조합에 대해 자세히 알아보기 위해 약간의 시간을 투자해야 할 수 있습니다. 
  • JavaScript 라이브러리의 사용되지 않는 리소스 – Bootstrap의 JavaScript는 여러 가지 불필요하거나 사용되지 않는 구성 요소가 있는 광범위하고 실행하기 힘든 라이브러리인 jQuery와 연결되어 있습니다. 이러한 사용되지 않는 리소스는 웹 사이트를 부피가 커지게 하여 성능 면에서 느려지게 합니다. 
  • 재작성 및 재정의 – 상당한 양의 사용자 지정으로 인해 일반적인 부트스트랩 디자인에서 벗어나 호환성 및 일관성 문제가 발생할 수 있습니다.

뷰의 장점

  • 프로그레시브: Vue는 개발 시간을 낭비하지 않고 구성 요소를 개발하는 동안 코드에 점진적으로 마이그레이션하거나 통합할 수 있습니다. 
  • 기존: Vue는 구성 요소 및 애니메이션 관리를 위한 상태 지원을 생성하기 위해 내장 솔루션을 사용하여 상용구 코드를 쉽게 작성할 수 있습니다. 기존 접근 방식은 Vue로 전체 개발 프로세스를 더 빠르게 만듭니다. 
  • 유효 크기: Vue의 새 버전이 출시될 때마다 프레임워크가 더 가볍고 빨라집니다. Vue의 최적화 기능을 통해 개발자는 디버깅이나 코드 조정보다 기능 추가에 더 집중할 수 있습니다. 
  • 기능적 확장: Vue는 기능 기반의 추가 API 기능 세트를 제공하므로 구성 요소 로직을 유연하고 광범위하게 구성할 수 있습니다. 결과적으로 응용 프로그램 구성 요소는 기능면에서 더 읽기 쉽고 확장 가능합니다.
  • Future Ready: Vue는 강력한 프로덕션 환경으로 유명하므로 애플리케이션을 업데이트하거나 정기적으로 버그 수정 또는 개선 사항을 확인할 필요가 없습니다. 기본적으로 프레임워크 업데이트가 더 쉽습니다. 

뷰의 단점

  • 커뮤니티: Vue에는 언어 이해력이 부족한 커뮤니티가 있습니다. Vue가 중국 전역에서 인기를 얻으면서 대부분의 토론이 중국어로 이루어지기 때문에 영어를 사용하는 개발자가 프레임워크를 배우고 리소스를 공유하기가 어렵습니다. 
  • 코드 반응성: Vue의 양방향 바인딩 특성은 애플리케이션 전체에서 구성 요소를 만들고 동기화하는 데 유용합니다. 그 결과 DOM에 의해 트리거된 데이터 청크 또는 기능의 일부가 렌더링됩니다. 
  • 지원: Vue는 여전히 젊은 프레임워크로 간주됩니다. 커뮤니티가 상대적으로 작기 때문에 개발자는 대규모 프로젝트에서 발생하는 문제를 처리하는 데 어려움을 겪습니다. 
  • 유연성 위험: 유연성이 있고 옵션을 사용자 지정하는 것은 항상 합리적이지만 Vue는 너무 많은 유연성을 제공합니다. 너무 많은 옵션이 프로젝트를 과도하게 복잡하게 하여 오류와 코드 불규칙성을 초래하는 프레임워크로 종종 인식됩니다. 
  • 리소스 제한: Vue의 생태계는 광범위하지만 여전히 대부분의 외부 도구 소스 및 기타 프레임워크와 일반적으로 호환되는 플러그인 및 도구를 제공하지 않습니다. 또한 대부분의 사용 가능한 리소스에 대한 지원이 부족합니다. 

'Programming' 카테고리의 다른 글

쿠키, 세션, 토큰, JWT가 뭔지 알아보자 ! -쉬운설명  (1) 2021.10.06
프로그래밍이란?  (0) 2020.09.06

Cookei

쿠키가 뭔지 일단 알아보자~!

서버는 쿠키를 사용해서 너의 브라우저(크롬, 엣지 등)에 데이터를 넣을 수 있단다.

너의 관한 것을 기억하려고.

 

일단, 니가 사이트에 방문하면 너의 브라우저는 서버에 페이지를 요청하겠지.

 

서버가 응답할때 필요한 데이터(니가 요청한 데이터)와 함께

 

너의 브라우저에 보낼 쿠키가 있을 수 있는 것이지!

 

서버 -------------< CSS, HTML, Datas.... & Cooikes >-------> 브라우저

 

일단 받았으니깐,

 

브라우저는 쿠키를 저장하고, 

 

그 웹사이트에 접속할때 마다. 브라우저는 요청할때 쿠키도 같이 보내게 될거야. !

 

쿠키는 사이트마다 달라, 엄밀히 말하면 도메인마다 다른거지.

 

korea.com 에서 주고받은 쿠키 (초코칩쿠키) 와 japan.com 에서 주고받은 쿠키(방사능맛쿠키) 는 다른거지.

 

쿠키는 서버가 정한 기간에 따라 유효기간이 있어

 

쿠키에는 여러가지 정보를 담을 수 도 있어, 이걸로 인증도 가능하고 말이지.

 

내가 항상 쓰는 설정이 있으면 쿠키를 주고 받아서 기존에 쓰던 설정대로

데이터를 불러올수 있어

 

세션을 알아보잦! (Session)

너의 브라우저에서 무언가를 요청을 하게 되면, 쿠키를 주고 받는다고 이야기 했어

 

자 , 로그인이 필요한 웹사이트에서 무언가를 요청해서 데이터를 확인하거나 페이지 이동을

하고싶을때마다 로그인을 해야할까?

 

내가 로그인 한 상태인지 서버는 어떻게 알 수 있지?

 

우리는 한번 로그인을 하고 나면 일정시간동안 , 로그인을 안해도 웹사이트를 이용할 수가 있어.

 

그건 세션이 유지되는 덕분이지 엄밀히 말하면 세션 ID를 서버가 계속 확인하고 있는거라구!

 

로그인을 하게되면 서버는 세션ID를 생성해서 발급해줘

 

마지 임시 출입증이라고 생각하면 좋을것 같아.

 

쿠키를 이용해 브라우저가 갖고 있다가 무언가를 요청할때 다시 이 임시출입증을 쿠키에 담아서 보내겠지.

 

그러면, 서버는 쿠키에 담겨진 세션ID를 가지고 너가 누군지 알수 있단 말인거야~

 

옹키동키?

 

참고로 세션을 이용해서 IOS나 Android 앱을 만들수는 있지만, 쿠키는 사용할 수 없어 

그건 브라우저에만 해당되는 얘기야.

 

하지만 이럴경우 토큰(Token)을 사용해.

서버에 토큰을 보내는거지~ 마찬가지로 토큰을 서버에 보내고, 서버는 토큰으로 누구인지 찾는거지.

 

어쨌든, 세션에서 가장 중요한건, 로그인한 유저들의 모든 세션ID를 DB에 저장해놓아야 한다는 것이야.

많은 유저들이 접속 했을때는 그만큼의 세션DB 자원도 더 많이 많이 필요하게 되는 것이지.

 

그래서 JWT를 쓰기도 해 JWT는 토큰방식으로 처리하기 때문에 세션DB를 가질 필요가 없지.

서버는 유저 인증하느라 많은 일을 하는 수고로움이 덜어지지.

 

JWT와 세션의 차이점은 무엇일까?

세션은 로그인정보를 주고 나면 세션ID를 생성해서 DB에 저장하고, 그 정보로 인증을 하지.

JWT는 아주 긴 String형태의 토큰을 생성해서 (ID 정보가 담긴) 브라우저에 넘겨주고

다시 받을때 이정보를 분석해(위조된 토큰인지, 무슨정보가 담겼는지) 유저가 맞는지 판단하는거지.

단, JWT는 암호화 되지 않은 문자열이라, 궁금하겠지만, 보안관련한 내용은 여기서 다루지 않을거야.

하지만 리소스를 필요로 하지 않는점과 개발의 심플함은 굉장한 매력이지.

 

요약.

*쿠키 = 전달 매개체

*토큰 = 서버가 기억하기 위한 특정텍스트 모음

*JWT = 정보를 포함한 토큰, 정보가 들어있으므로 DB없이 검증가능.

 

------------------------------------------------------------------------------------------------------------

[참조 : 해당 내용은 유튜브 -

노마드코더의 [세션 vs 토큰 vs 쿠키? 기초개념 잡아드림. 10분 순삭!]와

기타 IT관련 서적, 및 IT관련 웹사이트 등에서 참조하였습니다. ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming' 카테고리의 다른 글

부트스트랩(Bootstrap) vs Vue  (0) 2022.03.16
프로그래밍이란?  (0) 2020.09.06

 컴퓨터와 인간간의 커뮤니케이션

 

 컴퓨터의 처리를 인간이 원하는 의도대로 하기 위해서 일련의 명령어로 작업을 지시하는 것

 

 때문에 컴퓨터가 이해할 수 있는 커뮤니케이션 방식이 필요

 

 프로그래밍 언어란 결국 커뮤니케이션용 언어일 뿐

 

 실제 세계의 언어마다 특징이 있듯이 프로그래 밍 언어들도 그 특징이 있다.

 

 사람과 사람 사이에 통역사가 있듯 컴퓨터와 사 람 사이에도 통역사가 필요하다, 자바에서는 JDK가 통역사

 

+ Recent posts