일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c++
- git
- 백준
- 주석
- 게임서버개발
- 폴링vs이벤트
- sqld
- MFC
- 오픽
- Backtracking
- 알고리즘
- BFS
- SW개발자를 위한 성능좋은 SQL
- clean code
- SQLD 이론
- Javascript
- SQLD이론
- Python
- 클린 코드
- beautifulsoup
- sqld요약
- 서버최적화
- DP
- 서버아키텍처
- N-Queen
- 오픽 초보
- 자청
- 클린코드
- 역행자
- 파이썬
- Today
- Total
가취공부하자

deque란 무엇인가? deque는 파이썬의 List와 같이 요소들을 담아두는 배열이다. FIFO (First In First Out) 방식인 queue와 비슷하다. deque는 선입선출(FIFO), 선입후출(FILO) 모두 지원한다. deque VS list - Deque는 위에서 설명한 것 같이 양끝 요소 삭제/추가 기능을 지원하기 때문에 해당 기능을 실행할 때 시간 복잡도가 O(1)이다. - 파이썬의 List는 고정된 사이즈의 메모리를 갖는 array형태이다. 1 2 3 4 5 마지막 원소를 삭제하면 O(1)이지만, 1 2 3 4 첫 번째 원소를 삭제할 경우 각 원소를 앞으로 이동시키기 때문에 시간 복잡도는 O(n)이다. 1 2 3 4 5 2 3 4 5 따라서 마지막 원소 삽입/삭제에는 리스트와 덱..

input 예시 5 123 456 789 1011 1213 sys.stdin.readline()을 사용한 경우 for문을 통해 입력값을 받는다. => sys.stdin.readline은 한 줄씩 입력받는다. import sys n = int(input()) data = [int(sys.stdin.readline()) for i in range(n)] print(data) #결과 [123, 456, 789, 1011, 1213] sys.stdin.read()를 사용한 경우는 한 번에 입력 값을 받는다. (ctrl+z로 종료시킬 때까지) import sys n = int(input()) data =list(map(int,sys.stdin.read().split())) print(data) #결과 [123, ..
1. 가설 및 데이터 요구사항 정의 데이터 기반 의사결정을 하기 전에 SMART(Specific, Measurable, Acceptable, Relevant, Timely)로 비즈니스 목표를 명확히 파악해야 한다. 해결하려는 문제를 명확히 파악한 후 데이터 수집을 해야 한다. 2. 데이터 소스 데이터 소스에 대해서도 분명히 밝혀야 한다. 어떤 데이터를 사용할 것인지 (회사 내 데이터, 직접 추출 등..), 직접 추출한다면 어떻게 추출할 것인지 파악해야 한다. 3. 데이터 수집 통찰력을 얻기 위해 필요한 대상이 무엇인지 확실히 파악하였으니 다음 단계는 데이터 수집이다. 여기서 유용한 팁은 대표 표본 (Representative sample)을 확인하는 것이다. 대표 표본은 전체 인구를 정확하게 반영하고 분..
비즈니스 인텔리전스 (BI, Business Intelligence) 대용량의 구조화된 데이터와 비정형 데이터를 처리할 수 있어 대량의 데이터를 쉽게 해석할 수 있다. 데이터에 대한 통찰력을 기반으로 새로운 기회를 파악하면 기업은 경쟁 우위와 안전성을 얻을 수 있다. 예측 분석 (Predictive Analytics) 미래 혹은 알려지지 않은 사건에 대한 예측을 하기 위해 과거의 데이터 및 현재 경향을 분석하는 머신러닝 같은 통계 모델의 적용이 예시이다. 여기에는 위험 평가 및 의사결정을 위해 모델을 생성하고 데이터 기능 간의 관계를 포착하는 작업이 포함된다. 텍스트 분석(Text Analytics) 구조화된 혹은 비 정형화된 텍스트 데이터에서 품질 정보를 유도하는 프로세스이다. 텍스트 분석은 비즈니스를..
1. 리스트 정렬 a = [1,2,3,4] a.sort() #역순 정렬 a.sort(reverse=True) 2. SET을 이용하여 중복 제거하기 my_list = [1,2,3,3,4,5,6,7] my_set = set(my_list) #집합 set으로 변환 my_list = list(my_set) #list로 변환 print(my_list) # 결과 # [1,2,3,4,5,6,7] 3. enumerate() 함수 enumerate 함수는 기본적으로 인덱스와 원소로 이루어진 튜플을 만들어준다. 인덱스와 원소를 다른 변수에 할당하고 싶으면 unpacking을 해줘야 한다. for entry in enumerate(['A','B','C']) : print(entry) #결과 (0,'A') (1,'B') (2..
오늘은 RESTful 사용자 서비스를 구현해보았다. 사용자 정보를 읽고, 수정하고, 추가하고, 삭제하는 API를 만들어 보았다. 1. 웹 어플리케이션 틀 구현 from flask import Flask, jsonify, abort, make_response, request app = Flask(__name__) @app.route('/') def greeting(): return "This is RESTful API" if __name__ =='__main__': app.run(debug=True) 위 코드를 실행하고 "http://127.0.0.1:5000/" 주소로 들어가면 "This is RESTful API"를 확인할 수 있다. 2. 사용자 정보를 읽는 HTTP GET을 구현한다. from fla..

REST의 개념 - HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD 기능(Create, Read, Update, Delete)을 적용하는 것을 의미한다. - REST는 자원 기반의 구조 (ROA, Resource Oriented Architecture) 설계의 중심에 자원(Resource)이 있고 HTTP Method를 통해 자원을 처리하도록 설계된 아키텍처이다. 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다. 더보기 URI란? URL과 차이점은? https://www.charlezz.com/?p=4..

다른 파일에 작성한 함수를 호출하려는데 호출이 안돼서 찾아보았더니 파일명을 대문자에서 소문자로 바꾸니 해결되었다.. 그래서 한번 파이썬의 변수나 파일이름 짓는 규칙을 찾아보았다. 패키지와 모듈의 이름 - 패키지와 모듈 모두 이름은 짧아야하고 전부 소문자여야 한다. - 패키지는 가독성을 위해 밑줄(_)을 쓸 수있다. - 모듈은 밑줄을 권장하지 않는다 + 패키지는 폴더, 모듈은 함수나 변수 또는 클래스를 모아놓은 파일 클래스의 이름 - 클래스는 Capitalized형식(첫글자만 대문자 나머지 소문자)를 따른다. Exception 이름 - 예외는 클래스와 동일하기 Capitalized형식(첫글자만 대문자 나머지는 소문자)를 따른다 - 다만, 맨 뒤에 "Error"로 끝내는 것을 권장 상수, 변수, 함수, 함수..
https://www.siksinhot.com/ 식신 : 대한민국 No.1 맛집검색,맛집추천 전국부터 해외까지 없는 맛집이 없는 No.1 맛집 정보 & 추천 서비스 국민맛집 식신! www.siksinhot.com 오늘 실습의 목표는 '식신'사이트에서 강남을 검색해 상위 10개 맛집에 대한 정보를 추출하는 것이다. 실습 순서는 1. 식신 페이지의 HTML 요소를 읽어온다. 2. 강남 상위 10개 맛집 url 링크를 추출한다. 3. 해당 링크에서 맛집 이름, 주소, 전화번호 정보를 추출한다. 첫 번째, 식신 페이지의 Html요소를 읽어오기 from bs4 import BeautifulSoup from threading import Thread import urllib.request from urllib.pa..

일반적으로 많은 웹 어플리케이션은 기본적으로 동기식(synchronous)이다. 클라이언트 -----> 서버에게 요청 서버는 비지니스 작업/메소드 수행 서버------> 클라이언트 응답 위 순서대로 순차적으로 발생하므로 동기식으로 이뤄진다. 클라이언트는 요청하고 응답을 기다리는 동안 블록된다. 일반적으로 웹 서버는 이를 위해서 스레드 풀을 사용한다. 오늘은 응답을 기다리는 블록이 발생하지 않는 비동기식 방식 연결을 실습했다. 비동기식 방식은 일방적으로 요청을 받으면 응답을 보내지 않고 작동하는 것이다. from email.mime import application import tornado.ioloop import tornado.web import httplib2 class AsyncHandler(tor..