해시에 대한 개념보다는 C로 해시를 구현하고, data type에 자유롭게 사용할 수 있도록 구현적 측면에서 해시를 다루고자 한다. key-value pair를 구조체에서 별도로 명시하지 않고, entry에 다른 구조체를 포인팅함으로써 더 많은 자료를 다룰 수 있도록 구현하였다. Hash? 해시는 위의 그림과 같이, key 값을 생성하는 `해시 함수(hash function)`를 통해 배열에 어떤 값이 있는지 즉각적을 찾을 수 있는 자료구조이다. 트리의 경우 한쪽으로 탐색을 하여 범위를 좁혀가면서 탐색을 한다. 하지만 해시의 경우 해시 함수를 통해, 찾고자 하는 값의 key를 즉각적으로 알 수 있으므로 탐색에 매우 효율적인 자료구조이다. 하지만 해시에서도 문제점은 있다. `충돌(Collision)`이 발..
요즘 들어, 기술 관련된 글보다는 회고록을 더 많이 쓰는 것 같다.😅 요즘도 열심히 공부를 게을리하고 있다는 증거가 아닐까? 얼마 안 되는 초기 자금을 가지고 자취방을 구하는 좌충우돌에 대해 다루고 휑한 원룸에 사람답게 살기 위한 주옥같은 아이템들을 정리해두고, 나중에도 이사를 하거나 방을 구할 때 나 스스로 참고가 되도록 상세히 써보고자 한다. 전세 vs 월세 월세는 나의 돈을 계속해서 소모하는 것이므로, 처음부터 전세를 구하면 좋다. 하지만 11월 출근을 시작으로 친구 집에 눌러앉아 있던 터라 시간이 오래 걸리는 전세를 바로 구하는 것보다는 월세 30을 구하여 1년은 `240만 원 정도의 손해`를 보고 월세를 구하고자 하였다. 또한 나에게는 여윳돈이 `300만 원` 밖에 없기도 하여, 전세를 구하는데..
사이트에 따라, 로그인을 하기 위해 팝업 창에서 로그인 정보를 입력하는 케이스들이 있다. 따라서 현재 드라이버에서 팝업창으로 접근하기 위한 방법과 이를 적용하면, 쉽게 컨트롤할 수 있다. 구현 하기 from selenium import webdriver class DefaultTest: def __init__(self, address: str): self.options = webdriver.ChromeOptions() # skip ssl self.options.add_argument("--ignore-certificate-errors") self.driver = webdriver.Chrome(chrome_options=self.options) self.address = address def teardow..
일반적인 크롤링을 위한 작업에서는 안전하지 않음 페이지가 발생할 일이 없겠지만, 웹 테스트 시에는 발생할 수 있다. 따라서 안전하지 않음 페이지를 스킵하는 방법을 다루고자 한다. 구현 하기 from selenium import webdriver class DefaultTest: def __init__(self, address: str): self.options = webdriver.ChromeOptions() # skip ssl self.options.add_argument("--ignore-certificate-errors") self.driver = webdriver.Chrome(chrome_options=self.options) self.address = address def teardown(sel..