본문 바로가기

분류 전체보기79

Google App Store 리뷰 크롤링 Author : devKya date : 2020.04.19 target URL : https://play.google.com/store/apps/collection/cluster?clp=SiYKGgoUdG9wc2VsbGluZ19mcmVlX0dBTUUQBxgDEgRHQU1FOgIIAg%3D%3D:S:ANO1ljIKXNI&gsr=CihKJgoaChR0b3BzZWxsaW5nX2ZyZWVfR0FNRRAHGAMSBEdBTUU6AggC:S:ANO1ljLQ85c https://www.youtube.com/watch?v=VK112fAfW9A&feature=youtu.be&list=PLMr9Py20DqB8egngaECB2Og1njsoT0u5P 해당 프로젝트는 내가 참여하여 진행한 것은 아니지만 앞부분 데이터 수집(앱에.. 2020. 7. 9.
C* Digital Academy 강의 * 해당 글은 페스트캠퍼스 실습조교로 6/22 ~ 6/25일(총32시간) 까지 진행된 Fastcampus 주관 C* Digital Academy 강의 내용을 정리한 것이다. 이 강의 과정은 C* 내 CBP 과제 중심 전문인력 육성 프레임 중 첫번째 단계인 AI 입문단계로서 강의 내용이 입문자 중심으로 구성되었다. 구성을 간략히 살펴보면, 1. 파이썬 문법 기초 2. 파이썬 라이브러리를 활용한 EDA 3. 파이썬을 활용한 웹 크롤링 강사님의 강의중 좋았던 내용들만 간략하게 정리하고자 한다. 1. 파이썬 문법 파이썬에 대해 어느정도 알고 있는 사람들이라면 파이썬 문법에 관한 내용이 지겨울 수 있다. 하지만 Fastcampus 실습 조교를 반복적으로 하다 보니 파이썬 문법에 대해 반복적으로 듣게 되었다. 해당.. 2020. 7. 9.
PyQt5 & Pyinstaller 사용한 Excel 저장 프로그램. 1. 개발 동기 회사 업무를 보던 도중 회계 장부를 Excel로 정리함에 있어서 불편함을 느꼈다. 리스트에 사용 내역을 추가하고 지출결의서를 따로 만들어 사용함에 있어 이중으로 작업을 하게 되어 개발하게 되었다. page1 page2 2. 설계 1. python module openpyxl 을 사용하여 Excel을 컨트롤. -> didimdol.py, seoul.py 2. PyQt5의 Designer을 사용하여 Ui를 제작. -> mainUi.py 3. Pyinstaller을 통한 exe파일 생성. -> main.py 3. 개발 과정 및 소스 openpyxl 모듈에 대한 정보는 google에 자세하게 나와있고 어렵지 않았다. 영수증 사용 내역을 디딤돌과 서울시 두 군데에 작성해야 되기 때문에 파이썬 파일.. 2020. 6. 3.
06. 연결 리스트(Linked List) 연결 리스트 연결 리스트(linked list)는 값과 다음 노드에 대한 포인터가 포함된 노드로 이루어진 선형 리스트이다. 마지막 노드는 Null값을 갖는다. 연결 리스트의 크기는 동적일 수 있다. 삽입 시간복잡도는 O(1)이다. 검색 및 시간복잡도는 O(n)이다. FIFO 연결 리스트 2020. 6. 1.
05. 데크(deque) & 우선순위 큐(priority queue) 데크(deque) 스택과 큐의 결합체로 볼 수 있다. 양쪽 끝에서 항목의 조회, 삽입, 삭제가 가능하다. 우선순위 큐(Priority Queue) Queue와 비슷한 추상 데이터 타입이지만, 각 항목마다 연관된 우선순위가 있다. 두 항목의 우선순위가 같으면 큐의 순서를 따른다. 힙을 이용해 구현한다. 힙(Heap) 각 노드가 하위 노드보다 작은(또는 큰) 이진 트리이다. 균형 트리의 모양이 수정될 때, 다시 균형 트리로 만드는 시간복잡도는 O(log n)이다. 최대 최소값을 구하기 위해 만들어졌다. 최대힙(max heap) 구현하기 우선순위 큐 구현하기 2020. 6. 1.
04. 컬렉션(Collection) 컬렉션(Collection) 컬렉션 자료구조는 데이터를 서로 연관시키지 않고 모아두는 컨테이너(container) 이다. 맨버십 연산자 : in 크기 함수 : len 반복성 set and dictionary Set 반복 가능하다. 가변적이며 중복 요소가 없다. 정렬되지 않는 데이터 타입이다. 즉 인덱스 연산을 할 수 없다. 중복 요소를 제거할 수 있다. 시간복잡도 O(1) 이다. 딕셔너리(dictionary) hash table로 구현되어 있다. 특정 객체에 해당하는 임의의 정수 값을 상수 시간 내에 계산한다. 연습문제 단어 횟수 세기 애너그램 문장 또는 단어의 철자 순서를 바꾸는 놀이 주사위 합계 경로 주사위를 두 번 던져서 합계가 특정 수가 나오는 경우의 수와 경로를 구해보자 단어의 중복 문자 제거 .. 2020. 6. 1.
03. 스택(Stack) & 큐(Queue) 스택(Stack) LIFO(Last in, first out)구조이다. 즉, 배열의 끝에서만 데이터에 접근할 수 있다. 배열 인덱스 접근이 불가하다. 시간복잡도 : O(1)이다. stack의 동작 push : 스택 맨 끝에 항목을 삽입 pop : 스택 맨 끝 항목 반환 및 제거 top/peek : 스택 맨 끝 항목 반환 empty : 비어있는지 확인 size : 스택 크기 확인 스택 구현 1. python list를 활용한 stack 구현 2. Node(객체)의 컨테이너로 Stack 구현 2020. 5. 26.
02. Built-in Sequence Type 파이썬의 내장 시퀀스 타입 내장 시퀀스(sequence) 데이터 타입은 다음과 같은 속성을 갖는다. 맴버십 연산 : in 키워드 사용 가능 크기(size) 함수 : len(seq) 사용 가능 iterability slicing 가변성(mutable) vs 불변성(emutable) 가변형 타입 : 리스트, 바이트 불변형 타입 : 튜플, 문자열, 바이트 배열 얕은 복사(shallow copy) vs 깊은 복사(deep copy) 코드 참조 네임드 튜플(named tuple) 일반 튜플과 비슷한 성능과 특성을 갖지만, 인덱스뿐 아니라 이름으로 참조 가능 tuple과 마찬가지로 immutable 하다. 바이트와 바이트 배열 원시 바이트(raw byte)를 처리하는데 사용할 수 있는 데이터 타입이다. 불변 타입 .. 2020. 5. 12.
01. 숫자 숫자 파이썬에서 정수는 int 이며 immutable 하다. 정수의 크기는 4Byte(32bit)이다. 최대공약수(GCD) 유클리드 호제법을 사용 최소공배수(LCM) 최대공약수를 이용하여 lcm을 구할 수 있다. gcd를 g라고 가정하면 a = ga, b = gb 이다.(단, a, b은 서로소) lcm은 gab 이므로 lcm = a * b / gcd(a, b) 라고 할 수 있다. 피고나치 수열(Fibonacci sequence) 피고나치 수열(fibonacci sequence)은 첫째 및 둘째 항이 1이며, 그 이후의 모든 항은 바로 앞 두항의 합인 수열 1 1 2 3 5 8 13 21 ... find_fibonacci_seq_iter()의 시간복잡도는 O(n)을 갖는다. find_fibonacci_se.. 2020. 5. 8.
00. 시간복잡도 시간복잡도 알고리즘의 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것. 알고리즘의 최적화를 위해 필요하다. 알고리즘의 시간복잡도는 주로 빅-오 표기법을 사용하여 나타낸다. 빅-오 표기법은 계수와 낮은 차수의 항을 제외시켜 간소화한다. 상수 시간(Constant time) 알고리즘이 입력 크기에 구애받지 않는 값에 의해서 한정된다면, 상수 시간이라고 말 할 수 있다. 예를 들어, 단 하나의 연산이 어떤 배열에서의 요소 위치를 알아내는 것을 수행한다고 할 때, 이 요소의 접근하는 것은 상수 시간이 걸린다. 선형 시간(Linear time) T(n) = O(n) 수행시간이 입력 크기에 따라 선형적으로 증가한다. 예를 들어, 리스트의 모든 요소를 더하는 알고리즘.. 2020. 5. 8.
[Scrapy] 11. PipeLine(2) URL : https://www.alexa.com/topsites 참고 URL : https://docs.scrapy.org/en/latest/topics/item-pipeline.html contents 1. Pipeline 초기화 메소드 2. Item CSV 저장 3. Item Excel 저장 1. Pipeline 초기화 메소드 & CSV, Excel 저장 Pipeline 초기화 메소드를 선언하기 전에 items.py 을 설정해준다. built in function(내장함수)인 __init__()를 사용하여 초기화 한다. 엑셀과 CSV로 저장하기 위해서 workbook, worksheet, file_opener를 선언한다. pipelines.py 의 process_item 메소드에 엑셀과 csv 파일.. 2020. 4. 16.
[Scrapy] 10. PipeLine(1) URL : https://www.alexa.com/topsites 참고 URL : https://docs.scrapy.org/en/latest/topics/item-pipeline.html contents 1. Pipeline 설명 2. Pipeline 설정 및 메소드 3. Amazon Alexa 크롤링 연습 & Validation 추가 및 테스트 1. PipeLine 설명 Spider가 아이템을 크롤링 한 후에 파이프 라인으로 전송되어 구성 요소를 처리한다. (1) HTML 데이터 정리 (2) 스크랩 된 데이터 유효성 검사(항목에 특정 필드가 포함되어 있는지 확인) (3) 중복 확인 및 삭제 (4) 스크랩된 아이템을 DB 저장 2. Pipeline 설정 및 메소드 설정전에 settings.py 에서 P.. 2020. 4. 16.