본문 바로가기

전체 글487

파이썬 문법 6 - 이터레이터(Iterator) 와 제너레이터(Generator) 이글은 파이썬 튜토리얼의 Iterator를 정리한 것 입니다.(https://docs.python.org/3/tutorial/classes.html#iterators) 1. 이터레이터(Iterator) 파이썬에서 반복자는 여러개의 요소를 가지는 컨테이너(리스트, 튜플, 셋, 사전, 문자열)에서 각 요소를 하나씩 꺼내 어떤 처리를 수행하는 간편한 방법을 제공하는 객체 입니다. >>> for element in [1,2,3]: print(element) >>> for element in (1,2,3): print(element) >>> for element in {1,2,3}: print(element) >>> for key in {"a":1,"b":2,"c":3}: print(key) >>> for cha.. 2018. 4. 8.
Windows 10 크리에이터 업데이트 워나크라이 랜섬웨어 때문에 윈도우즈 업데이트를 하려고 설정 -> 업데이트 및 복구 페이지에 들어가 업데이트 확인을 했더니, “좋은 소식입니다! Windows 10 크리에이터 업데이트가 곧 준비중입니다. 가장 먼저 소식을 받아보시겠어요?” 라는 메세지가 떠 있어서 해보았습니다. 아마도 조금 있으면 자동업데이트에 포함되어 업데이트가 될 것으로 보입니다. 안내 링크를 클릭해서 업데이트 프로그램을 다운로드 해서 실행했습니다. 소프트웨더를 다운로드해서 재부팅하면서 설치하는데, 한시간 정도 걸린것 같습니다. 처음에는 단순 기능 업데이트인줄 알았는데, 막상 해보니 대규모 업데이트 였던것 같습니다. Microsoft가 Windows 10 에서는 이전의 서비스팩 업데이트라는 것을 하지 않겠다고 했는데, 얼마전 1주년 업.. 2018. 4. 8.
자바 문법 - 프로그램 기본구조 자바 문법에 대해 알아 보는 첫번째 글로 자바 프로그램의 기본적인 구조에 대해 알아보겠습니다. 자바는 객체 지향 언어(Object Oriented Programming Language) 입니다. 하지만 Smalltalk과 같은 언어처럼 모든 것이 객체이지는 않습니다. 자바에는 기본 타입(primitive type) 이라는 객체가 아닌 타입이 존재합니다. 일단 지금은 객체지향 언어이지만 객체가 아닌 부분도 있다는것만 알아 두면 되겠습니다. 객체 지향 언어에서는 프로그램의 기능을 객체 단위로 만들고, 이 객체들이 상호 작용하여 기능을 수행하도록 되어 있습니다. 현실 세계에서 사람, 책상 등 객체가 상호작용하여 일을 하는 것을 본따서 만들어 졌다고 합니다. 프로그램의 객체는 크게 두 가지 부분으로 나뉘는데, .. 2018. 4. 8.
C++ 문법 공부 - 콘솔 응용프로그램 기본 구조 C++ 문법 처음으로 콘솔 응용 프로그램의 구조에 대해서 알아 보겠습니다. Microsoft Visual Studio Community 2017을 사용해서 연습을 해볼 것이므로 프로그램이 설치되어 있지 않다면 "Visual Studio Community 2017 설치하기" 를 참조해서 설치하면 되겠습니다. 바로 GUI 프로그램을 해볼까 하는 생각도 해봤지만 문법부터 배워야 하는 상황이고, 당장 뭘 만들어야 하는것도 아니기 때문에 콘솔 응용프로그램으로 시작해도 문제가 없을것 같습니다. 콘솔 응용프로그램은 GUI 없이 명령창에서 실행이 되는 프로그램 입니다. 1. 프로젝트를 생성합니다. 프로젝트의 생성 정보는 다음과 같습니다. 콘솔 응용 프로젝트 생성하는 방법도 위의 설치하기 참조글 아래쪽에 나와 있습니다... 2018. 4. 8.
파이썬 GUI - wxPython Phoenix 설치하기 파이썬으로 GUI(Graphic User Interface)를 사용할 수 있는 프로그램을 만들수 있습니다. Python용 GUI 라이브러리로 가장 잘 알려진게 wxPython 이 아닐까 생각합니다. wxPython은 Python용 GUI toolkit 입니다. 이것은 C++로 작성된 크로스 플랫폼 GUI 라이브러리인 wxWidgets를 랩핑하는 Python 확장 모듈로 만들어 졌습니다. 현재 정식 릴리즈는 Python 2용 버전이고, Python 3용은 아직 개발버전으로 wxPython Phoenix 라고 불립니다. Windows 10 + Phthon 3.6.0 + wxPython 4.0.0a2 를 설치하고 테스트 해보겠습니다. 윈도우즈 10에 Python 3.6.0을 설치하는 것은 "Python 설치하.. 2018. 4. 8.
전자정부 표준프레임워크 - CKEditor 적용하기 전자정부 표준크레임워크의 Portal Site 템플릿 프로젝트에 HTML 위지윅 에디터인 CKEditor 를 적용해 보겠습니다. Portal Site 템플릿을 설치하고 보니 에디터가 적용이 되어 있지 않았습니다. 공통컴포넌트 다운로드에서 에디터로 검색해서 다운 받은 것은 htmlarea 였습니다. 그래서 all in one 템플릿 프로젝트의 게시판에 적용되어 있던 CKEditor를 Portal Site 템플릿으로 옮겨보았습니다. 이 글에서는 Portal Site 템플릿의 자유게시판 글쓰기에 CKEditor를 적용합니다. 1. 사전에 필요한 것들 - Portal Site : "전자정부 표준프레임워크 - Portal Site(Oracle) 템플릿 프로젝트 설치" 를 참고하여 설치합니다. - All in on.. 2018. 4. 8.
파이썬 웹프로그래밍 - 장고(Django)설치 Python으로 웹프로그래밍을 하려면 많은 web framework(https://wiki.python.org/moin/WebFrameworks)가 있는것 같습니다. 이들중에 가장 잘 알려진 것이 장고(Django)인것 같습니다. 이 글에서는 Django의 설치 및 간단한 샘플을 실행해 보도록 하겠습니다. Django는 신속한 개발과 깨끗하고 실용적인 디자인을 부추기는 고수준의 Python 웹 프레임 워크입니다. 라고 공식 사이트에 나와 있습니다. (https://www.djangoproject.com/) Django는 BSD 라이센스 하에 오픈 소스로 제공 됩니다 이글을 작성하는 현재 Django 의 최신 버전은 1.11.1 버전입니다. Django는 를 설치하기 전에 먼저 Python이 설치되어 있어.. 2018. 4. 4.
전자정부 표준프레임워크 - Portal Site(Oracle) 템플릿 프로젝트 설치 앞서서 all in one 템플릿 프로젝트와 Simple Homepage 템플릿 프로젝트를 Oracle 데이터베이스와 연동하여 설치해 보았습니다. 이번에는 Portal Site 템플릿을 역시 Oracle 데이터베이스와 연동하여 설치해보겠습니다. Portal Site 템플릿 프로젝트에서 제공되는 기능은 다음과 같습니다. - 사용자관리 - 권한관리 - 포털 초기화면 관리 - 포털 공지사항 관리 - 포털 FAQ관리 - 포털 행사참가 관리 Simple Homepage를 사용해서 경량환경에서 분석을 시작해보려고 했는데 너무 기능이 없었습니다. 사용자 관리, 권한관리 같은 부분이 있다고 되어 있었으나 실제 설치를 해보니 없었습니다. 메뉴에 링크만 없고 실제는 있었을 수도 있지만 그것을 찾고 있을 수는 없어서 Por.. 2018. 4. 4.
전자정부 표준프레임워크 - Simple Homepage(Oracle) 템플릿 프로젝트 설치 전자정부 표준프레임워크의 템플릿 프로젝트중의 하나인 Simple Homepage 를 Oracle 환경에서 실행되도록 설치해보겠습니다. 이 Simple Homepage 템플릿 프로젝트는 제목 그대로 단순홈페이지 기능 구현시 필수적인 부분만 사용 가능하도록 경량화된 실행환경을 제공합니다. 제공되는 기능은 다음과 같습니다. - 메인페이지 - 사용자관리 - 공지사항 관리 - 게시판 관리 - 안내 관리 템플릿 프로젝트를 설치하고 테스트한 환경은 다음과 같습니다. - OS : Windows 10 64bit - DB : Oracle 11g express edition - DB Tool : SQL Developer 4.1 64bit - Java : JDK 8 64bit - IDE : eGovFrameDev 3.6 64.. 2018. 4. 4.
파이썬 가상환경(virtualenv)만들기 파이썬을 사용할 때 기본으로 제공되는 라이브러리만 사용되지 않고 많은 기능을 제공하는 라이브러리들을 추가 하여 사용하게 됩니다. 이러한 라이브러리가 특정 프로젝트에서만 사용되거나 프로젝트를 배포할 때 필요한 라이브러리만 포함시켜 배포하고 싶을 경우가 있을 것입니다. 이럴때 사용할 수 있는것이 가상환경(virtualenv) 입니다. 가상환경을 만들고, 그 가상환경에서 라이브러리를 추가하면 추가된 라이브러리는 그 가상환경에서만 사용 되어집니다. 이 글에서는 Python 3.6 버전을 사용하여 테스트해 봅니다. Python의 설치는 이전에 작성된 글 "Python 설치하기" 를 참고 하세요. 설치 운영체제는 Windows 10 입니다. 파이썬 프로그램은 C:\util\Python36-32 폴더에 설치되어 있다.. 2018. 4. 4.
파이썬 문법 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.
거제 외도 나들이 화창한 봄날 거제 외도에 나들이를 가게 되었습니다. 주말에 집 밖으로 나가 보는게 얼마만인지 모르겠습니다. 외도는 거제도에서 배로 10여분이면 도착할 수 있는 곳으로 한려해상국립공원내에 위치하고 있는 해상공원 입니다. 한 부부가 1973년 섬을 산 후 농장, 축산 등 여러 용도로 개발하였으나 실패하고, 1976년부터 식물원으로 조성하기 시작해서 1995년 개원하게 됩니다. 주식회사 외도 자연농원이 설립되고 현재의 이름은 외도 보타니아 입니다. 개원 이래 천팔백만명이 외도를 다녀 갔다고 합니다. 부모님도 두 번이나 가 보았다고 하신 곳입니다. 보타니아가 무슨 뜻인지 정확히 알 수가 없었습니다. 공식 홈페이지(http://www.oedobotania.com)에도 설명이 없었고, 네이버 어학사전에서는 보타니아.. 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.