이 프로젝트는 파이썬을 이용하여 '크롤링'하는 방법을 배우기 위한 프로젝트로 HTML 소스를 가져오기 위한 Requests와 소스를 파싱(분석)하는 BeautifulSoup 라이브러리를 사용한다. 기존에 테크보이 워니 강의를 따라하면서 BeautifulSoup를 처음 사용했는데 너무 뜬금없어서 처음엔 당황했지만 이번 프로젝트를 따라 해보면서 이 라이브러리가 어떤 기능들을 수행하는지 알 수 있었다. BeautifulSoup 라이브러리는 많은 기능이 있기 때문에 자세한 정보는 다음 링크에서 확인 가능하다. : https://www.crummy.com/software/BeautifulSoup/bs4/doc/ Beautiful Soup Documentation — Beautiful Soup 4.9.0 docum..
인간은 서로 소통하기 위해 '언어'라는 수단을 만들었고, 이를 발전시켜 왔다. 네트워크가 활성화되고, 이것이 확장되기 위해서는 이들 또한 '언어'라는 것이 존재해야 한다. 각각의 네트워크 기기(PC, 스마트폰 등등)가 서로 데이터를 주고받기 위해서 통신하기 위한 일종의 규약을 정하였으며, 이를 프로토콜(Protocol)이라 한다. 그리고 이러한 프로토콜들이 모인 복수의 집합체를 네트워크 아키텍쳐라고 하며, 이것이 네트워크 기기의 언어이다. 대표적인 네트워크 아키텍쳐는 TCP/IP이며, 이는 TCP와 IP라는 프로토콜로 이루어져 있다. TCP/IP는 여러 계층적 구조로 나뉘어 있으며, 각각의 층마다 다른 프로토콜을 사용하여 통신한다. (TCP/IP는 4개의 계층이지만, 7개의 계층을 사용하는 OSI 모델 ..
이 프로젝트는 카카오 오픈 API를 사용하여 구현 되었다. 이미지 검색에 있어서 다음 검색 엔진이 사용 되므로, 검색량에 있어서 한계가 있다. 따라서 query의 값(검색 이름)에 따라 출력 결과가 다를 수 있다. import requests import json # 이미지가 있는 image_url을 통해 file_name 파일로 저장하는 함수 def save_image(image_url, file_name): img_response = requests.get(image_url) #요청에 성공했다면 if img_response.status_code == 200: #파일 저장 with open(file_name, "wb") as fp: fp.write(img_response.content) # 이미지 검색..
1. 모의고사 풀이 전략) 각각의 수포자들이 찍는 방식이 패턴이 정해져 있으므로 이 패턴을 하나의 배열로 만든 뒤 일정 수만큼 반복하면 된다. 풀이에 필요한 수학적 원리) 일정한 패턴을 가진 배열(List)의 길이 = n일 때, List[a] = List[a%n] // n만큼 반복되므로 나눴을 때 나머지들은 모두 같은 수를 갖는다. def solution(answers): # 수포자들의 답안 패턴이 존재함 : 배열로 구성 # 각각의 배열을 순회하면서 답안 배열과 같으면 점수 배열 +1 # 점수 배열 중 가장 높은 점수를 받은 인덱스만 출력(+1) supo = [[1,2,3,4,5,],[2,1,2,3,2,4,2,5],[3,3,1,1,2,2,4,4,5,5]] right = [0,0,0] answer = []..
네트워크란 전송 매체로 연결된 장치들의 모임이다. 여기서 장치에는 컴퓨터, 프린터, 스캐너 등등 데이터를 주고 받을 수 있는 모든 장치를 말한다. 네트워크를 사용하면 멀리 떨어진 장치와도 데이터 송수신이 가능하다. 네트워크는 규모에 따라 LAN(근거리 통신망), WAN(원거리 통신망)으로 구분한다. 1) LAN(Local Area Network) 비교적 가까운 거리의 장치들의 네트워크 (ex. 사무실, 인접한 건물 등등) LAN은 장치들을 연결하는 형식(topology)에 따라 링형, 버스형, 스타형 등으로 분류된다. 2) WAN(Wide Area Network) 둘 이상의 LAN이 넓은 지역에 걸쳐 연결되어 있는 네트워크다. (ex. 지역-지역, 국가-국가 등등) LAN을 서로 연결하기 위해선 라우터(..
Class DoublyLinkedList: def __init__(self,item): self.nodeCount = 0 self.head = None self.tail = None self.head.prev = None self.head.next = self.tail self.tail.prev = self.head self.tail.next = None 기존의 Linked List는 다음 노드를 가리키는 Link만 있었다면 양방향(이중 연결) 리스트는 이전 노드를 가리키는 Prev Link도 갖고 있다. Doubly Linked List는 Dummy Node가 head와 tail에 둘 다 있다. 이로 인해 노드의 변경에 작성되는 코드가 간결해진다. 하지만 한 노드에 Data와 두 개의 Link의 값을 ..