일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Django
- airflow.cfg
- http
- TCP
- 종류
- 데이터베이스
- PYTHON
- 정리
- Docker
- 컴퓨터네트워크
- Go
- AWS
- dockerfile
- 데이터 웨어하우스
- 데이터 파이프라인
- TIL
- S3
- airflow
- 자료구조
- 데이터 엔지니어링
- 가상환경
- redshift
- sql
- linux
- 운영체제
- 파이썬
- 컴퓨터 네트워크
- 데브코스
- HADOOP
- 데이터엔지니어링
- Today
- Total
목록Programming Language (14)
홍카나의 공부방
결론부터 이야기하면 겉으로 봐서는 큰 차이가 없다. li = [1,2,3,4,5]에서 li.append(10)을 하면 li는 [1,2,3,4,5,10]이 될테고 위에서 append가 아닌 li = li + [10]을 해도 결과는 li = [1,2,3,4,5,10]이 된다. 하지만 list.append() 메소드는 O(1) 시간 복잡도로 동작하며, 리스트의 + 연산은 O(n) 시간으로 동작한다. append는 쉽게 말하면 메모리 공간 하나를 더 할당해서 이어 붙이는 작업만 하므로 상수시간인 O(1)만 소요된다. li = li + [10] 연산은 우변의 li + [10]을 계산하기 위한 새로운 리스트 객체가 만들어진다. 이후 L2에 대입이 되는데 li를 전부 베껴야하므로 O(N)의 시간이 소요된다. 겉으로 ..
웹의 동작 방식과 동기/비동기 방식이 뭔지 이해해보자. 우선, 웹의 동작 방식은 위 그림으로 쉽게 이해할 수 있다. 먼저 웹 클라이언트가 웹 서버로 Request를 보내면, 웹 서버에서는 요청에 대한 Response를 보내는 구조로 동작한다. ( DHCP 통신, DNS 통신, IP 주소 할당 등은 복잡하니 생략하고, 위 구조로 일단 쉽게 이해해보자. ) 웹 클라이언트는 쉽게 말해서 크롬, 엣지와 같은 웹 브라우저, 웹 서버는 NAVER, Google과 같은 웹 사이트라고 이해하자. 웹 클라이언트가 서버와 통신하려면 데이터 패킷의 규격인 JSON, XML 등을 따라야한다. 그리고 동기와 비동기 방식에 대해서도 간단히 이해해보자. 동기 방식은 그냥 하나의 프로세스가 순차적으로 업무를 쭉 수행하는 방식이다. ..