전체 글 316

[Python 고급] 1. variable scope, context Manager

1. variable scope 전역변수 지역에서 읽을 수 있음 지역에서의 지역변수와 전역변수의 이름이 같을 때, 전역 변수 선택 시 'global' 키워드 붙여주기 nonlocal 키워드 (global 객체도 아니고 inner block의 변수도 아니므로) closer의 변수에 접근 시 선언식으로 키워드 사용하기 locals() 내부필드-메서드(지역전체) 를 dict로 리턴함 globals() 전역함수/변수를 dict로 리턴 키값에 접근해 값 변경가능 2. Context Manager 원하는 타이밍에 정확하게 리소스를 할당 및 반환 해줌 파일 I/O 시에 전용 클래스로 사용함. with 문과 같이 쓰임 __enter__(self) : with 구문에 진입하는 시점에 자동으로 호출되는 메소드 __exit..

Python 2021.07.31

[Python 중급] 2. 파이썬 병행성

* 병행성(Concurrency) : 한 컴퓨터가 여러일을 동시에 실행함. -> 내가 한 일들의 마지막 시점을 알아야 함. * 병렬성(Parallalism) : 여러 컴퓨터가 여러 일을 동시에 실행 1. 병행성 iterator : 반복가능한 객체를 생산함(iterable) __iter__ : 반복가능한 객체의 함수. 이터레이터가 생산됨. 반복시 iter()함수로 인자 1개씩 접근함 ( next() ) Generator 반복 가능한 객체를 리턴함. 코루틴과 연동하며 작은 메모리 조각을 뜻함. yield시 next()호출시에 리턴할 변수를 출력함. 다음 yield로 이동함 Coroutine 단일 싱글 스레드 스택 기반 비동기 작업 * 스레드(멀티스레드) OS에서 관리. CPU 코어에서 실시간, 시분할 비동기..

Python 2021.07.31

[Python 중급] 1. 파이썬 클래스, 시퀸스, 일급함수

* 이 포스팅은 인프런의 '파이썬 중급' 강의를 듣고 요약한 내용임 1. 파이썬 클래스 심화 클래스 & 메소드 클래스 기반의 개발은 객체지향 개발법으로 코드 재사용을 통하여 중복을 크게 줄일 수 있다. 데코레이터 클래스 메소드 : @classmethod 스태틱 메소드 : @staticmethod (인스턴스나 클래스로 호출이 가능함) 2. 파이썬 데이터 모델 매직 메소드 클래스 안에 정의 할 수 있는 특별한 method - 파이썬의 핵심 구조 built-In : 이미 만들어짐 모든 데이터 타입은 '클래스'임 __add__(), __str__(), __sub__(), __le__(), __ge__() 데이터 모델 추상화 데이터 모델 설계 - NamedTuple : Tuple + dictionary 키, 값을..

Python 2021.07.31

[Python 기초] 반복 가능 자료형

* 이 포스팅은 유튜브 "널널한 교수의 고급 파이썬" 강의를 듣고 요약한 포스팅임 1. 반복가능 자료형과 반복자 반복자 데이터를 꺼내어 이용할 수 있는 객체 리스트, 튜플, range ... (iterable한 객체) __next__() 속성을 가짐 : 해당 메소드로 차례차례 항목을 반환함 list -> iter() => 반복자객체 생성 반복자객체.next() (or __next__() ) 시 항목 반환 인덱스가 넘어갈 경우 Stop Iteration 예외 발생 2. 반복자 객체 생성 def __iter__(self): def __next__(self): # => 반복자는 이 함수를 가져야 함 3. 내장 함수 반복 가능한 객체에 있는 내장 함수 min, max all ( 원소 모두 참일 때 True반환)..

카테고리 없음 2021.07.31

[Python 기초] 리스트 축약 표현

* 이 포스팅은 유튜브 "널널한 교수의 고급 파이썬" 강의를 듣고 요약한 포스팅임 1. 리스트 축약 반복 가능한 객체를 이용하여 쉽게 리스트를 생성하기 map 반복 가능한 객체에 원소들을 각각 탐색해서 함수의 반환값을 모아서 새로운 객체 형태로 반환해줌 a = [1.2, 2.5, 2.1, 5.5] a = list(map(int, a))​ # a => [1, 2, 2, 5] filter 특정 조건으로 걸러서 걸러진 요소들로 iterator 객체를 만들어 리턴해줌 filter(적용시킬 함수, 적용할 요소들) def check(n): return True if n // 10 >= 1 else False a = [1, 2, 10, 20] result = filter(check, a) print(list(resu..

Python 2021.07.30

[Python 기초] 파이썬 자료형

* 이 포스팅은 유튜브 "널널한 교수의 고급 파이썬" 강의를 듣고 요약한 포스팅임 1. 자료형과 참조변수 파이썬은 객체지향 언어로 참조변수를 통해 객체에 접근한다. 변수는 동적으로 참조하는 객체가 지정됨 객체당 고유하게 가지는 id값이 있음. 이는 주소와 관련이 있음 또한 하나의 객체에 여러 참조변수가 동시에 참조 가능 자료형 int, float, complex(복소수), str, list ... 리스트 mutable한 객체이며 원소는 모두 같은 자료형이여야 함. 리스트의 요소는 값을 참조하는 참조형임 mutable한 객체이므로 수정이 안됨. .append()시 추가된 원소를 가지는 새로운 객체를 가리키는것. 수정되는것이 아님. * 얕은 복사와 깊은 복사 단순참조로 할당 시, 데이터가 복사되지 않음. 참..

Python 2021.07.30

[ SQLD 이론 심화] Chapter 05. SQL 최적화 기본 원리

1. 옵티마이저와 실행 계획 옵티마이저란 사용자가 질의한 SQL문에 대한 최적의 실행방법을 결정하는 역할을 수행함 이러한 최적의 실행방법을 실행계획이라고 함 다양한 실행 방법중 최적의 실행 방법을 결정함 비용기반 옵티마이저 비용이 가장 적게 드는 실행계획을 선택하는 방식 (비용은 예상되는 시간 또는 자원을 의미함) 테이블, 인덱스 등의 통계정보와 시스템 통계정보를 이용하여 최적의 실행계획을 도출함 인덱스를 사용하는 비용이 전체 테이블 스캔 비용보다 크다고 판단되면 테이블 풀 스캔을 유도함 구성 요소 질의 변환기 : 사용자가 작성한 SQL문을 처리하기에 보다 용이한 형태로 변환 비용 예측기 : 생성된 대안 계획의 비용을 예측하는 모듈 대안계획 생성기 : 동일한 결과를 생성하는 다양한 대안 계획을 생성하는 ..

Database 2021.07.30

[ Nodejs교과서 ] 2. 알아두어야 할 자바스크립트

* 이 포스팅은 인프런 "Nodejs교과서" 강의를 듣고 공부한 요약내용임 1. ES2015+ const, let 블록스코프를 가짐 외부에서 접근이 불가. -> 호이스팅 문제 없음 템플릿 문자열 지원 객체 리터럴 객체의 메서드에 함수 연결할 때 클론 안함 속성명을 굳이 적어주지 않아도 됨 객체의 속성을 동적으로 생성 가능 화살표 함수 this 바인드 방식 상위스코프의 this를 물려받음 비구조화 할당 배열 내의 원소들을 대입받을 때 주로 사용함 프로미스 비동기로 처리하는 명령을 생성시에 인자로 받고 응답을 콜백 처리 시 깊이가 생기지 않도록 할 수 있음. 응답객체가 성공적으로 들어올 경우 resolve - then으로 처리 실패 시 reject - catch로 처리 async / await 비동기 프로그..

Javascript/Node.js 2021.07.30

[ Nodejs교과서 ] 1. 노드 시작하기

* 이 포스팅은 인프런 "Nodejs 교과서" 강의를 듣고 공부한 요약내용임 1. 핵심개념 이해하기 서버 노드는 자바스크립트 애플리케이션이 서버로서 기능하기 위한 도구를 제공함 자바스크립트 런타임 - 런타임 : 특정언어로 만든 프로그램을 실행할 수 있는 환경 - 노드의 내부구조 이벤트 기반 이벤트 발생 시 미리 지정해둔 작업을 수행 이벤트 리스너에 콜백 함수 등록 이벤트 루프 : 이벤트들이 동시에 발생 시 콜백함수들의 순서를 판단 setTimeout - 테스크 큐 : 이벤트 발생 후 호출되어야 할 콜백함수를 기다림 - 백그라운드 : 타이머나 I/O 작업 콜백 or 이벤트리스너가 대기 논블로킹 I/O 오래걸리는 함수는 백그라운드에 둠 논블로킹 : 이전작업의 끝을 기다리지 않고 다음작업을 수행함. I/O 작..

Javascript/Node.js 2021.07.30

[ Javascript ] 스트림

* 이 포스팅은 패스트캠퍼스 "Nodejs" 강의를 듣고 공부한 요약내용임 1. Stream 스트림은 데이터 전송을 위한 공통 구조를 제공하기 위해 사용된다. 파일을 전송받을 때 버퍼 단위로 옮겨서 버퍼 단위로 전송하는 방식 버퍼는 청크 단위로 채워지며 스트림은 보통 큰 데이터를 처리하거나, 비동기적으로만 얻을 수 있는 데이터 처리 시 사용함. 2. 스트림의 종류와 구현체들 Readable 스트림으로 부터 읽을 수 있음 Writable 스트림에 출력할 수 있음 Duplex 입력 및 출력 둘다 가능 TCP Sockets, crypto streams Transform 입력 받은 스트림을 병합해 새로운 스트림을 만듬 JSON 스트림 처리기 줄바꿈으로 분리된 JSON들을 읽어서 data값을 읽음 (chunk가 ..

Javascript 2021.07.30