프로그래밍
-
[Python] List와 Set에서의 in 연산자 성능 비교하기.개발 공부/Python 2021. 6. 22. 15:21
in 연산자를 쓸 때는 set으로 바꿔서 쓰면 빠르다. List에서 in 연산자를 사용하면 사실 상 for문을 한번 도는 것이기 때문에 선형 시간인 O(n)의 시간 복잡도를 가집니다. 제 주변에서 이를 모르고 사용하다가 알고리즘 문제에서 Timeout이 걸리는 경우를 종종 보았는데, List에서 set으로 바꾸고 in 연산을 하면 이러한 부담이 많이 줄어들게 됩니다. List 자료형에서는 in 연산자의 시간 복잡도는 O(n)입니다. a = list(range(1, 10000001)) print(1 in a) # 첫번째 값 print(10000000 in a) # 마지막 값 0.17809176445007324 0.45179247856140137 그래서 1 ~ 10,000,000의 값을 가진 리스트에서 맨 ..
-
[Python] map, int, str 등의 내장 함수는 클래스 타입인데 왜 "함수"라고 부를까?개발 공부/Python 2021. 6. 14. 10:19
예전에 파이썬 수업을 들으면서 궁금했던 점이 있었고, 해당 내용에 대한 정보를 지금이나마 공유하려고 합니다. 파이썬에서 사용하는 int, str, float 등은 클래스라고 알려져 있습니다. 그런데 파이썬 공식문서에서는 이들을 내장 함수라고 분류를 했는데요. 왜 내장 클래스가 아니라 내장 "함수" 라고 하는걸까요? 링크: 왜 파이썬에서 Map과 Filter가 실제로는 함수가 아닌가? 저는 이 외국 블로그를 참고했는데, 여기에 보면 map이나 filter같은 파이썬 내장함수는 사실 함수가 아니라 클래스라고 합니다. map and filter aren’t really functions. They are all actually classes, and when we “call” these functions, w..
-
7. HTTP 헤더 2 - 캐시와 조건부 요청개발 공부/Network 2021. 6. 11. 23:47
본 게시물은 김영한님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 듣고 정리한 내용입니다. 따라서 모든 저작권은 인프런과 김영한님께 있음을 밝힙니다. 혹시라도 문제가 된다면 삭제하겠습니다. 댓글에 남겨주세요. 1) 캐시 기본 동작 캐시가 없다면 원하는 이미지 등의 파일을 서버에 요청할 때, 해당 파일의 헤더, 바디 부분을 요청할 때 마다 새로 받는다. 그래서 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 따라서 느리고, 돈도 많이 나가고, 사용자 경험이 더뎌진다. 캐시를 적용하면 cache-control: max-age=60 이런식으로 요청하면, 캐시가 최대 60초 살아있다는 뜻이다. 따라서 요청한 파일을 캐시에 저장하고, 60초 간은 이 파일이 로컬에 살아있..
-
6. HTTP 헤더 1 - 일반헤더개발 공부/Network 2021. 6. 1. 18:43
본 게시물은 김영한님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 듣고 정리한 내용입니다. 따라서 모든 저작권은 인프런과 김영한님께 있음을 밝힙니다. 혹시라도 문제가 된다면 삭제하겠습니다. 댓글에 남겨주세요. 1) HTTP 헤더 개요 용도 HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등 표준 헤더가 너무너무 많다. 필요시 임의의 헤더 추가 가능하다. HTTP Body 메시지 본문을 통해 표현 데이터를 전달 메시지 본문 = 페이로드(payload) 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 (데이터 유형, 데이터 길이, 압축 정보 등) 2..
-
5. HTTP 상태코드(2xx, 3xx, 4xx, 5xx)개발 공부/Network 2021. 5. 17. 10:07
본 게시물은 김영한님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 듣고 정리한 내용입니다. 따라서 모든 저작권은 인프런과 김영한님께 있음을 밝힙니다. 혹시라도 문제가 된다면 삭제하겠습니다. 댓글에 남겨주세요. 1) HTTP 상태코드 소개 만약 모르는 상태 코드가 나타나더라도, 2xx / 3xx 처럼 몇 백대 오류인지를 파악하여 그에 대한 처리를 할 수 있다. 따라서 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 된다. 1xx 상태코드는 거의 사용하지 않으므로 생략한다. 2) 2xx - 성공 클라이언트의 요청을 성공적으로 처리 보통은 200이나 201을 많이 사용하는 편이다. 회사마다 정해진 규칙이 있다. 200 OK 요청에 성공함. 보통 GET 요청에 대해 정상적으로 응답했..
-
[JavaScript] 3. 원시 타입, 참조타입과 연산자(할당, 비교, 동등비교, 일치비교, 논리, 삼항)개발 공부/Javascript 2021. 5. 10. 00:50
개인적으로 JavaScript를 공부하고 그 흔적을 남기는 곳입니다. 1. 원시 타입 (Primitive Type) 객체(object)가 아닌 기본 타입들을 말한다. 변수에 해당 타입의 값이 담긴다고 생각하면 된다. 다른 변수에 복사할 때 실제로 값이 복사된다. 1-1) 숫자 (Number) 정수, 실수 구분없는 하나의 숫자 타입 부동소수점 형식을 따른다. NaN (Not a Number) : 계산 불가능할 경우 반환되는 값을 지칭 (문자열을 숫자로 나누는 경우 등) const a = 10 // 양의 정수 const b = -5 // 음의 정수 const c = 1.05 // 실수 const d = 3.118e3 // 거듭제곱 const e = Infinity // 양의 무한대 const f = -Inf..
-
[JavaScript] 2. 조건문과 반복문개발 공부/Javascript 2021. 5. 10. 00:13
개인적으로 JavaScript를 공부하고 그 흔적을 남기는 곳입니다. 1. 조건문 (if, switch) 1-1) if statement 조건 표현식의 결과 값을 Boolean 타입으로 변환 후 참/거짓을 판단 조건은 소괄호 안에 작성하고, 실행할 코드는 중괄호 안에 작성한다. const username = 'admin' if (username === 'admin') { console.log('관리자님 환영합니다.') } else if (username === 'manager') { console.log('매니저님 환영합니다.') } else { console.log(`${username}님 환영합니다.`) } 1-2) switch statement 조건 표현식의 결과 값이 어느 case에 해당하는지 판..
-
[JavaScript] 1. JavaScript의 기초, 변수와 식별자에 대해개발 공부/Javascript 2021. 5. 9. 23:44
개인적으로 JavaScript를 공부하고 그 흔적을 남기는 곳입니다. 1. 서론 ECMA : 정보 통신에 대한 표준을 제정하는 비영리 표준화 기구 현재 자바스크립트의 표준이 되는 ES6는 ECMAScript6의 줄임말로, ECMA에서 제안하는 6번째 표준 명세를 말한다. ES6는 2015년에 발표되어, ES2015라고도 하며 이 시기를 기점으로 자바스크립트에 대대적인 변화가 있었다. 세미콜론 자바스크립트는 반드시 세미콜론을 문장의 끝에 붙이지 않아도 된다. 세미콜론이 없는 경우, ASI(Automatic Semicolon Insertion)에 의해 자동으로 세미콜론이 삽입된다. 다양한 코딩 스타일이 있지만, 대표적으로는 에어비앤비의 자바스크립트 코딩 스타일을 따른다. airbnb/javascript Ja..