[PHP] PHPUnit Test 환경구성 및 테스트
·
Front-End/Web
본 글에서는 PHP로 작성된 코드의 Unit Test 환경구성 및 테스트에 대해 다룬다. 테스트 환경은 Linux Rocky 8 버전에서 php 7.3버전에서 수행한다. 환경구성 (1) php install php 7.3 version을 설치한다. 설치 방법은 아래 참고사이트 [1]번 링크를 참조한다. (2) composer install php 패키지 관리자 'composer'를 설치한다. $ curl -sS https://getcomposer.org/installer | php (3) phpunit install php 7.3 버전에 호환되는 phpunit phpunit 9.3 버전을 설치한다. $ php composer.phar require --dev phpunit/phpunit ^9.3 (3) ..
[E-Mail] 메일 보안 필터링 이론 정리
·
ETC/ETC
스팸 및 악성 메일 위협 유형 인터넷 메일 시스템은 개인, 기업, 학교, 기관 등 다양한 곳에서 상호간 커뮤니케이션을 위한 중요한 서비스이다. 인터넷 이메일 서비스가 중요한 커뮤니케이션 수단으로 이용되는 만큼 이를 악용한 사이버 공격 사례와 정상적인 서비스 이용을 방해하는 광고성(Spam Mail)성 메일도 늘어나고 있다. 이러한 사이버 공격과 광고성 메일은 기존보다 고도화, 지능화되고 있어 이를 막기 위한 기술과 서비스가 필요한 실정이다. 아래는 스팸 및 악성 메일과 관련된 용어와 위협 유형이다. (1) 용어 가. 스팸메일 : 불특정을 대상으로 보내는 광고성 메일. 최근 빅데이터 및 인공지능을 이용하여 특정 대상에 대해 발송하기고 하기만 기본적으로 불특정을 대상으로 함. 악의적인 목적은 갖고 있지 않지..
[Communication] 구형 건축물에서의 스마트홈 구축 프로젝트 - 블루투스 통신
·
Project/Smart Home
개요 본 프로젝트의 기획단계에서 기기간의 연결성과 사용자와 상호작용을 위해 서버와 센서간 Bluetooth 통신을 계획했다. 이번 게시물은 스마트홈에 빌드하여 바로 적용하는 코드가 아닌 서버-센서간 통신을 위한 기초 예제이다. 본 예제는 향후 Sensor에서 다루는 내용에 기본적으로 포함되는 예제이므로 반드시 확인하고 넘어가야하는 항목 중 하나이다. Arduino 가. 환경구성 앞서 2-1에서 Arduino IDE를 설치했다면 별도의 환경구성은 필요없다. 본 예제에서 사용된 MCU와 센서는 Arduino UNO, HC-06)을 사용하였다. 나. 회로연결 블루투스 모듈(HC-06)에 Arduino에서 5V를 인가한다. (5v, GUD 결선) 소스코드에서 지정한 RX(수신) 아날로그 포트와 블루투스 모듈의 ..
[Python] 멀티 쓰레드(Multi-Thread) 예제
·
Language/python
개요 본 게시물에서는 Python의 멀티 쓰레드 예제를 알아본다. 파이썬은 기본적으로 인터프리터 언어로 싱글 스레드로 실행한다. 프로그램을 작성하다보면 여러 가지 일을 동시에 실행하는 동시성이 필요한데 동시에 여러 가지 일을 수행하기 위해서는 프로그램의 병렬처리가 필요하다. 프로그램의 병렬처리를 위해서는 멀티 쓰레드에 대한 개념과 멀티 프로세스에 대한 개념을 이용한다. 쓰레드와 프로세스의 간략한 개념은 아래와 같다. Process 단순히 실행 중인 프로그램이라고 할 수 있다. 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 프로세스는 프로그램에서 사용되는 데이터와 메모리 등의 자원 그리고 쓰레드로 구성된다. 프로세스간의 자원공유는 이뤄지지 않는다. Thread ..
[Python] 파이썬 터미널 실행 매개변수 전달
·
Language/python
본 게시물에서는 Window 또는 Linux OS에서 명령어로 Python을 실행할 때 매개변수를 전달하여 실행하는 방법에 대해 알아본다. (본 게시물은 Linux 터미널을 기준으로 함) 내용 예제를 실행하기 이전에 Liux에 파이썬이 설치되어 있는지, path 경로가 지정되어 있는지 확인한다. $ python - -version 코드가 길지 않고 많은 설명이 필요 없기 때문에 두서없이 예제코드를 먼저 작성한다. import sys # 입력받은 매개변수 만큼 출력 for i in range(0, len(sys.argv)): print(‘sys.argv[%d]: %s’%(i, sys.argv[i])) 앞서 터미널에서 매개변수를 전달하여 코드를 실행하기 위해 먼저 sys 모듈을 import 한다. 입력받은 ..
학군사관후보생(ROTC) 컴퓨터공학도에게 좋은 선택일까 ?
·
Column
필자는 대학에서 컴퓨터공학을 전공했고 학군사관후보생(ROTC)를 거쳐 육군 장교로 복무했다. 현재는 육군 중위로 전역하여 보안 업계에서 개발자로 근무하고 있다. 이번 컬럼에서는 학군사관후보생(ROTC)이 컴퓨터공학도에게 좋은 선택인지 이야기 해보고자 한다. 우선 필자가 학군 장교로 복무하게 된 이유에 대해 설명하면 필자는 중/고교 시절부터 조직의 대표가 되어 리더십을 발휘하는 것을 좋아했고 한국전쟁, 북한의 무력도발과 관련된 영상 및 영화를 보며 국가에 기여하고 싶다는 생각이 들었다. 그래서 장교로 임관하여 병력들 앞에서 리더십을 발휘하고 국가에 기여하고자 장교가 되기로 결심했다. 장교가 되기 위해 대학교 선정에 앞서 학군단 설치 유무를 확인하고 지원했다. 대학교에 입학 후 장교의 관문을 통과하기 위해 ..
[E-Mail] 이메일 시스템 구조 및 용어 정리
·
ETC/ETC
본 게시물에서는 이메일 시스템의 송/수신 구조 및 용어 정리에 대해 작성한다. 참고 사이트 이메일 시스템 구조 가. 구조 User Agent: 사용자 장치에서 메일 작성, 읽기, 관리 기능 수행. (or A.K.A Client). Mail Server: 다수 사용자들의 메일박스 관리, 메일 송/수신 제어. SMTP(Simple Mail Transfer Protocol): 메일 전송 프로토콜. MUA(Mail User Agent): 메일을 작성하여 보내는 프로그램(데몬). MTA(Mail Transfer Agent): 이용자로부터 메일을 받아서, 외부로 전달하는 프로그램(데몬). MDA(Mail Delivery Agent): MTA로부터 분리된 메일을 사용자에게 전달하는 프로그램 나. 이메일 전송 과정 순..
[Server] 서버 시설관리 수칙 (Data Center)
·
System/Server
본 게시물에서는 서버 시설관리 수칙에 대해 작성한다. 사실 이번 게시물은 필자가 많은 경험이 있는 것도 아니고 전문성이 뛰어난 것도 아니다. 필자는 대학 학부시절 작은 서버실을 관리했던 경험이 전부이다. 물론 대규모 서버실에서는 본 글에 다루는 내용보다 더 많은 위협과 대응방안이 존재하겠지만 이번 게시물에서 필자는 소규모 서버를 운용하는 사용자의 입장에서 도움이 될만한 극히 일부의 내용에 대해 기술하고자 한다. 즉, 소규모 서버를 운용하는 곳에서는 최소한 필자가 기술하는 수칙에 대해서는 이뤄지고 있어야 한다는 말이다. 서버 시설 위협 서버 시설(Data Center)에 생기는 위협은 다양하고 방대하다. 위협에서는 사이버 공격으로 인한 위협, 물리적 위협, 인적 자원으로부터의 위협 등 다양하다. 많은 위협..
[E-Mail] Telnet과 OpenSSL을 이용한 SMTP 메일 발송
·
ETC/ETC
본 게시물에서는 Telnet과 OpenSSL를 이용하여 SMTP 메일 발송을 실습한다. 실습하기에 앞서 게시물에서 다루는 환경은 Linux(Rocky)에서 실습한다. SMTP SMTP(simple mail transfer protocol) 프로토콜은 인터넷 상에서 이메일을 전송할 때 쓰이는 표준 프로토콜이다. 기본 포트(Port)는 25번 포트를 사용하며, MUA-MTA 또는 MTA-MTA 전송간 사용하게 된다. 기본적으로 ASCII 텍스트를 보내는 프로토콜이지만 ASCII의 7bit 문자열을 초과하는 데이터는 MIME(Multipurpose Internet Mail Extension) 포맷으로 변환하여 전송한다. Telnet 가. Telnet Telnet은 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신..
[Environment] 구형 건축물에서의 스마트홈 구축 프로젝트 - 개발환경 구성
·
Project/Smart Home
본 게시물에서는 스마트홈 환경을 구성하기 위해 필요한 개발환경 구성에 대해 다룬다. 자세한 내용에 대해서는 다루지 않으니 세부적인 환경 설정에 대해서는 인터넷 검색을 통해 알아보길 바란다. 1. Arduino IDE Arduino는 센서의 정보를 받고 처리하기 위한 Open H/W 기반의 MCU(Micro Control Unit)이다. Arduino를 제어하는 프로그래밍을 하기 위해 IDE(Integrated Development Environment)를 설치한다. Download Web: https://www.arduino.cc/en/software Software Open-source electronic prototyping platform enabling users to create interact..