[태그:] 코딩
taeho의 코딩 이야기
-
[Flask 웹 프레임워크] render_template()을 사용하여 HTML 렌더링하기
이번 포스트에서는 ORM을 통해 데이터를 조회한 뒤 render_template()을 사용해 분리되어 있는 HTML 파일에 렌더링하여 브라우저 화면에 표시하는 코드를 작성해본다. 앞의 포스트에서 Flask_Migrate과 SQLAlchemy를 이용한 ORM 구현했다. 이제 앞에서 작성했던 main_page.py 파일을 다음과 같이 편집한다. render_template()을 이용한 HTML 렌더링 소스코드를 간단히 살펴보면... flask 모듈에서 render_template를 import 한다. flask 모듈에서 render_t …
-
[Flask 웹 프레임워크] Flask Migrate를 이용한 ORM 적용하기 (SQLAlchemy)
앞의 포스트에서 Flask 웹 프레임워크를 이용해 Hello, Flask!를 출력하는 파이선을 이용한 웹 프로그램을 작성하였고 Blueprint를 이용한 모듈화도 테스트했다. 그리고 DB연동을 위해 MariaDB까지 설치를 마쳤다. 우분투 20.04 에 MariaDB 설치하기 이젠 파이썬에서 사용 가능한 ORM (Object Relational Mapping) 라이브러리를 사용하여 파이썬 Flask 어플리케이션의 클래스와 속성을 데이터베이스의 테이블-컬럼 구조와 매핑하고 DB를 자동으로 구성관리하는 방법에 대해 포스팅한다. 다양한 …
-
[Flask/Python] 첫 Python 웹 프로그램 (Hello, Flask!)
웹 프로그래밍을 위한 언어 중 가장 유명하고 널리 쓰이는 언어는 Java다. Java 계열의 프로그래밍언어는 웹 프로그래밍 뿐만아니라 안드로이드 앱 개발에도 사용되며 서버 프로그래밍에서도 사용되는 "세상에서 가장 널리 사용되는 프로그래밍 언어"이다. 그 다음으로 널리 사용되는 프로그래밍 언어는 사람들이 가장 어려워하는 언어 중 하나인 C언어와 C++, 그리고 C# 등 C언어 계열의 언어다. 그리고 그 다음이 바로 파이썬(Python)이다. 파이썬은 조금만 공부하면 그 뒤 부터는 무언가 프로그래밍 혹은 업무 자동화가 필요 …
-
node.js 와 Express 프레임워크 설치하고 hello world 웹페이지 작성하기
최근의 웹 프로그래밍 시장(?)은 매우 혼란스럽다. 과거의 HTML과 Server Side Script 혹은 CGI로 이루어지던 단순했던 웹 애프리케이션의 운영 환경은 점점 많은 이용자와 개발자의 요구사항이 반영된 CSS, JQuery의 등장, 그리고 HTTP 프로토콜의 단순한 데이터 전달 방식을 개선하기 위해 등장한 JSON(Java Script Object Notation), SOAP(Simple Object Access Protocol)와 같은 데이터 교환 프로토콜까지... 작은 웹서비스 하나를 개발하기 위해 개발자가 미리 공 …
-
RSA 암호알고리즘 (PKI) 이해와 실습
앞의 포스트에서 디피-헬만 키 교환 알고리즘을 알아보았다. 디피-헬만 알고리즘은 송신자가 주체가 되어 송신자와 수신자 상호간의 암호키 전송없이 실제 송수신할 데이터의 암호화와 복호화를 할 수 있는 공통의 비밀키(대칭키)를 교환(실제로는 송신자와 수신자가 각자 생성)하는 키 교환 알고리즘이다. 그 이후의 데이터 암복호화는 생성된 대칭키(비밀키)를 이용하여 별도의 대칭키 암호화 알고리즘을 사용하면 된다. 그래서 디피-헬만 키 교환 알고리즘은 SSL(Secure Socket Layer) 통신 시 암호키를 생성하고 교환하는 목적으로 사용된 …
-
[C언어] C언어와 Windows API로 Hello C 코딩하기
C언어를 공부해본 사람이라면 누구나 알만한 프로그램이자 처음으로 작성해보는 프로그램이 있죠. 바로 Hello, World 혹은 Hello, C 라는 문자열을 출력하는 프로그램입니다. 이 프로그램이 얼마나 유명하냐면 프로그래밍 언어별로 이 문자열을 출력하는 소스를 컬렉션한 웹사이트가 있을 정도입니다. (보러가기) 그 중에서 오늘 이 포스트에서 작성할 언어는 바로 C언어 입니다. 그리고 C 언어 중에서도 Text 화면(콘솔)에서 동작하는 C언어와 Windows와 같은 GUI 화면에서 동작하는 C언어 소스를 비교해 보려 합니다. 먼저 사 …
-
특정 TCP 포트를 Open하고 Listen 하는 Perl 스크립트
IT 분야의 일을 하다 보면 외부에서 혹은 내부 네트워크간 통신을 위해 방화벽을 열어줘야 하는 경우가 생깁니다. 서버에 SW가 설치되고 방화벽에서 열어준 Port를 사용하는 SW가 설치되어 구동 중이라면 원격지의 PC에서 telnet 명령을 통해 손쉽게 방화벽이 잘 열려 있는지를 확인할 수 있습니다. 하지만 서버에 해당 포트를 이용하는 SW가 설치되어 있지 않다면 방화벽에 Open을 요청한 TCP 포트가 제대로 열려 있는지 확인이 어렵습니다. 서버와 포트가 한두개라면 SW를 설치한 뒤 확인하면 되지만... 방화벽 Open이 관리적인 …
-
웹 로그 수집을 위한 access.log 증분 수집 스크립트
로그 수집 이슈 서버 HW, 운영체제 그리고 서버에서 실행되는 웹 서버 등의 애플리케이션의 상태와 해킹 시도 등을 탐지하기 위해 각종 로그를 수집하는 것은 서비스 상태의 모니터링과 보안관제 등의 업무에서 필수적인 요소다. 그래서 ESM(Enterprise Security Management) 솔루션은 물론이고 SIEM과 보안관제 등의 솔루션에서 서버에 쌓이는 로그파일을 수집하는 기능을 제공하며 로그를 수집하기 위해 Syslog 를 이용하는 등 다양한 방법을 사용할 수 있다. 하지만 syslog나 snmp 등을 지원하지 않는 웹서버 …
-
디피-헬만 키교환 알고리즘 (Diffie-Helman Key Exchange)
암호학은 어렵다. 아마도 나 처럼 수학에 약한 사람들은 암호학의 수식만 봐도 머리가 어지러워지기 시작할 것이다. 그리고 암호학 전문가가 보안전문가라는데 나는 동의하고 싶지 않다. 정보보안에 필요한 수학의 한 분야일 뿐이기 때문이다. 하지만 그 원리에 대한 기초적인 이해는 보안 전문가라면 반드시 필요하다. 데이터를 암호화하는 기술은 사람들이 "비밀"을 갖게 된 시점부터 그 필요성이 대두되었고 사람들이 모인 조직이 만들어지면서 조직내의 비밀을 유지하기 위해 데이터를 암호화하는...일명 "암호학"이 발전하기 시작하였다. 대칭키 암호화 알 …
-
서버의 unixtime을 엑셀 날짜 및 시간으로 변환하기
정보보안 관련 업무를 하다 보면 가끔 unixtime을 년월일시분초로 변환할 일이 생긴다. 이는 대부분 보안 관련 로그에 로그가 발생할 당시의 시간을 unixtime, 즉 초단위로 기록되는 시간으로 기록하기 때문이다. 보안 제품의 관리자 프로그램 또는 웹사이트에서는 대부분 로그를 조회하면 유닉스타임을 자동으로 날짜 및 시분초로 변환해 보여주지만 원격에서 접속이 안될 땐 로그파일을 받아보곤 하는데 그 로그파일엔 날짜가 유닉스 타임으로 기록되어 있는 경우가 많다. 일단 로그를 받아 엑셀에서 열면 다음처럼 보인다. 시간이 Unix 타임 …