Flask 활용한 store 만드는 도중
부트스트랩을 처음 접하게 되었다. 부트스트랩이란
부트스트랩에 열광하는 이유는 글자, 인용문, 목록, 표, 입력폼, 버튼, 이미지, 아이콘 등의 자잘한 것 뿐만이 아니라, 드롭다운 메뉴, 버튼, 탭, 리스트, 메뉴바, 페이지 이동 바, 알림 메시지, 썸네일, 진행 바 등의 웹 페이지에서 많이 쓰이는 요소를 거의 전부 내장하고 있고, 입맛에 따라 재사용 할 수 있기 때문이다
게다가 PC용 디자인 뿐만 아니라 태블릿이나 스마트폰 같은 모바일용 디자인도 지원한다.
이 때문에 디자인을 할 시간이 크게 줄어들고, 여러 웹 브라우저를 지원하기 위한 크로스 브라우징에 골머리를 썩일 필요가 없다
오픈소스이며, 상업적으로 이용이 가능하다. 브라우저에 bootstrap template 키워드로 검색하면 어마어마한 양의 부트스트랩 템플릿이 존재하고, 무료로 제공하는 경우도 있으나 유료로 판매하는 경우도 많다. MIT 허가서를 사용하는데, 재배포 면에서는 GPL보다 휠씬 자유로운 라이선스이다
Back-end 개발에서 필요해지는 내용인데요, integrity와 crossorigin 속성은 보안과 관련된 것들입니다. 자바스크립트를 이용한 보안공격에 대비하여 사용되는 것인데요, 실제 웹서비스를 위해 만드는 것이라면, 보안을 위해 항상 사용하는 것이 권장되는 속성입니다.
integrity 속성에 부여된 값을 잘 살펴보면, sha384라는 키워드로 시작하고 있습니다.
어디선가 들어본듯해서 검색을 좀 해보니, 역시나 뭔가 보안과 관련한 내용이 검색결과로 나타납니다.
결론 : 2001년에 만들어진 해시 알고리즘. 현재 표준 알고리즘으로 사용됨.
그렇다면, 해시(hash)란 무엇일까요? 평소에 많이 듣고 또 사용하던 용어였는데 설명을 해보려니 쉽지가 않습니다. 이런 건 대충 공부해서 그런거라 봅니다. 이참에 다시 빡! 살펴두도록 합니다.
우리가 일반적으로 사용하는 글자들은 인터넷 통신을 캡처해서 해킹을 시도하면 '글자 그대로' 노출이 되어 보안적으로는 위험해질 수 있습니다. 그래서 이처럼 사람이 알아볼 수 없는 문자열인 해시함수로 만들게 되는데데, 이때 복호화를 하기 어렵게 '비밀 열쇠'를 사용해서 해시코드로 변환하는 방식을 사용합니다. 이렇게 함으로써 인터넷 통신을 할때 주고 받는 데이터들에 대해 보안적인 측면에서 보다 안전해 질 수 있게 되는 것입니다.
따라서 integrity 속성에 대해 깊이 있게는 잘 몰라도, SHA384라는 표준 해시 알고리즘을 이용해서 생성한 해시코드를 사용하게되면, 주고 받는 데이터가 진짜인지 가짜인지 '진실성'을 판별하기 위한 Back-end 개발 분야에서의 어떠한 '장치' 정도로 이해를 해두면 될 것 같습니다.(주고 받는 데이터에 위조, 변조가 있는지 여부 검증)
crossorigin은 단어가 붙어 있어서 더 눈에 안들어오는 것 같은데요, 중간에 한칸 띄고 Cross Origin이라 생각하면 됩니다.
이해를 위해서는 CORS(Cross Origin Resource Sharing: 교차 출처 자원 공유)라는 개념이 필요합니다
하지만 요즘은 다른 서버에 마구마구 요청해서 받아오는 Open API 같은 걸 안 쓰는데를 찾아보기가 어려운 시대가 되어버렸습니다. 이아 같은 경우, 요청의 출처 즉 기원(Origin)이 어디인지 확인하는 것이 중요한 이슈가 됩니다.
Ajax Call이라는 건 동일한 서버(Origin)를 대상으로 하는 게 기본이지만, 오픈 API처럼 다른 서버에서 콜을 해야 하는 경우에 사용하는 것이 바로 crossorigin에 대한 속성입니다. 이처럼 Crossorigin에 대한 이슈를 해결하는 방법은 '브라우저' 단에서도 가능하지만 보안을 위해서 권장되지는 않고, 해당 이슈는 주로 서버단에서 처리를 하게 됩니다. Back-end 개발자들이 활동하는 영역인 것이죠.