본문 바로가기

분류 전체보기

(170)
HTTP란? HTTP의 메세지 구조 HyperText Transfer Protocol(HTTP)? :인터넷에서 클라이언트와 서버가 데이터를 주고 받을 수 있는 규칙(프로토콜) - 무상태 프로토콜이며 이는 서버가 요청 간에 어떠한 상태나 데이터를 유지하지 않는다라는 것(저장 X) 그래서 cookie와 session을 이용한다. - 일반적으로 TCP/IP 레이어를 기반으로 사용한다. **TCP/IP 알아보기 HTTP는 요청 응답으로 구분된다. 📣요청메세지 1.메소드를 맨 앞에 (GET) , 그 다음 Path (경로) , 프로토콜 버전 2.Host~부터 리소스를 요청하는 경로, 즉 요청하고자하는 서버의 도메인을 적는다. 포트번호(80)제외 3. 2번째 줄 다음부터 HTTP Request Headers부분 🖥️응답메세지 1. 프로토콜의 버전, H..
캐시의 장단점 캐시란? 자주 사용하는 데이터나 값을 미리 복사해놓는 임시 장소를 말한다. 주로 원래의 데이터를 접근하는 시간이 오래 걸리거나 계산을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근이 가능하다. 캐시는 모든 데이터를 담기엔 저장공간이 많지 않아서 힘들다. 그래서 보통 캐시는 지역성을 나누어 분류한다. 1)시간적 지역성 데이터가 한번 접근 되고나서 금방 데이터에 다시 접근할 가능성이 높은 것을 말한다. 이럴 때 캐시에 저장해놓으면 데이터접근하는 횟수를 줄일 수 있어서 높은 효율성을 나타낼 수 있다. 2)공간적 지역성 특정 데이터와 가까운 주소가 순서대로 접근이 되어 있는 경우를 말한다. 앞으로 사용할 데이터들이 가져올 블록들안에 모여..
프레임 워크 vs 라이브러리 1.프레임워크 개발자가 코드를 짜기 위한 골격,뼈대를 갖춰놓는것을 말한다. 그래서 작업 시 중요한 것만 신경을 쓸 수 있도록한다. 즉, 일정한 형태와 기능을 미리 갖추고 그 안에서 개발자가 필요한 부분만으로도 개발이 가능하도록한다. 2.라이브러리 특정기능을 모아둔 코드, 함수들의 집합, 코드 작성 시 활용하는 도구 즉, 미리 구현해놓고 필요에 따라서 호출하여 사용 🦋 위의 두가지를 비교? 비유해보자면 프레임워크는 자동차,비행기,배와 같이 어떠한 목적에 맞게 사용하고 내가 하나씩 다 조작할 필요 없이 조작 해야할 부분만 조작하면 진행이 가능하다. 그리고 각각의 도구들은 대체가 어렵다. 바다를 건너는데 차를 사용할수는 없기때문이다. 그래서 프로젝트 진행시에도 목적에 맞게 선택하여 사용해야한다. 다음으로 라이..
Parameter & Argument 매개변수(parameter)는 함수 선언의 변수 목록을 나타낸다. 전달받은 인수를 함수 내부로 전달하기 위해서 사용하는 변수이다. 인수(argument)는 함수가 호출될때 전달되는 실제 값이다. function practice (a,b){ //a,b : 매개변수(parameter) return a + b; } practice(2,3); //인수(Argument)
Hoisting & TDZ 호이스팅을 알기 전 실행 컨텍스트를 먼저 알아야한다. 실행 컨텍스트 : 실행할 코드에 제공할 환경 정보들을 모아놓은 객체, 콜 스택에 쌓이게 된다. 실행 컨텍스트는 두 가지 과정으로 생성이 된다. 1) 생성 단계(호출) -variable environment : 현재 컨텍스트 내의 식별자들에 대한 정보, var의 경우 여기에 저장되어서 TDZ에 영향을 받지 않는다. -Lexical environment : 주로 활용되며, 변경사항이 실시간으로 적용된다, let/const의 경우 여기에 저장되어서 TDZ의 영향을 받는다. *environmentRecord : 호이스팅 발생 ( 자바스크립트 엔진은 코드가 실행하기 전 실행 컨텍스트에 속한 변수명을 미리 알고 있다) *outerEnvironmentReferen..
렌더링 과정 렌더링 엔진을 통해서 렌더링이 되며, 이 렌더링 엔진은 브라우저마다 다르다. 과정) 1. DOM,CSSOM생성 - 객체로 생성이 된다. 2.RenderTree 생성 - 스타일 정보가 설정, 실제 화면에 표현되는 노드들로만 구성이 된다. **실제 렌더링 노드? visibility:invisible은 display:none과 달리 공간을 차지한다, 그래서 렌더트리에 포함한다. 3.레이아웃 단계 - 브라우저 뷰포트 내에서 각 노드들의 정확한 위치와 크기를 계산하는 단계 4. Paint - 레이아웃 단계에서 계산이 완료된 요소들의 픽셀 값을 채워넣는다. ex) 텍스트, 색, 이미지, 그림자효과 등 => 여기 과정들을 좀 더 세세히 알아봐두면 좋을 것 같다. 렌더링 최적화) 1.Reflow(Layout) 렌더링 ..
REST API란? :REST를 기반으로 만들어진 API REST(Representational State Transfer)란? 자원을 이름으로 구분 하여 해당 자원의 상태를 주고받는 모든 것 이게 무슨 말인가.. ✅ 정리하자면, 1.HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고 2.HTTP Method(POST,GET,PUT,DELETE,PATCH)를 통해 3.해당 자원(URI)에 대한 CRUD Operation을 적용하는 것 REST 구성요소 자원(Resource) : HTTP URI 자원은 서버에 존재하는 데이터의 총칭이며 모든 자원은 고유의 URI를 가지며 client는 이 URI를 지정하여 해당자원에 CRUD를 수행할 수 있다. 자원에 대한 행위(Ver..
해시함수 1. 해시함수 : 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 변환시켜주는 함수, 블록체인에서는 ‘암호화’를 한다. *SHA-256 - 단 방향 변환 알고리즘이다.(즉, 다이제스트(해시값)를 가지고 입력값을 유추할 수 없다.) 그이유? 입력값이 조금만 바뀌어도 값이 완전히 바뀌는 임의성을 가지고 있기 때문이다. => 이러한 것을 '눈사태효과'라고 한다. - 결과값이 정해진 길이로 나온다.(아무리 길이가 달라도 똑같은 길이의 다이제스트를 가진다.) => 원본 데이터로를 다이제스트를 구할 수 있지만 다이제스트로 원본 데이터를 찾을 수 없다(단방향) 2.해시함수의 단점 1) 인식 가능성 :동일한 입력값이 동일한 다이제스트를 갖는다면 공격자가 다이제스트들을 가능한 많이 확보한 다음, 탈취한 다이제스트와 ..