본문 바로가기

프로그래밍458

파이썬 문법 5 - 람다(lambda) 함수 파이썬에서 "lambda" 는 런타임에 생성해서 사용할 수 있는 익명 함수 입니다. 이것은 함수형 프로그래밍 언어에서 lambda와 정확히 똑같은 것은 아니지만, 파이썬에 잘 통합되어 있으며 filter(), map(), reduce()와 같은 전형적인 기능 개념과 함께 사용되는 매우 강력한 개념입니다. lambda는 쓰고 버리는 일시적인 함수 입니다. 함수가 생성된 곳에서만 필요합니다. 즉, 간단한 기능을 일반적인 함수와 같이 정의해두고 쓰는 것이 아니고 필요한 곳에서 즉시 사용하고 버릴 수 있습니다. 람다의 정의는 간단합니다. lambda 인자리스트: 표현식 >>> g = lambda x: x**2 >>> print(g(8)) 64 >>> >>> f = lambda x, y: x + y >>> pri.. 2018. 4. 4.
AX5UI - GRID 4 (총계와 소계) 이번에는 그리드에서 총계와 소계를 표현하는 방법을 알아 봅니다. 1. 그리드에 계산열 추가 - 그리드내의 다른 컬럼 값으로 계산된 값을 가지는 컬럼을 추가 합니다. - "unitPrice"는 그리드의 데이터에는 없는 값이지만, 금액을 주유량으로 나눈값으로 리터당 단가를 표시합니다. columns: [ { key: "unitPrice", label: "단가", formatter: function() { return ax5.util.number(this.item.price / this.item.amount, {"money": true}); }, align:"center" } ] 2. 그리드내의 소계 - 소계는 지정된 기준 컬럼에 대해 오름차순으로 정렬할 후 동일한 값끼리 그룹핑하여 소계를 보여줍니다.(처음 .. 2018. 4. 4.
스프링프레임웍에서 POI를 사용한 대용량 엑셀 다운로드 업무중에 데이터를 엑셀파일로 내려 받아야 할 경우가 많이 있습니다. 이럴때 데이터량이 적을 경우는 문제가 되지 않지만, 다운 받아야 할 데이터가 수만건에서 수십만건 이상 된다면 여러가지 문제가 발생합니다. 첫 번째로 엑셀 자체의 한계가 있습니다. xls 형식의 엑셀 파일은 한 시트에 최대 65,535행의 데이터를 가질 수 있습니다. xlsx 형태의 엑셀 파일은 한 시트에 최대 1,048,576행의 데이터를 가질 수 있습니다. 현업에서 쓰고 있는 엑셀 버전과 다운로드 되는 최대 데이터량에 따라 어떤 방식을 사용할지 결정하게 해야 하겠습니다. 두 번째로 엑셀 라이브러리를 사용해서 엑셀 파일을 생성할 때 메모리 상에서 작업을 하게 되면 대용량 다운로드 중에 메모리 부족상황에 빠지거나 시스템이 현저히 느려지는 .. 2018. 4. 4.
스프링프레임웍 ajax 파일업로드 - jQuery, FormData, jQuery Form Plugin 사용 이 글에서는 스프링 프레임웍 환경에서 ajax를 통한 파일 업로드 방법을 알아 보겠습니다. 서버와의 ajax 통신에는 jQuery를 사용하고 업로드를 위해서 FormData 객체를 사용하는 방법과 jQuery Form Plugin 을 사용하는 방법을 알아 보겠습니다. 전체소스는 하단에 첨부 되어 있습니다. jQuery Form Plugin 은 https://github.com/jquery-form/form 에서 다운로드 받을 수 있습니다. 두 가지 방법의 차이점은 다음과 같습니다. - FormData를 사용하는 경우 : Internet Explorer 10이상 부터 사용할 수 있습니다. - jQuery Form Plugin을 사용하는 경우는 IE10 이하에서도 사용할 수 있지만 문제를 일으키는 경우도 있.. 2018. 4. 4.
전자정부 표준프레임워크 및 all in one 샘플 프로젝트 설치 “전자정부 표준프레임워크”는 공공사업에 적용되는 개발프레임워크로써 현재 최신버전은 3.6.0 입니다. 3.6.0 버전의 개발환경은 JDK1.7 이상을 필요로합니다. IDE는 eclipse Mars 4.5로 되어 있으며 Spring Framework를 기반으로 하여 다양한 공통 컴포넌트가 제공되어 집니다. 이 글에서는 전자정보 표준프레임워크 3.6.0 개발환경을 설치하고, 같이 제공되는 all in one 프로젝트를 설치하여 실행해 보겠습니다. - JDK의 설치는 "윈도우에 JDK 8 설치하기" 를 참고 하세요. - 데이터베이스의 설치는 "Oracle 11g Express Edition 과 SQL Developer 설치하기" 를 참고하세요. - 다음 사이트에서 Tomcat 8.0 을 64-bit Windo.. 2018. 4. 4.
Visual Studio Community 2017 설치하기 개인 개발자가 무료로 사용할 수 있는 Visual Studio Community 2017 버전에 발표되었습니다. 개인 개발자의 경우 Visual Studio Community 2017으로 무료 및 유료 앱을 개발할 수 있습니다. 기업의 경우에는 오픈소스 프로젝트나 교육용으로만 사용할 수 있습니다. 전에는 비주얼 스튜디오로 윈도우용 프로그램 개발과 웹 개발을 할 수 있었습니다. 이제는 모바일, 리눅스용 프로그램도 개발할 수 있다고 합니다. 그렇치만 나는 C++를 배워 보려고 설치를 합니다. 1. 다음 사이트에서 프로그램을 다운 받을 수 있습니다. https://www.visualstudio.com/ko/vs/community/ 2. 다운로드를 클릭해서 설치파일을 다운 받습니다. 자동으로 다운이 안될 경우에.. 2018. 4. 4.
PhoneGap Desktop 사용하기 "PhoneGap Desktop 설치하기"에서 설치한 PhoneGap Desktop을 사용하여 간단한 App 을 만들고 실행해보겠습니다. 1. 새 프로젝트를 만들기 위해서는 상단의 메뉴에서 File -> Create new project 를 선택하거나 좌측 툴바에서 + 아이콘을 눌러 create new PhoneGap project... 를 선택합니다. 2. Create new PhoneGap project... 를 누르면 나오는 화면입니다. 프로젝트 템플릿을 선택합니다. 여기서는 Hello World 템플릿을 선택하고 Next 버튼을 누릅니다. 사용할 수 있는 템플릿은 다음과 같습니다. - Hello World : Hello World를 출력하는 간단한 템플릿 입니다. - Blank : 빈 템플릿입니다.. 2018. 4. 4.
PhoneGap Desktop 설치하기 이전의 "PhoneGap CLI 설치하기" 에서 Command Line Interface 를 사용해서 PhoneGap 애플리케이션을 개발할 수 있도록 설정 하는 방법을 알아봤습니다. 요즘은 GUI가 익숙해지다보니 명령행 인터페이스로 개발하는것은 상당히 불편하게 느껴지는것 같습니다. 또한 폰갭이 이클립스나 안드로이드 스튜디오와 연동도 잘 되지 않아 개발에 불편이 있었습니다. PhoneGap Desktop은 프로젝트를 생성하고 관리하는 기능만을 GUI로 구현하고 있습니다. 코드를 작성하는 에디터나 빌드툴 등은 없습니다. 단순히 CLI 로 프로젝트를 생성하고, 테스트용 웹서버를 구동하는 등의 작업만을 GUI로 지원 합니다. Adobe 에서 제공하는 GUI 개발툴인 PhoneGap Desktop을 설치하는 방법.. 2018. 4. 4.
AX5UI - GRID 3 (Row 와 Column 다루기) 이번에는 AX5UI 그리드에서 행과 열을 추가, 수정, 삭제 하는 방법을 알아 봅니다. "AX5UI - GRID 1 (기본 사용법)" 에서 사용된 예제에 기능을 추가해서 테스트 했습니다. 다음 내용들이 테스트 소스에 수정 및 추가된 내용들 입니다. 행을 추가하는 addRow 메소드 실행시 오류가 #31 번 패치로 수정되었는데, ax5ui-kernel에는 아직 반영되지 않은것 같습니다. ax5grid.min.js 를 직접 사용합니다. 이때는 ax5core.min.js도 함께 포함해야 합니다. 버튼을 추가합니다. 행 추가 행 삭제 행 업데이트 열 추가 열 삭제 열 수정 이벤트 핸들러를 추가합니다. 실행화면입니다. 1. 행 추가 행의 추가는 그리드의 addRow 메소드를 사용합니다. ax5grid.addRow.. 2018. 4. 4.
ORACLE 작업(JOB)의 실행 일정관리 - DBMS_JOB ORACLE에서 주기적으로 작업을 실행하고 작업 큐 내의 작업들을 관리하는데, DBMS_JOB 패키지가 사용됩니다. Oracle 10g 부터는 좀더 확장된 기능을 가진 DBMS_SCHEDULER 패키지가 제공됩니다. DBMS_JOB 패키지도 그대로 제공됩니다. 이번에는 DBMS_JOB 패키지에 대해서 알아봅니다. DBMS_JOB 패키지를 사용하는데 특별한 시스템 권한이 요구되지 않습니다. 작업(Job)은 작업의 소유자가 아닌 다른 사용자가 수정 또는 삭제 할 수 없습니다. Job 으로 실행할 프로시저(Procedure)자신이 소유자가 아니더라도 실행(Execute)권한이 있으면 작업으로 실행시킬 수 있습니다. 주의해야할 점은 작업이 시작되어서 실행되는 중에 작업을 중지시킬 수 있는 방법은 없다는 것입니다.. 2018. 4. 4.
파이썬 문법 4 - 함수(function) 파이썬에서 함수를 정의하고 사용하는 방법에 대해서 알아 봅니다. 함수를 코드를 모아 두었다가 재사용할 수 있는 방법입니다. 이미 앞에서도 함수를 사용했었습니다. 바로 글을 출력하기 위한 print() 함수 입니다. >>> print('Hello, Python!') Hello, Python! >>> 이러한 미리 만들어져 있는 많은 유용한 함수들이 많이 있습니다. 이번에 해볼 것은 자신이 필요한 함수를 정의해서 사용하는 것입니다. 두 값을 더하는 간단한 함수를 하나 만들어보겠습니다. >>> def add(arg1, arg2): c = arg1 + arg2 return c >>> print(add(2, 3)) 5 >>> - 함수 정의의 시작을 def 로 시작합니다. - 그 뒤에 공백으로 띄우고 함수명이 나옵니.. 2018. 4. 4.
자동등록방지 구글 reCAPTCHA(리캡챠) 설치하기 - PHP 로봇에 의한 스팸글 등록 및 자동회원 가입을 막기 위한 구글 reCAPTCHA 를 설치하는 방법에 대해서 알아보겠습니다. 구글 reCAPTCHA는 글쓰기 또는 회원 등록 페이지에서 사용자의 동작을 분석하여 로봇으로 판단이 되면 이미지중에 특정 부분을 선택하는 창이 띄워 사람임을 확인하도록 합니다. 리캡챠를 사용하기 위해서선 구글에 가입을 하여 사이트키와 프라이빗키를 발급받은 후, 리캡챠를 사용할 도메인을 등록하여야 합니다. 현재 제공되는 방식을 사용자가 로봇이 아님을 나타내기 위해서 직접 클릭해야 하는 reCAPTCHA v2 와 클릭하지 않아도 자동으로 판단하는 Invisible reCAPTCHA가 있습니다. 각각의 사용하는 방법에 대해서 알아 보겠습니다. 구글 계정이 있다고 가정을 하고 다음 사이트로 .. 2018. 4. 4.
AX5UI - GRID 2 (설정 상세) 그리드 설정에 대한 상세한 내용을 알아 보겠습니다. 1. 헤더 그룹 그리드의 colums 설정값으로 헤더 그룹을 만들 수 있습니다. 아래 예는 기본 정보 그룹에 내에 주행거리, 금액을 가지는 예입니다. - 헤더와 데이터행 모두 기본 정보를 가지게 되므로 멀티 라인이 됩니다. columns: [ {key: "date", label: "날짜", formatter: "date", align: "center"}, {key: "type", label: "구분", align: "left"}, {key: "repair", label: "정비내역", align: "center"}, {key: "amount", label: "주유량", align: "center"}, { key: "basic", label: "기본정보".. 2018. 4. 4.
SQLyog 사용법 이글에서는 SQLyog Community Edition의 사용법을 알아봅니다. 설치 및 데이터베이스 연결설정은 "SQLyog - MySQL 관리툴 설치하기"를 참조 하세요. SQLyog는 MySQL, MariaDB 모두에서 동일하게 사용할 수 있습니다. 실제 이 글을 쓰면서 테스트는 MariaDB에서 하였습니다. 0. 화면 구성 SQLyog 의 화면구성은 상단에 메뉴 영역, 그 아래에 툴바가 있고, 그 아래에 현재 연결된 서버 이름이 보이는 탭이 있습니다. 여러개의 서버에 연결을 하여 사용중이라면 이 탭이 연결된 서버 만큼 증가할 것입니다. 그 아래에는 하나의 연결된 서버에 대한 작업을 할 수 있는 세군데 영역으로나뉘는데 좌측에는 트리 구조로 데이터베이스 정보들이 보여집니다. 우측 상단에는 쿼리를 입력해.. 2018. 4. 3.
AX5UI - GRID 1 (기본 사용법) 업무용 웹 프로그램에서 데이터를 표현하는데 테이블 형식을 많이 사용합니다. 초기 웹 프로그래밍에서는 지금도 많이 사용되는 게시판 프로그래밍처럼 데이터는 태그를 사용해서 보여주고, 내용의 입력 또는 수정 작업을 위해서는 다른 페이지로 이동하여 작업을 하는 형태를 사용했습니다. 이러한 형태는 화면전환이 계속 발생하게 됩니다. 다음으로 사용하던 형태는 테이블의 각 셀에 입력 필드(inut tag)를 사용해서 데이터를 보여주고, 입력/수정할 수도 있게 하고, 실제 데이터를 서버로 전송해서 처리하는 작업은 JavaScript를 이용해서 숨겨진 iframe을 통해 처리하는 방식을 사용했습니다. 화면 전환 없이 한 화면에서 모두 처리할 수 있었습니다. 업무용 C/S 프로그램들이 웹프로그램으로 점점 더 많이 전환되기 .. 2018. 4. 3.