전체 글
SSL & TLS 및 암호화 방식
작년부터 올해 초까지 Secure Connection과 Certificate Authentication을 통한 통신 기능에 대해 구현해야 했었는데, 당시 SSL에 대해 어렴풋이 알고 있었지만, 실제로 해당 내용을 다뤄보니 꽤나 헷갈리고, 어려운 내용이었습니다. 해당 기능을 마무리 하면서 알게된 내용들을 블로그에 정리해 보려고 합니다. SSL (Secure Socket Layer) 및 TLS(Transport Layer Security) 먼저, SSL과 TLS에 대해 알아야 합니다. SSL은 TCP/IP 4 Layer 중 전송계층(Transport)상에서 클라이언트와 서버에 대한 인증 및 데이터 암호화를 수행합니다. 응용계층에서부터 TCP 전송계층 사이에서 안전한 채널을 형성해 주는 보안용 프로토콜입니다...
VAST란? - (2) VAST & VPAID
지난 글에서 비디오 광고의 종류의 대해서 알아보았습니다. [https://roothyo.tistory.com/93] VAST란? - (1) 비디오 광고 및 종류 VAST에 대해 알기 위해서는 먼저 비디오 광고와 그 종류들을 알아봐야 한다. 비디오 광고는 동영상이 나오는 환경에서 스트리밍 동영상, 애니매이션, 게임 및 음악 동영상 콘텐츠를 비롯해 다양 roothyo.tistory.com 이제 이 비디오 광고를 하기 위한 표준인 VAST에 대해서 알아보도록 하겠습니다. VAST(Vidwo Ad Serving Template) VAST는 미국 인터넷 광고 협회(IAB, Interactive Advertising Bureau) Tech Lab에서 지정한 비디오 광고 전달 양식 표준입니다. XML 형식으로 Med..
VAST란? - (1) 비디오 광고 및 종류
VAST에 대해 알기 위해서는 먼저 비디오 광고와 그 종류들을 알아봐야 한다. 비디오 광고는 동영상이 나오는 환경에서 스트리밍 동영상, 애니매이션, 게임 및 음악 동영상 콘텐츠를 비롯해 다양한 콘텐츠가 구동 전, 구동 중, 구동 후에 나오는 광고를 의미한다. (IAB, Interactive Advertising Bureau 미국 인터넷광고협회) Forbes에 따르면, 마케팅 담당자의 거의 90%가 광고 켐페인에 비디오 광고를 사용하며, 70%의 시청률을 주로 확보할 수 있다. 비디오 광고주는 주로 2가지 목표를 갖는다. 시청자에게 풍부한 광고 경험을 제공 시헝한 광고 경험에 대한 반응 및 사용자 상호 작용 세부 정보 확인. 온라인 동영상 광고는 온라인이나 모바일로 제공되는 동영상 광고를 비롯해 유튜브와 ..
[프로그래머스] 베스트앨범 - JavaScript
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..
CSR vs SSR (Rendering 기법의 차이)
이 글에서는 Server Side Rendering과 Client Side Rendering의 차이점을 공유하고자 합니다. 상반된 관계에 있는 방식인 만큼 장단점이 서로 엇갈려서 서로의 장단을 정확하게 알고 적재적소에 필요한 방식으로 구현하는 것이 중요하다고 생각합니다. SSR (Server Side Rendering) SSR은 서버측에서 렌더링이 되고 나온 결과물을 클라이언트에 전달하는 방식을 의미합니다. User가 WebSite 요청을 보냅니다. Server는 'Ready To Render'. 즉, 즉시 렌더링 가능한 html 파일을 만듭니다. 렌더링 된 HTML과 함께 클라이언트가 자바 스크립트를 다운받습니다. 다운 받아지고 있는 사이에 유저는 컨텐츠는 볼 수 있지만, 사이트를 조작할 수는 없습니다..
TLS(Transport Layer Security) 알고리즘 (HTTPS & SSL )
웹 서비스에서 주로 사용되는 HTTP는 암호화 되지 않은 평문을 데이터로 전달하게 되는데, 통신이 되는 도중에 패킷을 훔쳐보는 *스니핑 공격에 대응하기 위해서 TLS를 적용합니다. 스니핑(Sniffing) 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것 TLS(전송 계층 보안)은 웹에서 암호화를 구현하는데 가장 널리 사용되는 프로토콜입니다. TLS는 암호화 프로세스의 조합을 사용하여 네트워크를 통한 보안 통신을 제공합니다. TLS가 있는 TCP/IP 프로토콜 스택은 HTTP -> TLS -> TCP -> IP 입니다. TLS는 보안과 성능상 이슈로 두 가지의 암호화 방법을 혼용해서 사용합니다. 1. 대칭키 암호화 (Symmetric key algorithm) 2. 비대칭키 암호화 (A..
JavaScript - 이벤트 루프(Event Roop) [런타임 모델]
JavaScript의 런타임 모델은 코드의 실행, 이벤트의 수집과 처리, 큐에 대기중인 하위 작업을 처리하는 이벤트 루프에 기반하고 있습니다. 스택 함수의 호출들은 '프레임' 스택을 형성합니다. 인수와 지역 변수는 스택 바깥에 저장되므로 바깥 함수가 반환한 후에도 계속 존재할 수 있습니다. 클로저 환경이 중첩 함수에서 지역 변수에 접근할 수 있는 이유가 이것 입니다. 힙 객체는 힙에 할당됩니다. 힙은 단순히 메모리의 큰(그리고 대부분 구조화되지 않은) 영역을 지칭하는 용어입니다. 큐 JavaScript 런타임은 메시지 큐, 즉 처리할 메시지의 대기열을 사용합니다. 각각의 메시지에는 메시지를 처리하기 위한 함수가 연결돼있습니다. 런타임은 대기열에서 가장 오래된 메시지부터 큐에서 꺼내 처리하기 시작합니다. ..
JavaScript - Promise (프로미스)
비동기적으로 해야할 작업이 많아지면 코드는 자연스레 깊어지고 이는 콜백 지옥을 불러오며 이를 해결하기 위해서 프로미스를 사용한다고 언급한 바가 있습니다. 이번 포스팅은 프로미스에 대해 알아보도록 하겠습니다. Promise는 비동기 작업의 최종 완료 또는 실패를 나타내는 객체입니다.기본적으로 promise는 함수에 콜백을 전달하는 대신에, 콜백을 첨부하는 방식의 객체입니다. Promise는 다음 중 하나의 상태를 가집니다. 대기(Pending) : 이행하지도, 거부하지도 않은 초기 상태 이행(fulfilled) : 연산이 성공적으로 완료됨. 거부(rejected) : 연산이 실패함 대기 중인 프로미스는 값과 함께 이행할 수도, 어떤 이유로 인해 거부될 수도 있습니다. 이행이나 거부 될 때, 프로미스의 th..