본문 바로가기

분류 전체보기

도커? Docker란? 도커 설치 도커의 로고를 보면 고래가 많은 컨테이너를 실은 모습이다. docker는 부두, 항만 노동자를 의미한다. 즉 컨테이너를 다룬다는 것이다. 기존의 클라우드는 분산되어 있는 서버를 빌려 컴퓨팅 자원을 끌어다가 서버 등을 사용한다. 사용자가 직접 서버 관리를 할 필요가 없어서 비용이 절감된다. 애플리케이션 배포를 자동화하는 오픈소스 엔진도커는 컨테이너라는 애플리케이션 자동화 기술을 더 쉽게 사용할 수 있도록 만들어졌다. 컨테이너는 설치, 실행에 필요한 정보와 설정과 자료를 한 곳에 모아둔 것이다. 정형화된 규격에 맞춰 제품을 넣으면 운송 수단에 관계 없이 효율적인 운송이 가능해 질 것이라는 아이디어에서 비롯된 것이다. LXC(LinuX Containers)로 만든 컨테이너는 고유의 파일 시스템, 프로세스, 네..
Scrapy IndexError: list index out of range 크롤링 할 때 비어있는 값에 접근하면 이런 오류가 난다. span이 비어있으면 나는 에러. item['achievement'] = info.xpath('div[3]/span[1]/text()')[0].extract()해결 방법은 Try로 시도해보고 IndexError가 날 때 예외처리를 해주는 것이다.try: item['achievement'] = info.xpath('div[3]/span[1]/text()')[0].extract() except IndexError: item['achievement'] = 'no' https://stackoverflow.com/questions/11902458/i-want-to-exception-handle-list-index-out-of-range
Scrapy 간단 Selector 크롤링하고 싶은 데이터가 있는 사이트 상의 HTML 문서에서 데이터 선택하는 방법 selector 방식에는 css, xpath가 있다. response.xpath('//base/@href').extract()의 의미는 parse 함수에서 사이트를 돌고 난 뒤 response를 반환하는데 이 response에는 사이트 문서가 있다. 문서를 xpath라는 selector를 사용해서 태그에 접근한다는 것이다. //의 의미는 모든 자식을 의미한다. //base이니까 모든 base 태그를 선택하는 것이다. /@href는 자식 중에 속성이 href인 것을 선택하는 것이다. extract()는 선택한 것을 리스트 형식으로 추출한다는 것이다. scrapy 문서상에선 extract_first() 대신 get()을 쓰고 ..
웹 크롤링 이슈 - 저작권, 사이트 크롤링 정책 다음 내용은 정확하지 않을 수 있다. 링크의 종류 저작권법 허용1. 단순 링크 - 사이트 대표 주소를 링크2. 직접 링크 - 특정 게시물을 링크 저작권법 위반3. 프레임 링크 - 저작물의 일부를 홈페이지에 표시4. 임베디드 링크 - 저작물 전체를 홈페이지에 표시 다른 사이트에서 직접 만들거나 돈 주고 사온 데이터를 함부로 긁어와서 자신의 사이트에 게시하는 것은 저작권 위반의 소지가 있을 수 있다. 로봇 배제 표준 (robots.txt)웹 사이트에 로봇이 접근하는 것을 방지하기 위한 규약사이트의 로봇 규약을 보고 싶다면 주소 창에 사이트 url/robots.txt 입력 모두 허용User-agent: *Allow: /모두 차단User-agent: *Disallow: / User-agent: googlebot..
SQL Query online test site RDBMS 켜서 일일이 스키마 짜고 DB 만들고 테이블 만들고 하기 좀 번거로운 경우, 아래 사이트에 들어가서 미리 작성 된 테이블에 쿼리를 작성해 테스트해 볼 수 있다. https://sqltest.net/ 오라클, mysql 사용 가능 http://sqlfiddle.com/ 오라클, mysql, postgresql, sqlite, mssql 사용가능 https://sqlzoo.net/wiki/SQL_Tutorial 튜토리얼이 있음. 퀴즈를 풀면서 실제로 sql 쿼리 작성하고 결과 볼 수 있다. https://www.testdome.com/tests Database Technologies 카테고리에 가면 테스트 해볼 수 있다. 많은 기업과 개인 시험 응시자들이 사용한다고 한다. 아마 자신의 실력을 검증..
스카이에듀 개인정보 유출 sky edu 고딩 때 생물 강의인가 뭐 들으려고 가입해서 결제하고 들었던 게 있었다.여튼 내 개인정보가 스카이에듀에 있었다는 건데... 갑자기 뉴스에 스카이에듀 개인정보 유출이 떠서 확인해보니역시 털려있다... 인터파크도 털렸었는데 또 털리네... 미국은 페이스북이 개인정보 불법적으로 활용하고 유출해서 논란이 크게 났는데한국은 그냥 기사 몇 개 나고 사과문 발표하고 프리패스 몇 개 던져 주고 끝나려나... 1:1 문의로 어떻게 보상할건지 글 남기긴 했으나... 뭐 개인정보 유출로 크게 보상해준 전례가 없는 한국이라 잘 모르겠다. 이상한 데서 전화 자꾸 오면 스카이 에듀에 항의해야겠다.뭐 어떻게 대처하라는 건지.. 사과 공지도 팝업에 대충 띄워서 유야무야 넘어가려는 건가 탈퇴한 회원도 털렸다는데 이건 뭐 관리를 어떻게..
View에서 CRUD가 되나? 되는 경우가 있고 안되는 경우가 있다!! 면접관에게 View의 특징을 설명하다가 CRUD 된다고 했는데... 안된다는 답변을 받았다. 그래서 찾아보니 되는 경우가 있고 안되는 경우가 있다. 면접관분께서는 아마 데이터베이스 상에 저장되지 않는 정보니까 CRUD가 안된다고 생각하셨나보다. select 해서 read는 되는 건데... 아니라고 해서 그냥 아 제가 잘못 알고 있었습니다. 라고 수긍해버렸다. http://www.mssql.org/LectureSQL/02_sql2k/view_05.htm
해시 해쉬 해시테이블 해쉬테이블 Hash Hash Table 해쉬 함수에 검색하고자 하는 키 값을 넣으면 해쉬 알고리즘에 의해 해쉬코드가 나온다. 이 해쉬코드를 가지고 배열의 인덱스로 환산해서 값에 접근한다. 그렇기 때문에 해쉬코드만 알면 바로 값을 알 수 있어 검색 시 속도가 굉장히 빠르다. 키는 문자열, 정수, 파일값 등 다양한 입력 자료형이 올 수 있다. 해쉬코드는 항상 같은 길이의 값이 나오게 된다. collision??시간 복잡도 O(1)이지만 collision이 많을 경우 O(n)이다. collision은 동일한 인덱스 공간 안에 값이 여러 개가 있는 경우이다. 해쉬코드로 인덱스 접근을 했는데 보니까 n개의 값이 들어있다면 일일이 확인해야 하므로 최악의 경우 O(n)이다. 이런 문제를 해결하기 위해 값을 골고루 분산시키는 해쉬 알고리즘이 중요하다. 해쉬..