데이터를 수집하고 가공하는 작업이 선행되어야 하는데, 우리가 얻는 데이터의 대부분은 raw data로 분석에 바로 사용할 수 없다. 분석에 사용할 수 있는 형태로 가공이 필요하다. 가공에는 pandas module이 필요하고 pandas의 데이터 타입을 구성하고 있는 모듈이 numpy module이다. numpy는 ndarray라는 자료구조를 제공한다. Numpy(Numerical Python) 수치계산을 용이하게 하기 위한 python module로 대용량의 다차원 배열과 matrix(행렬) 연산을 쉽게 하기 위한 python module이다. ndarray는 n-dimensional array. 차원의 개념이 존재하는 배열이다. 파이썬의 기본 데이터 타입인 list는 여러 다른 타입의 데이터를 함께 ..
AJAX Asyncronous Javascript And Xml 비동기 자바스크립트 방법 AJAX engine을 통해서 client가 request를 보내면 data가 수신된다. Round-Trip 방식의 Web에서는 웹페이지에 변화가 있을 때 강제로 갱신되어 무조건 처음부터 끝까지 문서를 다시 렌더링하는 것과 달리 AJAX통신을 이용하면 왔다갔다하는 데이터가 적고, 웹페이지가 갱신되지 않아 훨씬 효율적이다. 영화진흥위원회가 제공하는 open API를 이용해서 AJAX를 jQuery로 호출하려고 한다. 먼저 open API란 다음과 같다. API는 응용프로그램이나 서비스를 개발하는데 필요한 운영체제(OS)나 라이브러리 등의 특정 기능을 추상화하여 사용하기 쉽도록 만든 인터페이스로 Single UNIX S..
JQuery는 오픈소스 기반의 Javascript의 library이다. 모든 browser에서 동작하므로 브라우저 별로 다르게 코드를 작성하는 파편화가 없다. 또 AJAX처리를 직관적으로 할 수 있다. jQuery를 사용하기 위해서는 라이브러리를 불러오는 것이 필요한데, CDN방식을 이용할 수 있다. CDN이란 content delivery networ, 콘텐츠 전송 네트워크로 html태그를 이용해서 라이브러리를 동적으로 다운로드해서 사용하는 방식이다. CDN - 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술 - 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화 (출처 : https://library.gabia.com/con..
웹페이지를 만들 때 html은 문서의 내용, 뼈대를 작성하고 css는 문서를 디자인한다. javascript는 사용자의 이벤트를 처리할 수 있게 하여 정적 웹을 동적으로 제어한다. 작성된 javascript 코드는 클라이언트 사이드에서 실행된다. static web web client의 요청시 web server에 이미 가지고 있는 resource를 reponse. 모든 사용자에게 동일한 정보를 표시한다. dynamic web web client가 요청하면 web server에서 program을 실행시켜 그 결과를 reponse한다. 프로그램은 서버쪽에 있고, 서버에서 실행. 상황, 시간, 사용자의 요청 등에 따라 다른 정보를 표시한다. HTML파일에 Javascript파일 삽입 html 파일 하지만 이..
데이터베이스를 다룰 땐 데이터가 손실되지 않게 하는 것이 중요하다. 1. 백업하기 워크벤치 왼쪽 navigator를 보면 중간쯤 Administration이 있고 누르면 Data Export를 할 수 있다. 백업하고자하는 스키마를 선택하고 폴더를 지정한 후 Export Progress로 이동해서 Start Export를 누르면 백업할 수 있다. Export를 진행할 때 구조만 할 건지 데이터만 할 건지 둘 다 할 건지 선택할 수 있다. 2. 복원하기 DROP DATABASE sqldb; SHOW DATABASES; 복원을 하기 전에 마음이 아프지만 백업한 스키마를 지워보았다. 실제상황이라면 매우 아찔하다. SHOW DATABASE;를 통해 확인해보면 sqldb 스키마가 사라진 것을 확인할 수 있다. 또는..
모듈은 함수나 변수, class들을 모아 놓은 파일이다. 프로그램을 작성할 때 모든 코드를 하나의 파일에 작성하는 것은 매우 힘들고 아무도 그렇게 하지 않는다. 파일 여러 개에 나누어 코드를 작성할 때 다른 파일에서 또 다른 파일에 작성한 내용을 이용할 수 있는데 이것을 모듈이라고한다. 모듈은 자신이 직접 만들 수도 있고, 미리 만들어져있는 모듈을 사용할 수도 있다. 대표적으로 math 모듈이 있다. math는 내장 함수가 아니기 때문에 불러와서 사용해야한다. 이때 외부 모듈인 math 를 불러오기 위한 키워드가 import이다. 모듈을 만들 때 같은 파일경로 안에 존재하면 간단히 불러올 수 있다 ass_3_src, customers, car_rental은 폴더명이다. ass_3_src경로의 폴더에서 다..
python에는 특수한 메소드가 있다 magic method라고 하는 것인데 함수의 이름 앞뒤에 언더스코어(_)가 두 개씩 붙어있는 것이다 class를 만들때 처음에 생성자같은 역할을 하는 __init__함수를 정의하는데 이것이 매직 메소드이다. 문자열 연산시 연산자가 오버로딩 되는 것처럼 이 형태의 함수가 파이썬에서 미리 정의되어있고, 사용자가 재정의(오버로딩, overloading)함으로써 사용할 수 있는 것이다. class Student : def __init__(self, name, dept, number, grade) : self.stu_name = name self.stu_dept = dept self.stu_number = number self.stu_grade = grade stu1 = S..
객체지향 프로그래밍은 프로그램을 구현하는 방식 중 하나이다. 과거에는 프로그램을 기능 단위로 구현했다. 먼저 도메인을 분석하고 설계 -> 구현 -> 테스트 -> 배포의 순서로 프로그램이 만들어졌다. 만들고자하는 프로그램을 기능 단위로 더 이상 나눌 수 없을 때까지 세분화하고 가장 작은 단위별로 기능을 구현하고 그것들을 모아서 하나의 프로그램으로 만드는 방식이다. 이를 구조적 프로그래밍, 절차적 프로그래밍이라고한다. 이 방법의 장점은 분석과 설계가 쉽고 프로그램의 개발속도가 빨라 비용이 절감된다는 점이다. 하지만 코드의 결합도가 증가하여 프로그램의 유지보수가 어렵다는 단점이 있고, 대표적인 언어로는 C언어가 있다. 1990년대이후 인터넷이 보급되면서 사회가 급변하기 시작했다. 정보량이 급증했고 사용자의 요..