TigerCow.Door


안녕하세요. 문범우입니다.

최근 파이썬(python)을 이용해서 다양한 웹 프레임 워크도 공부하고, 학교에서 진행하는 이론적인 내용들을 실습할 때 파이썬으로 코드를 작성하다 보니 기초에 대한 부족함이 느껴지네요.

그래서 처음 파이썬 시작할때 샀던 책을 아예 처음부터 제대로 정독해보기로 마음먹었습니다.

책은 박응용님께서 지으신 '점프 투 파이썬'이란 책입니다.

해당 책은 WikiDocs에 오픈되어 있으니 여기를 클릭하셔서 온라인으로도 보실 수 있습니다.

포스팅은 시간날때마다 공부하고 정리하는 느낌으로 진행할 예정이고 책에서 공부한 내용들을 바탕으로 응용한 예제까지 더해서 코드를 정리하려 합니다.

궁금하신 점이나 기타 의문사항은 댓글 및 이메일(doorbw@outlook.com)으로 연락주시면 감사하겠습니다. :)



1. 파이썬(python)이란 무엇인가?


파이썬(python)은 1990년 귀도 반 로섬이라는 개발자에 의해서 개발된 인터프리터 언어입니다.

여기서 인터프리터란, 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말합니다.

인터프리터 언어와 상대적인 개념으로 컴파일러 언어가 존재합니다.

컴파일러 언어는 코드의 전체를 모두 변환하여 실행하며,

인터프리터 언어는 위에서 설명드린 바와 같이 소스 코드를 한 줄 단위로 변환하고 실행하는 과정을 반복합니다.

컴파일 언어로는 C, C++, JAVA 등이 있으며 인터프리터 언어로는 python, HTML, SQL, Javascript 등이 있습니다.


파이썬은 아직 한국에서 대중적으로 많은 이용이 되고 있지는 않지만, 해외에서는 교육 목적뿐 아니라 실무에서도 많이 사용되고 있습니다.

많은 사람들이 이용하는 파일 동기화 서비스 중 하나인 드롭박스(Dropbox) 나 웹 프레임 워크 중 하나인 장고(Django) 등이 예시가 될 수 있습니다.



2. 파이썬의 장점 및 특징


물론 각각의 언어가 가지고 있는 특징과 장점들이 존재하겠지만 그 중에서도 파이썬이 보일 수 있는 점들을 몇가지 확인해보겠습니다.


파이썬은 인간다운 언어입니다.

이후 이론을 공부하며 예제를 확인하면서도 아실 수 있겠지만 파이썬의 코드를 확인하시면 마치 영어문장을 써놓은 것처럼 비전공자 또한 읽기가 쉽게 되어 있습니다. 물론 모든 코드가 그런 것은 아니겠지만 상대적으로 다른 언어들과 비교하였을때 제일 인간다운, 읽기 쉬운 언어라고 볼 수 있습니다.


파이썬은 쉽고, 강력합니다.

파이썬의 문법을 공부하다보면 참 쉽고, 간단하다고 느낄 때가 많습니다. 파이썬은 문법 자체가 아주 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있습니다. 

그러함에도 불구하고 파이썬을 통해 매우 다양한 것들을 만들어 낼 수 있습니다. 시스템 유틸리티 제작 및 GUI 프로그래밍은 물론이고 웹 개발 또한 할 수 있으며 pygame이라는 모듈을 사용하여 간단한 게임 또한 손쉽게 만들어 볼 수 있습니다.


파이썬의 특징이나 파이썬으로 할 수 있는 일은 이 외에도 매우 많습니다.

추후 공부하면서 관심이 가는 분야나 궁금한 점에 대해서는 추가적으로 찾아보면서 공부하셔도 좋을 것 같습니다.

또한 댓글을 남겨주시면 아는 선에서 최대한 정보를 드려보도록 하겠습니다. :)


3. 파이썬 설치하기


파이썬을 설치하는 것은 아주 간단합니다. 따라서 설치방법에 대해서는 따로 설명드리지 않고 넘어가겠습니다.

많은 분들이 정리를 잘 해놓으시기도 했고, 공식문서나 점프 투 파이썬의 내용을 참고하셔도 좋을 것 같습니다.

오류가 발생하는 등의 문제점에 대해서는 댓글로 알려주시면 답변드리겠습니다.


이렇게 해서 오늘 파이썬 학습에 대한 오프닝을 진행하였습니다.

다음 포스팅에서는 파이썬의 숫자형과 문자열 자료형에 대해 공부해보도록 하겠습니다.


블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc


안녕하세요.

이번 포스팅부터는 Flask에 대해서 공부하면서 내용을 정리해보려 합니다.

오늘은 Flask에 대한 개념과 기본 예제만 살펴보도록 하겠습니다.


1. 플라스크(Flask) 란?


파이썬이나 웹에 대해 관심있으신 분들은 어느정도 아시겠지만, 플라스크(Flask)란 파이썬 웹 어플리케이션을 만드는 프레임 워크입니다.

프레임워크는 매우 다양하죠. 저의 블로그에서도 포스팅 진행중인 토네이도(tornado) 등이 있습니다.

그 중에서도 아마 플라스크와 장고가 대표적일 것 입니다.

플라스크는 그러한 프레임워크들 중에서도 매우 심플하고 가벼운 느낌을 가지고 있습니다.

그러한 가벼움 속에서도 중요하고 핵심적인 내용과 기능을 갖고 있기에 많은 이들에게 사랑받고 있죠.

플라스크를 설치하는 방법공식문서다른분들의 블로그를 참고하시면 되겠습니다.

설치 및 기타 과정에서 오류가 생기시는 분들은 댓글을 남겨주시면 최대한 답변드리도록 하겠습니다 :)



2. 플라스크 시작하기


플라스크의 설치가 끝나셨다면 가장 간단한 예제를 통해 플라스크를 체험해보도록 하겠습니다.

먼저 자신이 프로젝트를 진행할 폴더에 아래와 같은 코드를 가진 파일을 생성합니다.

저 같은 경우 파일의 이름은 hello.py 로 진행하였습니다.


1
2
3
4
5
6
7
8
9
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello World!'
 
if __name__ == '__main__':
    app.run()
cs


각각의 라인에 대해 간단하게 설명을 드리면,

1번 라인에서는, flask에서 Flask라는 클래스를 불러오게 됩니다.

그리고 2번 라인에서 Flask라는 클래스의 객체를 생성하고 인수로써 __name__을 입력합니다.

해당 객체의 이름은 app으로 설정됩니다.

그리고 4번라인에서는, 생성한 객체의 route를 설정합니다. URL을 설정해주는 것이죠

그리고 함수를 만들고 함수의 기능을 설명합니다.

최종적으로 8~9라인에서는, 객체의 run함수를 이용하여 로컬서버에서 어플리케이션을 실행하도록 합니다.

만약 가상머신이나 외부환경에서 이용하시는 분들은

app.run() 을, app.run(host='0.0.0.0') 으로 변경하면 외부에서 접근 가능한 것으로 설정하게 됩니다.

이렇게 하고 cmd 창에서 해당 파일이 있는 경로로 이동하여 python hello.py를 실행하면 아래와 같이 뜨게 될 것입니다.



그리고 http://127.0.0.1:5000 으로 접속해보면,



위의 사진과 같이 빈 화면에 Hello World! 라는 글이 출력될 것 입니다.

이렇게 아주 간단한 예제로 플라스크를 확인해보았습니다.



다음 포스팅부터는 플라스크를 이용해 예제를 진행하거나 하나의 웹 어플리케이션을 만들어보도록 하겠습니다.

오류가 나서 진행이 안되시거나 기타 궁금한 점이 있으신 분들은 언제나 댓글 및 이메일(doorbw@outlook.com)을 이용해주세요 :)

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc


안녕하세요. 문범우입니다.

오늘은 MySQL에서 변수를 이용하는 방법에 대해 알아보도록 하겠습니다.

이해를 돕기 위해 예제를 가지고 진행하는 방식으로 해볼게요.

예제에서는 delimiter에 대한 사용이 나옵니다.

delimiter에 대해서 잘 모르신다면 지난 포스팅을 통해 확인하시길 바랍니다.


1. 예제 환경 구성


오늘은 아래와 같은 테이블에서 시작합니다.



테이블을 만들기 위한 코드는 아래와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE person_1(
_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32NOT NULL,
job VARCHAR(64),
height INT NOT NULL,
english INT NOT NULL
);
 
INSERT INTO person_1 (name,job,height,english)
VALUES ('김철수',NULL,173,84),
('최고야','student',189,99),
('박사장','ceo',162,76),
('이세상',NULL,159,12),
('김영희',NULL,182,35),
('오감자','snack',139,3),
('수박바','student',155,65);
cs


위의 테이블을 가지고 진행을 해보도록 하겠습니다.

오늘의 목표는, 각 사람이 가진 영어점수를 바탕으로 순위를 매기는 것 입니다.

단순히 출력할때 순위가 보이도록 하는 것이 아니라, 새로운 속성을 추가하여 각각에 대한 순위를 저장하도록 하겠습니다.


2. MySQL 사용자 정의 변수


MySQL 에서는 사용자 정의 변수를 이용할 수 있습니다.

또한 당연히, 선언한 변수를 쿼리문에서 사용할 수 있습니다.

만약 var라는 이름의 변수를 선언하고 싶다면 아래와 같이 쿼리를 입력하면 됩니다.


1
SET @var = 1;
cs


위의 쿼리와 같이 SET @(변수명) 을 통해 변수를 선언합니다.

그리고 변수를 사용할때는 @(변수명) 을 통해서 변수를 사용하면 됩니다.


3. 순위 속성을 추가하고 순위 매기기


그럼 위에서 말한 것과 같이 새로운 '순위' 속성을 추가하고 각각에 대한 영어점수의 순위를 매겨보도록 하겠습니다.

먼저 rank 속성을 추가합니다.


쿼리문은 아래와 같습니다.


1
ALTER TABLE person_1 add column rank INT;
cs


그리고 이제 지난 포스팅에서 학습한 delimiter와 사용자 정의 변수를 이용해보도록 하겠습니다.

먼저 전체 쿼리문은 아래와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
SET @rank = 1;
 
DELIMITER //
CREATE TRIGGER person_update
AFTER UPDATE ON person_1
FOR EACH ROW BEGIN
SET @rank=@rank+1;
END //
DELIMITER ;
 
UPDATE person_1 SET rank=@rank ORDER BY english DESC;
cs


1번 라인을 보시면 rank 라는 변수를 1로 선언과 동시에 초기화 하였습니다.


그리고 이어서 DELIMITER를 사용하여 트리거를 만듭니다.

트리거는 person_1 테이블이 update될 때마다 작동되며 6번 라인을 통해 각 행마다 적용되도록 설정하였습니다.

트리거 내용으로는, rank 변수의 값을 1을 증가 시키는 내용입니다.

이렇게 트리거를 만들고 다시 DELIMITER를 수정합니다.


그리고 11번 라인에서와 같이 person_1테이블의 새로만든 속성, rank 속성에 rank변수 값을 입력합니다.

이때 테이블은 english 점수의 내림차순으로 출력된 상태입니다.


이렇게 쿼리를 입력하고 테이블을 확인하면 아래와 같습니다.



어떻게 해서 이런 결과가 나올까요?

다시 쿼리문을 확인해보면, 트리거는 각 행마다 진행이 됩니다.

즉 테이블이 영어점수의 내림차순으로 출력된 상태라면 제일 첫번째 행은 가장 높은 점수를 가진사람일 것입니다.

그럼 UPDATE 문에 의해서 그 사람의 rank는 1로 입력이 되고 이후 rank의 값은 트리거에 의해 1이 증가합니다.

그리고 이어서 두번째 사람의 rank에는 변수의 값이 1이 증가되었기 때문에 2가 저장되고,

그 다음사람은 3이 저장되는 방식입니다.




사용자 정의 변수에 대해서 간략하게 알아보고 예제를 통해 사용해보았습니다.

이후 사용자 정의 변수에 대해서는 사용이 될 때마다 추가적인 설명을 붙이도록 하겠습니다.

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc