전체 글
-
DOM이란?프로그래밍 기초 공부 2022. 11. 16. 23:54
[ 브라우저의 렌더링 과정 ] 파싱 텍스트 문서의 문자열을 토큰으로 분해하고, 토큰에 문법적 의미와 구조를 반영하여 parse Tree 를 생성하는 일련의 과정 소스코드 자체는 텍스트 문서에 불과함 파싱이라는 과정을 거쳐서 문법적인 의미를 부여해야 컴퓨터가 언어를 해석할 수 있음 렌더링 HTML, CSS, JS로 작성된 문서를 파싱하여 브라우저에 시각적으로 출력하는 것 주소창에 url을 입력하면, 브라우저는 HTML, CSS, Javascript 등 렌더링에 필요한 리소스들을 서버에 요청 서버로부터 받은 리소스들을 통해 렌더링을 하는데, HTML, CSS, JavaScript 소스들은 텍스트에 불과하기 때문에 파싱을 통해 브라우저가 이해할 수 있는 자료구조 형태로 만들어야함 HTML이 파싱을 거치면 DO..
-
GraphQL이란?프로그래밍 기초 공부 2022. 11. 14. 01:19
[ GraphQL ] GraphQL(이하 GQL)은 Facebook에서 만든 Graph Query Language로 어플리케이션 레이어 쿼리 언어 GQL은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적 GQL의 문장은 주로 클라이언트 시스템에서 작성하고 호출 API를 위한 쿼리 언어이며, 타입 시스템을 사용하여 쿼리를 실행하는 서버사이드 런타임 GraphQL은 특정한 데이터베이스나 스토리지에 귀속되어 있지 않으며, 기존 코드와 데이터에 의해 대체 [ GraphQL 동작 방식 ] 서버에서는 클라이언트가 GraphQL 방식으로 요청할 수 있는 데이터의 타입들과 각 타입에 대해 요청할 수 있는 필드들을 정의하여 타입 시스템을 구축 각 타입의 각 필드에 대한 요청을 해석 및 처리하는 로직을..
-
CI / CD 란?프로그래밍 기초 공부 2022. 11. 11. 18:06
[ CI / CD 배경 ] 사용자에게 프로젝트를 배포했는데 어떠한 동작이 올바르게 동작하지 않아 문제가 발생했다고 가정 -> 개발자들에게는 비상 -> 급한 프로젝트일수록 더욱 빠르게 문제를 수정해야만 함 -> 수정 후 다시 컴파일, 빌드, 배포하는 과정을 통해 수정된 코드가 제대로 동작하는지 테스트하고 검증 -> 이 과정들은 시간도 많이 걸리고 실수하기도 쉬움 -> 수정된 코드에 문제가 다시 생기면 또 다시 과정을 반복해야함 -> 이런 반복 과정을 개발자가 아닌 누군가 자동으로 해주면 좋지 않을까라는 생각에서 CI/CD가 생겨남 [ CI ] Continuous Integration 약자이고, 지속적인 통합을 의미 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어공유 레포지토리에 통합..
-
OAuth란?프로그래밍 기초 공부 2022. 11. 10. 22:26
[ OAuth ] Open Authorization의 약자 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준 사용자들이 타사 애플리케이션이나 웹사이트의 계정에 관한 정보를 공유할 수 있게 허용 다른 서비스의 회원 정보를 안전하게 사용하기 위해서 사용 [ OAuth의 기원 ] OAuth가 사용되기 전에는 인증방식의 표준이 없었기 때문에 기존의 기본인증인 아이디와 비밀번호를 사용 보안상 취약한 구조일 가능성이 높음 기본 인증이 아닐 경우는 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인 ex) 구글의 AuthSub, AOL의 OpenAuth, 야..
-
URL, URI란?프로그래밍 기초 공부 2022. 11. 7. 03:12
30번째로 포스팅할 내용은 URL과 URI에 대한 내용입니다. [ URI ] URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미 인터넷에 있는 자원을 나타내는 유일한 주소 URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다님 [ URL ] URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있음 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토..
-
TCP, UDP란?프로그래밍 기초 공부 2022. 11. 6. 11:50
29번째로 포스팅하게 된 내용은 TCP와 UDP에 대한 내용입니다. [ TCP ] TCP는 Trasmission Control Protocol의 약자 연결 지향적 프로토콜 클라이언트가 연결 요청을 하고, 서버가 연결을 수락하면 통신 선로가 고정되고, 모든 데이터는 고정된 통신 선로를 통해서 순차적으로 전달 TCP 프로토콜은 신뢰성 있는 데이터의 전송을 위해 확인작업을 거치는데 TCP는 패킷을 성공적으로 전송하면 ACK 라는 신호를 날리고 만약에 ACK 신호가 제 시간에 도착하지 않으면 Timeout이 발생하여 패킷 손실이 발생한 패킷을 다시 전송해줌 주로 lient와 Server 또는 P2P Socket 통신 등, 네트워크를 사용한 통신을 할 때 TCP 통신을 많이 사용 [ TCP특징 ] 연결형 서비스로..
-
세션, 쿠키, 토큰이란?프로그래밍 기초 공부 2022. 11. 4. 00:29
28번째로 포스팅하게 될 내용은 세션, 쿠키, 토큰에 관한 내용입니다. [ 세션, 쿠키, 토큰 등장 이유 ] HTTP 통신은 요청 -> 응답이 종료되면 stateless한 특징 때문에 연결을 끊는 처리 방식 이러한 문제를 해결하기 위해 생김 로그인과 같은 일을 할 때, '누가' 로그인 중인지 상태를 기억하기 위해 쿠키, 세션, 토큰을 사용 Connectionless 프로토콜(비연결 지향) 클라이언트가 서버에 요청을 했을 때, 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식이다. Stateless 프로토콜(상태정보 유지 안함) 클라이언트의 상태 정보를 가지지않는 서버 처리 방식이다. 클라이언트와 첫번재 통신에 데이터를 주고 받았다 해도, 두버재 통신에 이전 데이터를 유지하지않는다 [ 쿠키 ] HTTP의 ..
-
CDN(Content Delivery Network)란?프로그래밍 기초 공부 2022. 11. 3. 16:33
27번째로 포스팅하게 될 내용은 CDN에 관한 내용입니다. [ CDN ] Content Delivery Network의 약자 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술을 의미 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화 HTML 페이지, javascript 파일, 스타일시트, 이미지, 동영상을 비롯한 인터넷 콘텐츠를 로드하는 데 필요한 자산을 신속하게 전송할 수 있음 CDN은 각 지역에 캐시 서버(PoP, Points of presence)를 분산 배치해, 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달 ..