[NEXT] Flask 로 Restful API 서버 만들기 YoungSu SonWritten By 정문철
Reviewed By 손영수
Mac에서 Flask로 Restful API 서버를 간단히 만드는 방법입니다
Android Basic 4일차 전에 진행되어야 하는 실습입니다.
PHP로 Slack Bot 만들기Changwan Jun보통 Node나 Python으로는 봇을 많이 만드는데 PHP로는 잘 만들지 않습니다. 하지만 PHP로도 쉽게 만들 수 있습니다. PHP로 아주 약간의 자연어로 대화가능한 봇 만드는 방법을 소개합니다.
12월 Modern PHP User Group에서 발표한 내용입니다.
Light Tutorial DjangoKwangyoun JungLight Tutorial Django
Studybee 3주차 - 가볍게 배우는 장고!!
Django를 이용해 블로그를 만들기 전에 가볍게 Django에 대해 알아보고 익숙해져 봅시다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼Cheol Kang빅데이터, 데이터마이닝, 공공데이터, 오픈데이터 - 그 어느때보다 데이터 분석 및 활용이 중요해진 이 시기에 웹 상의 수많은 공개된 자료를 직접 수집할 수 있는 웹 스크래핑/크롤링 기술은 데이터 수집 및 활용 능력에 큰 도움이 됩니다.
이 강의에서는 크롤링 프레임웍을 사용하지 않고 HTTP, DOM, concurrency를 담당하는 기본적인 라이브러리만을 사용해 직접 웹 스크래퍼를 처음부터(from scratch) 작성해 봄으로써, 언제든 자유도 높은 동시성 크롤러를 직접 구현할 수 있도록 작동 원리를 이해할 수 있도록 합니다.
시연에서 작성된 전체 소스코드는 아래 링크에서 보실 수 있습니다.
https://gist.github.com/cornchz/0ec0c3f5ca69bac2b625
spring data jpa 간단한 튜토리얼라한사 아github : https://github.com/arahansa/learnspringdatajpa
스프링 데이터 Jpa 간단한 튜토리얼 입니다. 초보용^^;
스프링 부트, 메이븐..
내용은 간단한 매핑, CRUD, 페이징, 스프링 부트조금.
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼Cheol Kang빅데이터, 데이터마이닝, 공공데이터, 오픈데이터 - 그 어느때보다 데이터 분석 및 활용이 중요해진 이 시기에 웹 상의 수많은 공개된 자료를 직접 수집할 수 있는 웹 스크래핑/크롤링 기술은 데이터 수집 및 활용 능력에 큰 도움이 됩니다.
이 강의에서는 크롤링 프레임웍을 사용하지 않고 HTTP, DOM, concurrency를 담당하는 기본적인 라이브러리만을 사용해 직접 웹 스크래퍼를 처음부터(from scratch) 작성해 봄으로써, 언제든 자유도 높은 동시성 크롤러를 직접 구현할 수 있도록 작동 원리를 이해할 수 있도록 합니다.
시연에서 작성된 전체 소스코드는 아래 링크에서 보실 수 있습니다.
https://gist.github.com/cornchz/0ec0c3f5ca69bac2b625
spring data jpa 간단한 튜토리얼라한사 아github : https://github.com/arahansa/learnspringdatajpa
스프링 데이터 Jpa 간단한 튜토리얼 입니다. 초보용^^;
스프링 부트, 메이븐..
내용은 간단한 매핑, CRUD, 페이징, 스프링 부트조금.
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)탑크리에듀교육센터(www.topcredu.co.kr)제공
15번째 스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)자료입니다.
Spring JDBC에서 DB 접근하는 방법, Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate, Maven, Gradle에서 오라클 설정에 대해 설명한 자료이니 많은 참고 바랍니다.
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)DK LeeJava web development 06
자바 웹 개발 시작하기
(6주차 : 커뮤니티를 만들어보자!)
2011. 12. 02
벌써 2년도 넘은 자료지만
그래도 필요하신분이 있을지 몰라서...
(지금보니 2년사이 많은것을 배운것 같네요 ㅎㅎ)
C++ 미정의 행동(undefined behavior)은아 정Undefined behavior 미정의 행동에 대한 간단한 재밌는..?? PT번역
https://github.com/boostcon/cppn ow_presentations_2014/blob/mast er/files/Undefined-Behavior.pdf
5. DB 테이블 만들기
이름은 평균적으로 10byte가 넘지 않을 것 같아서 10byte로 하고
Id는 학번으로 숫자 9개 이기 때문에 9byte로
Title은 25글자 이상 안 넘어 가길 바라는 의미에서 50byte로
Context는 글의 본문이기 때문에 데이터의 크기를 제한하지 않는 text타입으로
Date는 날짜를 받을 수 있는 Datatime으로 선언했다.
6. DB 테이블 만들기
Char와 Varchar의 차이
CHAR 및 VARCHAR 타입은 여러분이 저장하고자 하는
문자의 최대 숫자를 지정하는 길이와
함께 선언된다. 예를 들면, CHAR(30)은 30개의 문자를
저장할 수가 있다.
CHAR 컬럼의 길이는 여러분이 테이블을
생성할 때 선언한 길이에 고정이 된다. 그
길이는
0 에서 255 사이의 값을 가진다. CHAR 값을
저장할 때에는, 지정된 길이를 맞추기
위해서
오른쪽에 스페이스를 집어 넣게
된다. CHAR 값을 추출할 때에는, 이렇게
추가된 스페이스가
제거된다.
VARCHAR 값은 필요한 문자 수 만큼만을
사용해서 저장되며,
여기에 길이를 기록하는 1 바이트가 추가
된다 (255 보다 긴 길이로 선언된 컬럼에
대해서는
2 바이트가 추가 됨).
7. DB 테이블 만들기
MySQL 한글 입력 방법
Default값이 utf-8값이 아니라서 한글 데이터를 추가하면 ???로 나온다
테이블을 만들때 한글로 받아야 하는 테이블,
항목값의 인코딩을 utf-8로 설정해 주어야 한다
8. DB테이블 만들기
USE
특정 데이타베이스를 사용하겠다고 선언한다.
JAVA 서버 코드에서 선언을 해야 사용이 가능함
여기서 executeQuery는 데이터베이스로 명령어를 전송해주는 함수
9. DB 테이블 만들기
INSERT
데이터베이스에 값을 추가 하기 위한 명령어
각 형에 맞게 작성한 뒤 추가하면 됨
String이면 작은 따옴표 안에 작성해야 하고
그 외에는 그냥 작성하면 됨
안에서 MySQL 명령어도 사용 가능
10. DB 테이블 만들기
SELECT
데이터베이스의 값을 가져오기 위한 명령어
최신의 값, 큰 값을 위로 정렬해서 데이터베이스의 값을 가져옴
studentdb에서 Id가 201131037인 값을 가져옴
Student에서 3번째부터 1개의 값을 가져옴
11. Server(java)에서 DB값 불러오기
Project에 Connector/J 라이브러리를 추가
프로젝트 폴더안에 libs 혹은 lib라는 폴더를 만들어 안에 connector J 파일을 넣고
프로젝트 속성에서 java build path로 들어가 Add External Jars 선택해 libs 폴더에
서 참조함
12. Server(java)에서 DB값 불러오기
Add Jar 가 아니라 Add External Jars 여야만 하는 이유
혼자 개발하면 상관 없음
하지만 팀 작업을 하는 경우에는 개개인마다 workspace가 모두 다름
다른 사람이 svn에서 checkout시 라이
브러리 위치가 달라지기 때문에 build
가 깨지게 됨. 라이브러리 위치를 수
정해야 하는데 ADT 22버전 부터 libs
에 있는 jar들은 android private libraries
로 묶여서 자동으로 build path에 추가
가 된다. 그러면 수정도 제거도 불가
능하게 돼 build가 되지 않는다.
13. Server(java)에서 DB값 불러오기
getConnection의 첫 번째 파라미터는 데이터베이스의 주소와 포트번호
데이터베이스의 포트번호는 전통적으로 3306을 사용
useUnicode는 데이터를 쓸 때 한글이 ???로 입력되기 때문에
인코딩을 해줘야 해서 넣은 문구이다.
그 외에 남은 파라미터는 데이터베이스의 관리자 아이디와 비밀번호.
14. Server(java)에서 DB값 불러오기
executeQuery를 통해 DB사용을 시작하고
execute를 통해 명령문을 사용해서 그 결
과를 ResultSet에 저장함
조건에 맞는 data가 없으면 rs.next()가 존재하지 않음
조건문을 만들때 따옴표 같은걸 생략하기 쉬움
조심해서 조건문을 만들어야함
15. Server(java)에서 DB값 불러오기
칼럼 값끼리 구분하여 저장하기
위해 getNString을 사용하여 String
에 각 값을 저장하고
getTimestamp는 DateTime으로 저
장한 값을 시간 단위까지 가져오
기 위해서 사용함.
16. TCP / IP
JAVA의 TCP / IP
InputStream이 read
OutputStream이 write
21. TCP / IP
AsyncTask
Android 4.0 이후부터 threrd로 TCP/IP 접근이 불가능 해짐
AsyncTask로 접근해야 함
AsyncTask는 UI 처리 및 Background 작업 등 을 하나의 클래스에서 작업 할 수
있게 지원해 준다. 쉽게 말해 메인Thread와 일반Thread를 가지고 Handler를 사
용하여 핸들링하지 않아도 AsyncTask 객체 하나로 편하게 UI를 수정 할 수 있
고, Background 작업을 진행 할 수 있다. 각각의 주기마다 CallBack 메서드를 사
용한다.
onPreExecute() : Background 작업 시작전에 UI 작업을 진행 한다.
doInBackground() : Background 작업을 진행 한다.
onPostExecute() : Background 작업이 끝난 후 UI 작업을 진행 한다.
[onPreExecute()] -> [doInBackground()] -> [onPostExecute()] 순으로 진행
22. TCP / IP
doInBackground에서 스레드가 해야
할 일을 적으면 끝
스레드 외에 핸들러를 사용할 일이
있으면 onPreExecute 등으로 UI제
어를 하면 됨
게시판은 스레드만 쓰면 되기 때문
에 doInBackground만 사용함
23. TCP / IP
게시판을 학년별로 만들기 때문에
클라이언트에서 서버로 학년을 보내면 서버에서 DB를 읽어서
클라이언트에 다시 보내주는 구조
24. TCP / IP
주의점
AsyncTask에서 저장한 값을 onCreate
로 가져오려고 static으로 string배열
을 선언한 뒤 onCreate에서 로그를 찍
어봤더니 null로 나옴
25. TCP / IP
주의점
데이터가 넘어오기 전에 로그를 찍어
서 null값으로 출력된 것.
Sleep을 걸어서 데이터 값이 넘어오는
것을 기다린 다음에 출력해야 함
26. 커스텀 리스트 뷰
리스트를 만들기 위해서는 리스트의 레이아웃을 따로 만들어야 하는데
게시판에 필요한 글 제목, 글쓴이, 글 쓴 시간을 저장할 레이아웃을 만든다.
29. 커스텀 리스트 뷰
BaseAdapter를 상속받은 클래스 안에 getView 함수를 오버라이딩 해서 아까 미리
만들어둔 list레이아웃을 inflate시킨 뒤 연결시키는 작업
30. 커스텀 리스트 뷰
출력할 리스트 뷰
BaseAdapter를 상속받은 클래스
데이터를 쉽게 관리하기 위해 만든 클래스를 가진 ArrayList
arrayList를 초기화 한 뒤
.add함수를 불러 데이터를 추가
arrList를 adapte에게 전달
리스트 뷰는 setAdapter로 adapter를 전달받아 출력