분류 전체보기 231

플라스크(Flask) #3_ 플라스크에서 MongoDB 연결(연동)하기

안녕하세요.이번 포스팅에서는 Flask에서 MongoDB에 연결하여 데이터를 사용할 수 있도록,MongoDB에 연결하는 방법을 알아보도록 하겠습니다.궁금한 점은 언제나 댓글을 이용해주세요 :)1. 사전작업1-1. pymongo 설치하기 먼저 Flask와 MongoDB, python 설치는 모두 되어있다고 생각하겠습니다.( Flask 설치방법 클릭, MongoDB 설치방법 클릭, python 설치방법 클릭 ) CMD창을 열어서 아래 명령어를 입력합니다.pip install pymongo 위의 사진과 같이 간단하게 설치가 됩니다. 1-2. MongoDB에 데이터 작성하기 이후 flask를 통해 MongoDB에 있는 데이터를 확인하기 위해 간단한 mock-up 데이터를 작성합니다. 아래 사진과 같이 간단하게 ..

Web 관련/Flask 2017.11.10

인공지능(AI) #4_ 논리적 동치, 유효성(validity), 만족 가능성(satisfiability)

안녕하세요. 문범우입니다.이번 포스팅 부터 약 2~3번에 거쳐 명제 정리 증명에 대한 이야기를 해보겠습니다.먼저 오늘은 정리 증명 알고리즘의 세부사항에 앞서, 함축과 관련된 몇가지 추가적인 개념을 알아보도록 하겠습니다.1. 명제 정리 증명 개요 지난 포스팅을 통해 우리는 모든 모형들을 열거하면서 문장이 모든 모형에서 성립하는지 점검하는 모형 점검 방식에 대해 알아보았습니다. 이제는 정리 증명(Theorem proving)을 이용하여 함축 관계를 확인하는 방법에 대해서 알아보겠습니다. 우리가 앞으로 알아볼 접근 방식에서는 주어진 문장의 증명을 구축하여 함축관계를 확인하기 위해서 지식 기지(KB)에 있는 문장들에 여러가지 추리 규칙들을 적용할 것 입니다. 우리가 앞에서 살펴본 모형 점검 방식에 비해, 모형이..

플라스크(Flask) #2_ 입력한 숫자의 구구단 출력하기

안녕하세요.이번에는 플라스크를 통해서 숫자를 입력받고 버튼을 눌렀을 때 입력한 숫자의 구구단을 출력하는 웹페이지를 만들어보도록 하겠습니다.내용에 대한 피드백이나 궁금한 점은 언제든 댓글을 이용해주세요 :)1. 시작하기 지난 포스팅을 통해 아래와 같은 코드 까지 구현하였습니다. 123456789from flask import Flaskapp = Flask(__name__) @app.route('/')def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()cs 위의 코드에서 7번 라인은 라우팅을 설정하는 코드입니다.쉽게말해서 '127.0.0.1:5000/' 이라는 주소를 말하는 코드인 것이죠.따라서 우리가 지난번에 '127.0..

Web 관련/Flask 2017.11.09

운영체제 #4_ CriticalSection 에 대해서

CriticalSection에 대해서 공부하다가 의문점이 들어 알아보았습니다. 만약 1,2,3,4 라는 4개의 스레드가 존재했을 때, 1의 스레드에서 EnterCriticalSection을 두번 호출하고 LeaveCriticalSection을 한번 호출하면 2의 스레드에서 EnterCriticalSection을 호출하면 어떻게 되고 그 이유는 무엇일까요? 먼저 결과적으로는 2의 스레드에서 EnterCriticalSection을 호출하면 block처리가 됩니다.이유를 한번 알아보겠습니다.먼저 microsoft 공식문서에 업데이트된 Displaying a Critical Section을 통해 CriticalSection의 내부 구조를 살펴보면, lockCount와 OwningThread 멤버가 있는 것을 확..

OS&네트워크 2017.11.09

운영체제 #3_ 상호잠금, InterlockedIncrement 함수

이번에는 상호잠금 함수인 InterlockedIncrement에 대해서 알아보겠습니다.먼저 msdn에서 해당 함수를 살펴보면 아래와 같습니다. LONG __cdecl InterlockedIncrement(_Inout_ LONG volatile *Addend); 이를 살펴보면 해당함수는 LONG형(32bit) 포인터 변수를 인자로 받는다는 것을 알 수 있습니다.따라서 여러 스레드에서 공유되는 데이터의 값을 하나 씩 증가시킬때는,해당 데이터를 LONG형으로 선언하고 아래와 같이 사용하면 됩니다. InterlockedIncrement(&(LONG형 변수)); 추가적으로, 위와 같은 함수를 위에서 언급하였듯이 상호잠금 함수라고 합니다.값을 1씩 증가시켜주는 InterlockedIncrement() 함수 뿐 아니..

OS&네트워크 2017.11.09

알고리즘 #4_ 파이썬을 통한 막대자르기(Rod cut) 시간비교

지난 포스팅에서 동적 프로그래밍(Dynamic Programming)에 대해서 알아보고 그에 대한 예제로 막대자르기(Rod Cut)에 대해서 공부하였습니다.이번 포스트에서는 막대자르기 예제에서 단순 하향식 재귀표현법과 상향식 방법을 실제로 python코드로 작성해보고 시간을 비교해보도록 하겠습니다.1. 개요 먼저 이번 포스팅에서 진행할 막대자르기문제에 대한 몇 가지 조건은 아래와 같습니다. ㄱ. P-table(price table)의 값은 임의의 단조증가 형태ㄴ. Rod의 길이 값을 4부터 N으로 변화시키면서 Brute-force방법(하향식 재귀 표현)과 DP방법(상향식 방법)으로 최적의 값과 해결 소요 시간을 비교ㄷ. 소요 시간 비교는 최종적으로 표와 그래프를 이용하여 시각적으로 표현 위의 조건들을 가..

PHP #2_ Bitnami를 이용해서 윈도우에 PHP설치하기

안녕하세요.PHP에 대한 실습을 본격적으로 진행하기 전에, 이번에는 PHP를 윈도우에 설치해도록 하겠습니다.우분투 리눅스를 사용하시는 분들께서는 지난 포스트에 나와있는 링크를 참조하시면 되겠습니다.1. APM(Apache, PHP, MySQL) PHP는 일반적으로 혼자 설치되어 작동되지 않습니다. PHP는 보통 Apache라는 것을 통해서 웹 브라우저로 정보를 전달하며, MySQL을 통해서 실질적인 정보를 가져오기 때문입니다.따라서, PHP와 Apache, MySQL은 주로 함께 사용됩니다. 그리고 이것을 묶어서 한번에 APM이라고 부릅니다. 그런데 이러한 것들을 각각 설치하여 진행하기에는 다소 복잡할 수 있습니다.이러한 불편함을 해소하기 위해 APM을 한번에 설치할 수 있도록 도와주는 것이 있습니다. ..

Web 관련/PHP 2017.11.06

Mongo DB #4_ 데이터 자료형, find 함수, 쿼리 연산자

안녕하세요.오늘은 mongoDB에서 데이터 자료형과 find함수, 쿼리연산자에 대해서 알아보도록 하겠습니다.내용에 대한 피드백이나 궁금한 점은 언제든지 댓글을 남겨주세요 :)1. 데이터 자료형(Datatypes) MongoDB에는 많은 데이터 자료형을 지원합니다. 그 중 몇가지에 대해서만 알아보도록 하겠습니다. String String은 데이터를 저장할때 가장 많이 사용되는 데이터 자료형 중 하나입니다. MongoDB에서 String은 반드시 UTF-8 형식만 가능합니다. Integer 숫자값을 저장할때 주로 사용되는 자료형입니다. Integer는 서버에 따라서 32bit 또는 64bit입니다. Boolean 이것은 참(true) 또는 거짓(false)를 나타내는 값을 저장하는 자료형입니다. Double..

Database/MongoDB 2017.11.05

인공지능(AI) #3_ 명제 논리와 모형 점검 방식

안녕하세요. 문범우입니다.이번포스팅에서는 명제 논리와 모형 점검 방식에 대해서 알아보도록 하겠습니다.1. 명제 논리(Propositional logic) 1-1. 구문(Syntax) 명제 논리의 구문(syntax)은 허용되는 문장들을 정의합니다. 즉, 어떻게 문장을 구성해야 하는지를 이야기합니다.하나의 문장, 원자적 문장(atomic sentence)은 하나의 명제 기호(proposition symbol)로 구성됩니다. 그리고 그러한 기호는 참(true)이거나 거짓(false)인 하나의 명제를 나타 냅니다. 예를 들어 P, Q, R, North 등이 명제 기호입니다.이때, 항상 고정적 의미를 가진 명제가 있는데 자주 보셨듯이 True와 False 입니다. True는 항상 참인 명제이며 False는 항상 ..

파이썬(python) #3_ 문자열 인덱싱과 슬라이싱

안녕하세요. 오늘은 파이썬에서 문자열 인덱싱(indexing)과 슬라이싱(slicing)에 대해서 알아보겠습니다.궁금하시거나 오류에 부딪히신 분은 언제든 댓글에 남겨주시면 최대한 답변드리겠습니다 :) 1. 문자열 인덱싱(Indexing) 인덱싱이란 말이 뭘까요?인덱싱이라는 것은 무엇인가를 '가리킨다'는 의미입니다.다시 말해서 긴 문자열에서 어떤 글자나 특정 위치를 가리키는 것을 말합니다. 위의 사진과 같이 a에 저장된 'Hello, python world!!'라는 문자열에서 각 문자마다 번호를 매겨 보겠습니다. H e l l o , p y t h o n w o r l d ! ! 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 처음 시작하는 글자 H를 0이라는..

728x90