• IP 주소 계산기 (CIDR 계산)

    ISMS-P 인증심사를 진행하는 과정에서 매우 중요한 심사 포인트 중 하나가 바로 "네트워크 구성의 안전성"을 평가하는 것이다. ISMS-P 인증기준에서는 네트워크 구성의 안전성 평가에 대해 다음과 같은 기준을 제시하고 있다. ISMS-P 인증기준 2.6.1 네트워크 접근 네트워크에 대한 비인가 접근을 통제하기 위하여 IP관리, 단말인증 등 관리절차를 수립· 이행하고, 업무목적 및 중요도에 따라 네트워크 분리(DMZ, 서버팜, DB존, 개발존 등)와 접근통제를 적용하여야 한다. 인증기준에서는 네트워크 구성과 관련하여 업무목적 및 …

  • 워드프레스 블로그 방문자 분석도구 만들기 (Apache access log 분석)

    이 블로그는 오라클 클라우드에서 제공하는 평생 무료 서비스에 구축하여 운영중이다. 우분투 리눅스 가상머신 2대를 생성하여 하나의 가상서버에는 아파치 웹서버와 PHP를 설치하였고 다른 하나의 가상머신에 MariaDB DBMS를 설치하였다. 그리고 웹 어플리케이션은 워드프레스(Wordpress)를 설치하여 블로그를 구성하였다. www가 웹서버이고 mariadb가 DB서버다. 그리고 ap-svr-01 서버가 바로 오늘의 주제인 워드프레스 블로그의 방문자 분석, 즉 Apache 웹서버의 access log를 분석하고 DB에 업로드하는 웹 …

  • vscode에서 KEY 인증 SSH 접속 시 bad permission 에러

    리눅스 서버에 올려져 있는 소스코드 또는 설정파일을 편집할 때 비주얼 스튜디오 코드 (일명: VSCode)를 주로 사용하고 있다. VSCode에 Remote SSH 플러그인을 설치하면 호스트의 정보를 등록해두고 쉽게 어디서나 접속하여 소스코드를 편집하고 저장할 수 있다. 게다가 별도의 Putty 등 SSH 클라이언트를 사용하지 않고도 터미널 명령 창을 실행할 수 있어 더욱 편리하다. 또한 Git과 GitHub 연동기능을 사용하면 VSCode에서 소스코드의 버전관리 기능까지 모두 사용할 수 있어 더욱 편리한 개발환경을 구현할 수 있 …

  • [리눅스 기초] 쉘 스크립트의 사칙연산과 문자열 자르기

    쉘 스크립트에서도 자바(Java)나 C언어처럼 문자열 자르기와 사칙연산을 비롯한 연산이 모두 가능하다. 아니 어쩌면 더 쉽게 느껴질 수도 있다. 하지만 이런 연산을 설명하기 전에 먼저 쉘 스크립트에서는 변수를 어떻게 사용하는지 이해해야 한다. 쉘 스크립트에서의 변수 일반적인 Java나 C와 같은 프로그래밍 언어에서는 변수의 선언과 타입(type)이 무척 중요하다. 선언하지 않고 사용하거나 잘못 참조하거나 잘못 연산하게 되면 엉뚱한 값이 출력되거나 컴파일 시 에러를 팍팍~뿌려댄다. 하지만 쉘스크립트에서 변수는 미리 선언하지 …

  • [리눅스 기초] 쉘 스크립트란 무엇인가?

    예전의 포스트에서 운영체제의 쉘(shell)이 도대체 무엇인지에 대해 설명했다. [리눅스 기초] 쉘의 이해(Linux Shell) 쉘을 이해하는데 성공했다면 다음 단계는 쉘 스크립트(Shell Script)에 대해 공부하는 것이 일반적인 Unix/Linux 운영체제를 공부하는 순서라고 할 수 있다. 쉘 스크립트(Shell Script)란 ? 쉘 스크립트를 이해하려면 먼저 스크립트(Script)가 무엇인지 이해해야 한다. 스크립트란 일반적으로 인터프리트(interpret:대화) 방식으로 동작하는 컴파일하지 않는 프로그램이라고 이해하 …

  • [Flask 웹 프레임워크] 게시판에 CKEditor 5 적용하기

    앞의 포스트들에서 Python + Flask웹프레임워크를 이용해 간단한 글목록, 글보기, 글쓰기, 글수정 기능이 구현된 게시판을 만들었다. [Flask 웹 프레임워크] ORM을 사용하여 게시판 글 수정하고 저장하기 [Flask 웹 프레임워크] 부트스트랩 4.5.3 적용하기 등등~ ^^ 하지만 아직도 문제가 하나 남았다. 바로 에디터다. HTML의 <textarea>~~</textarea> 태그를 이용해 글을 입력받으면 글의 폰트를 바꿀수도, 글의 크기를 조절하는 것도 줄간격을 조절할 수도 없다. 글에 이미지를 …

  • [Flask 웹 프레임워크] ORM을 사용하여 게시판 글 수정하고 저장하기

    글을 수정하고 저장하기 위해서는 ORM을 이용해 DB에서 글을 조회하여 수정 폼(Form)이 포함된 HTML 페이지에 표시해주고 저장할 경우 다시 ORM을 이용해 DB에 저장한 뒤 다시 글의 내용을 보여줘야 한다. 먼저 글 보기 페이지에 "수정하기 버튼을 추가한다. 글보기 페이지에 수정하기 버튼 추가 (26행) 목록보기로 돌아가는 버튼은 덤이다. (25행) 글 보기화면이 다음과 같이 수정되었다. 글보기에 추가 된 "수정하기"와 "목록으로" 버튼 부트스트랩4의 버튼 스타일 중 "btn btn_light" CSS를 적용했다. 다음은 D …

  • [Flask 웹 프레임워크] 부트스트랩 4.5.3 적용하기

    지금까지 Flask 웹프레임워크를 이용해 만든 웹페이지들은 정말...눈꼽만큼도 꾸미지 않은 날것의 HTML이다. 그래서 이런 화면이다. Flask 웹 프레임워크로 작성한 기본적인 게시판 화면 생애 최초로 도전한 Python의 Flask 웹 프레임 워크로 작성한 매우 기본적인 글쓰기, 글 목록, 글보기 화면은 다음과 같다. PHP나JSP로 작성하는 경우와 비교하면 비교적 짧은 시간에 기본적인 화면을 표시하고 DB에 저장하고 조회하는 코드를 작성할 수 있었다. 아마도 Python과 Flask 웹 프레임워크에 익숙해진다면 절반 정도의 …

  • [Flask 웹 프레임워크] 글 목록에서 하나의 글 보기 (URL 변수)

    앞의 포스트들에서 Flask 프레임웨크를 통해 글을 작성하면 ORM을 이용해 DB에 저장하고 글의 목록을 표시하는 기능까지 코딩했다. 이번에는 글의 목록에서 하나의 글을 선택했을 때 ORM을 이용해 가져오고 render_template()을 이용해 글의 내용을 화면에 표시하는 코드를 작성한다. 단, 글의 목록에 HTTP GET 메소드를 이용해 URL끝에 변수와 파라미터를 조합하여 웹서버로 전달하는 방식이 아닌 URL의 끝에 게시물의 번호를 URL에 붙여 URL을 호출하는 형태로 작성하려고 방법을 알아봤다. 마치 티스토리에서 포스트의 …

  • [Flask 웹 프레임워크]ORM을 사용하여 입력받은 내용을 DB에 저장하는 코드 작성

    앞의 포스트에서 Flask_Migrate를 이용하여 ORM을 구현하고 MariaDB에 저장되어 있는 테이블에서 글의 목록을 조회하는 파이썬 코드를 작성하였다. 그리고 조회한 글의 목록을 보여주는 post_list.html 이라는 HTML 페이지를 작성하고 render_template() 함수를 이용해 출력하였다. [Flask 웹 프레임워크] render_template()을 사용하여 HTML 렌더링하기 이제 글을 작성할 수 있는 간단한 FORM을 작성하고 Flask_Migrate에 포함되어 있는 SQLAlchemy의 ORM 연동기능 …