본문 바로가기

분류 전체보기137

스파르타 코딩 수업 db연동 및 크롤링 연습 이렇게 영화 url을 입력하면 해당하는 영화 이미지와 제목 그리고 설명을 크롤링해오고 내가 선택한 별점과 코멘트를 기록하면 나타나게 하는 사이트를 만들어보쟈! 크롤링 코드 import requests from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} data = requests.get(url_receive, headers=headers) soup = BeautifulSoup(data.text, 'html.parser') DB 코드 from pymon.. 2021. 11. 8.
크롤링 스파르타 코딩 3주차 크롤링 과제 크롤링하기 위해서는 BeautifulSoup라이브러리와 request라이브러리가 필요하다 import requests from bs4 import BeautifulSoup headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} data = requests.get('https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701',headers=headers) soup = BeautifulSoup(data.text, 'html... 2021. 11. 7.
서블릿 만약 클라이언트에서 요청이 온다면 먼저 서블릿으로 들어간다. 아이디 중복 체크 서블릿 먼저 한글이 나올 수 있게 UTF-8로 인코딩을 해준다 그리고 요청한 userID값을 String userID에 넣어준다. 그 userID값을 가지고 DB와 접근하는 DAO의 함수 로직을 사용한 후 사용자에게 반환해준다. 회원가입 서블릿 회원가입할 때 요청한 모든 값들을 받아 처리해준다. 사용자가 어떤 URL을 걸쳐서 서블릿에 오게 되는 지 web.xml에 설정을 해주어야 한다. 이렇게 servlet-name과 mapping을 통해서 사용자가 회원가입을 할 때 UserRegisterServlet에 접근하기 위해서는 /userRegister에 post message를 보내야 한다고 설정을 해주는 것이다. 2021. 11. 6.
DAO DAO(Data Access Object) : 데이터 접근 객체 : 실제로 DB에 접근해서 CRUD를 수행하는 객체 DB에 접속할 수 있도록 객체 생성 여기서 웹페이지의 로그인, 회원가입 등 여러 로직을 구현해준다. 로그인 회원가입 이렇게 DB와 접속하여 CRUD를 수행하는 로직을 DAO에 작성해준다. 아이디 중복체크 2021. 11. 6.
데이터베이스 구축 Mysql을 통해 db만들기 만든 이 테이블에 접근할 수 있는 JAVABEANS를 만들어야 한다. 테이블의 내용을 포장해서 묶어주는 DTO MySQL과 JSP를 연동하기 위해 JDBC 드라이버가 필요! 그러기 위해선 SQL드라이버를 다운받고 해당 프로젝트의 WEB-INF의 lib 폴더에 드라이버를 넣어준다.! 그리고 buildPath에 추가해준다. 그리고 META-INF에 context.xml를 만들어 connection을 계속 맺고 끊는 작업이 아닌 connection pool를 이용할 수 있게 된다. 이것이 제대로 연결되었는지 확인을 해 보겠다. Connection pool에 접근할 수 있도록 해주는 코드이다 1. InitialContext : 하나의 객체를 만들어주고 2. initCtx 객체를 통해.. 2021. 11. 6.
DataSource jdbc로 데이터베이스에 접근을 하면 DB에 접근할 때마다 connection을 연결했다 끊었다 작업을 해야한다. 이 맺고 끊는 작업을 줄이기 위해서 미리 connection을 만들어 두었다고 DB에 접근하려고 하는 사용자에게 미리 만들어둔 connection을 제공하고 반납한다. 이러한 connection을 모아둔 장소를 connectionpool이라 하고 Datasource는 자바에서 connectionpool을 지원하는 인터페이스이다!! 2021. 11. 6.
jquery 이용 연습 간단하게 이런 팬명록 사이트를 만들어보았고 여기에 닫기 간단하게 아이유님의 팬명록 사이트를 만들어보았다. 1. 글 쓰기 버튼을 누르면 글을 쓸 수 있는 박스가 생긴다 2. 닫기를 누르면 없어진다. 3. 팬 명록 밑에 오늘 서울의 온도를 넣는다. closebox함수는 닉네임과 응원하기 박스를 없애주는 함수고 openbox는 글쓰기를 눌렀을 때 나타나개 해주는 함수이다. 위에는 날씨api를 이용하여 현재의 날씨를 받아와 보이게 해주는 함수이다. 닫기 버튼에 onclick으로 closebox()를 넣어서 닫을 수 있게 해주고 , 글쓰기 버튼에 onclick를 넣어 나타나게 해주었다. 그리고 현재온도는 태그와 태그에 넣어 ajax로 날씨 api를 받아와 jquery로 표현하게 해준다. 2021. 11. 5.
Jquery 간단한 연습 jquery를 이용해 자바스크립트 코드를 짧고 간결하게 작성할 수 있다. 연습하기 위해 간단한 퀴즈를 풀어보겠다 문제1 답 자바스크립트라면 documemt.element 이런 식으로 값을 받아왔을 것이다 하지만 jquery를 사용하면 $('#id').val()를 통해서 해당 id값에 입력한 값을 받아올 수 있다. 위 문제는 값이 없다면 값을 입력하라고 뜨게 하고 있다면 입력한 값을 얼럿하게 하는 간단한 문제이다 문제 2 답 똑같이 input-q2의 값을 받아와 value에 넣어준다. 하지만 이메일 형식 abc@gmail.com에서 도메인 네임만 추출하기 위해서 spilt 함수를 두 번 이용한다. 그 전에 먼저 includes 함수를 통해 입력한 값에 @이 있는 지 없는지를 판별하는 함수를 만든다. 거기서.. 2021. 11. 5.
셸 스크립트 프로그래밍 C언어와 유사하게 프로그래밍이 가능 변수, 반복문, 제어문 등의 사용이 가능 별도로 컴파일 하지 않고 텍스트 파일 형태로 바로 실행 vi나 gedit으로 작성 가능 ==pico, nano gedit ==노트패드처럼 사용 가능 => gui환경에서만 사용이 가능한 것이 위의 다른 스크립트와의 차이점이다 리눅스의 많은 부분이 셸 스크립트로 작성되어 있다. ※magic number #!/bin/bash ==셸 스크립트 가장 상단에 이렇게 매직 넘버를 넣어준다. 이것은 어느 환경에서 실행되는 지 프로그램 이름을 집어넣어주는 것이다 즉 위의 예처럼 적는다면 bin안에 bash에서 실행된다는 의미이다. # which는 위치정보를 알려줌 먼저 mkdir -p/app/script를 만들어 구조 vi first.sh를 통.. 2021. 11. 4.
SED 스크립트에 따라 표준 출력 결과를 편집하여 주는 명령어 실제 파일도 편집해 주는 편집기 역할을 한다. SED [스크립트] [ 파일명] 형태로 사용한다. 주요 옵션 1. 옵션이 없을 경우 해당하는 행을 한 번더 출력한다. 2. -n : 해당하는 행만 출력한다. 거의 필수!! 3. -e : 스크립트를 여러개 사용할 수 있도록 한다. 4. -i : 파일을 실제로 수정하도록 한다. 정규식 : '/regex/p' : 정규식에 해당하는 행을 출력 '/n,/regex/p' : n번째부터 정규식에 해당하는 행을 발견할때까지의 행을 출력 정규식은 '/regex/,/regex/p' 와 같이 여러 개를 지정 가능하다. (or 조건으로 동작한다) 스크립트 명령어 p (print): 해당하는 행을 출력하여 주는 명령어 => '.. 2021. 11. 3.
C++STL sort()함수 sort()함수를 이용한다면 알아서 정렬을 해준다. => 1 2 3 4 5 6 7 8 9 10 이 출력된다. sort( )안에는 정렬하려는 배열의 메모리 주소값을 넣어준다. 따라서 a 는 첫 번째 원소의 메모리주소, a+10은 a 배열의 마지막 원소의 주소까지 정렬한다는 소리다. 하지만 내가 함수를 만들어서 정렬을 바꿀 수도 있다. 만약 오름차순으로 한다면 compare 함수의 return a 10 9 8 7 6 5 4 3 2 1 데이터 묶어서 정렬하는 방법 Student 클래스에 이름과 점수가 있고 operator 함수는 점수가 작을 경우 true값을 반환하게 설정하여 즉 점수가 작은 순서대로 정렬한다. 2021. 11. 2.
병합 정렬(Merge Sort) 키 포인트!! 일단은 반으로 나누고 나중에 합친다! 병합정렬은 퀵정렬가 달라 피벗 값이 없고 항상 반으로 나누는 특징이 있다 이렇게 반으로 쪼개는 단계때문에 O(Nlog N)이 된다. 또한 퀵 정렬과 다르게 정확히 반으로만 나누기 때문에 NlogN이 보장이 된다. 7 4 5 8 6 3 10 9 이런 배열이 있다고 가정하자 이것을 이제 2의 배수의 개수만큼 합친다. 근데 그때 오름차순으로 정렬하면서 합친다 2^1 : 4,7 5,8 3,6 9,10 2^2 : 4,5,7,8 3,6,9,10 2^3 : 3,4,5,6,7,8,9,10 이렇게 2의 승으로 진행되기 때문에 많은 데이터를 다룰 수가 있고 이 때문에 시간복잡도가 logN이다. 위의 표를 사각형으로보면 가로는 N이고 높이는 logN이다 따라서 총 시간 복.. 2021. 11. 1.