반응형 분류 전체보기580 [SQL] JOIN의 필요성 JOIN문 : 여러 테이블을 합칠 수 있게 하는 SQL문 1. 테이블을 왜 쪼개는가? 2. JOIN의 종류 3. 문법 1. 테이블을 왜 쪼개는가? JOIN문은 여러 테이블을 합칠 수 있게 해주는데, 애초에 테이블을 왜 나누는걸까? 여러분이 데이터베이스 관리자라고 해보자. 여러분은 회사 내 업무 별 담당 직원과 그 직원의 정보를 저장하고 있는 데이터 베이스를 관리하고 있는 상황이다. 여기서 김헌창 팀장은 업무 a와 e를 맡고 있고, 이에 따라 해당 테이블에는 중복 데이터가 발생했다. 데이터베이스에서 발생하는 중복 데이터는 나중에 데이터를 관리할 때 매우 좋지 않은 영향을 끼친다. 예를 들어 업무 e를 김헌창 팀장이 아닌 김주역 신입이 맡는걸로 변경 되었다고 하면 직급~비고까지 컬럼의 데이터를 하나하나 모두.. 2020. 11. 7. 이분탐색 고득점 kit 풀이 완료, 후기 이분탐색 알고리즘은 두 가지 선택지(true/false) 중에서 하나를 판단하고 범위를 좁혀 나가서 효율적으로 정답을 찾는 알고리즘이다. 이 알고리즘의 응용으로 1부터 10억까지 숫자중 상대방이 고른 숫자를 yes or no 문답 식으로 약 30번의 질문안으로 맞힐 수도 있을 정도로 매우 효율적인 알고리즘이다. 이분탐색 알고리즘을 프로그래머즈에서 처음 접해봐서 그런지 2개의 문제들은 모두 쉽지 않았다. 접근법을 떠올리는건 동적계획법, 그리디 알고리즘보다 다소 어려웠지만 매우 재미있는 알고리즘인 것 같다. 이 문제들을 풀면서 이분탐색 기법으로 어떻게 접근하는지 충분히 감을 익힐 수 있었다. 제일 먼저 할 일은 정답이라고 가정할 적당한 값을 세우는 것인데, 보통 정답이 될 수 있는 범위의 중간값으로 세우게 .. 2020. 11. 5. [이분 탐색, 난이도 상] 프로그래머즈, 징검다리 출발지점부터 도착지점 사이에 놓여져 있는 돌들 중에서 n개를 뺀 상태의 모든 경우에서, 각 지점 사이의 거리들의 최솟값들중 가장 큰 값을 구하면 되는 문제이다. rocks의 순서는 뒤죽박죽 하기 때문에 오름차순으로 정렬해주고 시작해야 한다. 우리가 구해야 하는 답(바위를 n개 제거한 뒤 각 지점 사이의 거리의 최솟값 중 가장 큰 값) 을 미리 적당한 값으로 세워두고, 실제 정답이 미리 세워둔 값보다 큰지 작은지 판단하고 범위를 좁혀 나가면 된다. 바위를 몇개 제거해야 미리 세워둔 답이 실제 정답이 될 수 있는지 계산하는 것이 핵심이다. 그 바위 수는 n개가 나와야 하는 것이다. 입출력 예를 예로 들어보자. 정렬된 바위의 배치 -> [2,11,14,17,21] 각 지점 사이의 거리 (시작점, 도착점도 지점.. 2020. 11. 5. [크롤링, 보충] 웹 요소 선택 정리 크롤링 시 웹 요소를 선택할 때 Beautifulsoup, Selenium 모듈을 사용하는 방법이 대표적이다. 두 모듈의 웹 요소 선택 사용법을 설명 하기 전 필수로 알아둬야 하는 개념 하나를 짚고 넘어갈 것이다. CSS에서 tag, class, id를 선언하여 스타일을 설정할 수 있는데, 선언할 때 이 셋을 구별하기 위한 선언 규칙이 있다. - tag : 그냥 tag명을 쓰면 된다. tag명 { ... } - class : class명 앞에 .을 붙인다. .class명 { ... } - id : id명 앞에 #을 붙인다. #id명 { ... } 사전 지식은 이 정도면 충분하다. 이 CSS문법이 적용되는 메소드가 몇 개 있는데 앞으로 이들은 빨간 표시로 강조 할 것이다. 두 모듈에서 tag, class,.. 2020. 11. 3. [크롤링, 예제 4] Youtube - 필터를 적용하여 영상 목록 보기 동적 크롤링 첫 번째 시간이다 웹 페이지 내에서 특정 요소를 클릭할 때, url는 변하지 않지만 html코드가 변할 수 있다. 예를 들면, 유튜브 검색 목록에서 filter 버튼을 클릭하거나, 댓글 목록에서 스크롤을 내려서 더 많은 댓글을 로드할 때가 위에 언급한 경우에 해당 되는데, 이런 때에는 selenium과 driver을 이용하여 동적 크롤링을 해줘야 한다. 이번 포스팅은 예제 1~3과는 많이 다를 것이므로 더 주의 깊게 보는 것을 권장한다. 0. 크롤링 계획 세우기 유튜브 영상 검색과 필터 적용까지 자동화 할 것이다. 필터는 크리에이티브 커먼즈, 조회수를 적용할 것이다. 크리에이티브 커먼즈는 출처만 남긴다면 재사용이 가능한 영상을 의미한다. 개발자나 영상 편집자들은 주목해야 하는 기준이다. 이 .. 2020. 11. 2. [크롤링, 예제 3] 게임 포럼 사이트에서 정보 긁어오기 (+그래프) 본인이 가끔씩 즐겨하는 스팀 게임 'Geometry Dash' 라는 점프 게임이 있다. 그리고 이 게임의 포럼 사이트 pointercrate.com 에서는 관리자들이 선정한 가장 어려운맵 top 150을 확인할 수 있다. 이 150개의 맵 정보들을 위 사이트에서 크롤링하여 여러 재밌는 통계를 내보며 python의 matplotlib으로 그래프까지 그려보는 시간을 가질 것이다. 0. 크롤링 계획 세우기 가장 어려운 150개의 레벨마다 맵 이름, 플레이 타임(맵 길이), 클리어 인원, 클리어 시 얻는 점수 데이터들을 추출한다. 1. 크롤링할 페이지 접속 /demonlist로 접속했다. (pointercrate.com/demonlist) pointercrate.com/demonlist/ 2. 크롤링 가능 여부.. 2020. 10. 31. [크롤링, 예제 2] 레벨 분포 구하기 첫 번째 예제에서는 하나의 페이지 안에서 크롤링을 해보았다. kimcoder.tistory.com/165 [크롤링, 예제 1] 문제풀이 사이트 정답율 추출하기 아래 포스팅을 읽지 않았다면 무조건 읽고 올 것을 권장한다. 설치법과 robots.txt같이 필수적으로 알아둬야 하는 개념이 필요하다. kimcoder.tistory.com/164 크롤링을 위한 준비과정 (Python, selenium, beautif kimcoder.tistory.com 이제 두 번째 예제에서는, 여러 페이지(링크)들을 넘나들며 데이터들을 긁어올 것이다. 또, Selenium을 이용할 것이고 크롤링 도중 새 창이 뜨게 하지 않을 것이다. 이를 위해서 예제 1-3 포스팅도 읽고 오는 것을 권장한다. kimcoder.tistory.c.. 2020. 10. 26. [크롤링, 예제 1-3] Selenium - 새 창 안띄우고 크롤링 하기 저번 포스팅에서의 Selenium 예제에서는 get함수에 의해 새 창이 실행되고, 크롤링 도중에 그 창을 지우면 크롤링이 진행되지 않는다. kimcoder.tistory.com/166 [크롤링, 예제 1-2] 예제 1 - 셀레니움(Selenium) 이용 예제1은 Selenium과 Drive 대신 urllib 라이브러리와 Beautifulsoup 모듈으로 크롤링을 했다. Selenium과 Drive는 필수 사항이 아닐 뿐이지 충분히 이용할 수 있다. 이 포스팅에서는 예제1의 보충수업(?)으로 Bea kimcoder.tistory.com 이번 포스팅에서는 Selenium 사용 시 새 창을 안띄우고 크롤링하는 방법을 소개한다. 저번 포스팅의 코드와 달라진 부분은 4~8번째 줄이다. chrome_options .. 2020. 10. 23. [크롤링, 예제 1-2] 예제 1 - 셀레니움(Selenium) 이용 예제1은 Selenium과 Drive 대신 urllib 라이브러리와 Beautifulsoup 모듈으로 크롤링을 했다. Selenium과 Drive는 필수 사항이 아닐 뿐이지 충분히 이용할 수 있다. 이 포스팅에서는 예제1의 보충수업(?)으로 Beautifulsoup에 Selenium과 Drive를 추가로 이용하여 크롤링을 해볼 것이다. 이 포스팅에서는 아래 예제1 포스팅을 기반으로 설명할 것이다. kimcoder.tistory.com/165 [크롤링, 예제 1] 문제풀이 사이트 정답율 추출하기 아래 포스팅을 읽지 않았다면 무조건 읽고 올 것을 권장한다. 설치법과 robots.txt같이 필수적으로 알아둬야 하는 개념이 필요하다. kimcoder.tistory.com/164 크롤링을 위한 준비과정 (Pyth.. 2020. 10. 23. 이전 1 ··· 45 46 47 48 49 50 51 ··· 65 다음