TodayILearned
-
[네트워크] web socket 알아보기TodayILearned 2021. 8. 2. 01:18
프로젝트를 진행하면서 채팅에 사용한 socket 통신에 대해 더 잘 알아보고싶다는 생각이 들었다. 요즘 듣고있는 네트워크 강의 중, UDP, TCP 소켓에 대한 이야기가 나오는데, 처음엔 그 소켓이 이 소켓인 줄 알았다.. 나와 나같은 사람을 위한 글이다. 전송 계층의 소켓 전송계층에서 사용하는 소켓은, 애플리케이션 계층에서 데이터 패킷을 전송할 때 사용하는 연결부라고 생각하면 된다. 데이터를 주고받기 위해서는 소켓을 연결해 사용한다. 마치 전기를 사용하기 위해서는 전기가 흐르는 장소가 필요하고, 그 전기를 소켓에 플러그를 꼽아 사용하는 것 처럼. 종류는 TCP/UDP가 있다. *패킷 : 데이터 묶음의 단위 웹소켓 프로토콜 웹소켓 프로토콜은 전송계층의 소켓 중 TCP 소켓을 통해 동작하는 애플리케이션 계..
-
실행컨텍스트와 클로저TodayILearned/javascript 2021. 6. 25. 17:33
poiemWEB,제로초님의 블로그글을 읽고 공부한 내용을 정리했습니다. 실행컨텍스트 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념 브라우저가 스크립트를 실행하는 순간, 전역 컨텍스트가 생성됨( 모든것을 관리하는 환경) 이후 함수를 호출할 때 마다 함수 컨텍스트가 하나씩 생성된다. 컨텍스트의 네가지 원칙 전역 컨텍스트 생성 후, 함수 호출 시 마다 컨텍스트가 생성 컨텍스트 생성 시 컨텍스트 안에 변수객체(variavle, argument), scope chain, this가 생성됨 컨텍스트 생성 후 함수 실행, 사용되는 변수들을 변수 객체 안에서 찾고 없다면 스코프 체인을 따라 올라가며 찾는다. 함수 실행이 마무리되면 해당 컨텍스트는 사라짐(클로저 제외) 페이지가 종료되면 전역 컨텍스트는 사라짐. ..
-
자바스크립트는 싱글스레드인가?TodayILearned/javascript 2021. 6. 24. 17:22
자바스크립트는 싱글스레드 언어이다. 그래서 코드가 위에서부터 아래로 순차적으로 실행된다. 하지만 정작 웹페이지를 만드려고 코딩을 하다보면, 비동기와 같은 단어가 등장한다. 자바스크립트의 작동원리 자바스크립트는 싱글 스레드 언어가 맞다. 메인스레드가 하나이기 때문이다. 그래서 한번에 한개의 작업만을 처리하는데, 이것을 동기적이라고 한다. 이러한 특성 때문에 오래걸리는 작업이 콜스택에 걸리게되면, 유저는 느린 작업을 경험하게 된다. 그러나 자바스크립트의 런타임이 이러한 단점을 보완해준다. 자바스크립트를 실행시키는 엔진은 브라우저마다 다르다. SpiderMonkey : 파이어폭스 / V8 : 크롬 / Webkit : 사파리 / Chakra : 익스플로러, 엣지 자바스크립트 엔진은 변수와 객체에 대한 메모리를 ..
-
The Complete JavaScript Course 2021(2)TodayILearned/javascript 2021. 6. 23. 23:30
2021.06.22 - [TodayILearned/javascript] - The Complete JavaScript Course 2021(1) The Complete JavaScript Course 2021(1) 유데미의 the complete javascript course를 듣고 정리한 내용입니다. 자바스크립트란? 자바스크립트는 고수준 언어이고, 객체 기반의 언어Object-oriented programming (OOP)이며, 멀티 패러다임 언어이다. 자바.. tuigun.tistory.com 이어서 쓰는 글 Function calling other Fucntion, 함수내에서 또다른 함수 호출하기 함수 내에서 또다른 함수를 호출하여 사용이 가능하다. DRY (Don't repeat your sel..
-
The Complete JavaScript Course 2021(1)TodayILearned/javascript 2021. 6. 22. 23:05
유데미의 the complete javascript course를 듣고 정리한 내용입니다. 자바스크립트란? 자바스크립트는 고수준 언어이고, 객체 기반의 언어Object-oriented programming (OOP)이며, 멀티 패러다임 언어이다. 자바스크립트의 역할? 웹 상에서 HTML은 콘텐츠를 표시하고, CSS는 어떻게 보여줄 지 구현하고, 자바스크립트는 웹 앱을 운영하는 프로그래밍 언어 역할을 한다. 자바스크립트의 원시타입? 1. NUMBER 2. STRING 3. BOOLEAN 4. Undefined 5. Null 6. Symbol (ES2015) 7. Bigint (ES2020) 이 중 1~3이 가장 중요한 원시타입이다. Javascript has dynamic typing 자바스크립트는 직접 ..
-
프로그래머스 최댓값과 최솟값TodayILearned/알고리즘 2021. 6. 14. 11:40
최댓값과 최솟값 난이도 : 하 문자열 코드 def solution(s): answer = '' a = s.split() lst = list(map(int,a)) m = max(lst) n = min(lst) answer = str(n) + ' ' + str(m) return answer 풀이 map, min과 max 내장함수를 이용했다. str을 형변환해서 int로 바꾸어 비교한 다음 다시 str로 변경하여 answer에 담았다.
-
프로그래머스 짝지어제거하기TodayILearned/알고리즘 2021. 6. 14. 01:23
짝지어 제거하기 종류 : 스택/큐 난이도 : 하 코드 def solution(s): answer = [] lst = list(s) for i in range(0,len(lst)): answer.append(lst[i]) while(len(answer) >= 2): if(answer[-1] == answer[-2]): answer.pop() answer.pop(-1) break if answer: return 0 else: return 1 return answer 풀이 주어진 문자열(s)를 list함수를 이용해 배열로 만든다. 배열의 길이만큼 answer에 문자를 하나씩 push(append)한다. 만약 answer의 길이가 2 이상이고, 문자열 두개를 비교했을 때 같다면, 순서대로 pop한다. 단 무한반..
-
리프레시 토큰이 필요한가?TodayILearned/TILWIL 2021. 6. 3. 10:20
로그인이 필요한가? 오쿠 프로젝트를 시작할 때, 로그인을 도입하느냐 마느냐에 대한 이야기가 나왔다. 로그인 기능이 없다면, 클라이언트에서 보내는 요청에 대해 유저를 식별할 수 없다. (HTTP는 한번 요청과 응답을 받고나면 그 연결이 지속되지않고 끊기기 때문에) 만약 유저를 식별할 수 없다면, 오쿠 내에서 누가 입찰하였는지 정보를 식별할 수 없고, 그로인해 구매자와 판매자를 이어주려는 서비스 자체가 불가능 할 것이라고 생각했다. JWT, 쿠키-세션 로그인 JWT 로그인 방식을 채택했다. 다 장단점이 있지만 쿠키세션로그인은 쿠키 허용안하면 못쓰는거아닌가.. 리프레시 토큰이 필요한가? 리프레시토큰 리프레시 토큰은, JWT로그인 방식에 사용되는 JWT의 보안상의 단점을 보완하기 위해 구현한다. 사용자가 로그인..