전체 글 27

Dart, Flutter 프로젝트 생성 및 빌드

1. 플러터 홈페이지에서 프로그램을 다운로드 받는다. https://flutter.dev 페이지로 이동한다. 상단의 메뉴바에서 (Get started) 버튼을 누른다. 원하는 플랫폼을 선택한다. 여기서는 Windows 를 선택한다. Zip으로 압축된 패키지를 다운 받고, 원하는 폴더에 압축 해제 및 bin 폴더를 PATH 에 추가한다. 2. DART 프로젝트 생성 및 빌드 프로젝트를 생성할 폴더로 이동한다. 다음 명령어로 프로젝트를 생성한다. app1 폴더에 프로젝트가 생성된다. dart create app1 다음 명령어로 프로그램을 실행한다. dart app1\bin\app1.dart 다음 명령어로 빌드한다. app1\bin 폴더 및에 app1.exe 파일이 생성된다. dart compile exe a..

카테고리 없음 2023.01.21

String Boot + ThymeLeaf 프로젝트 만들기

1. Spring Initializer 페이지에서 프로젝트 골격을 만든다. 브라우저에서 https://start.spring.io/ 주소를 입력하여 연결한다. 왼쪽에서 프로젝트 관리 툴, 개발 언어, 자바 버전 등을 선택한다. 우측 상단의 Add Dependencies 에서 추가하고 싶은 모듈들을 선택한다. 모두 선택했으면 하단의 Generate 버튼을 눌러서 프로젝트 뼈대를 생성 및 다운로드 받는다. 이 때, demo.zip 파일을 다운 받게 된다. ※ 여기서는 Maven, Java, Spring Boot 3.01 로 프로젝트를 선택하고, 요소로는 Spring Web과 ThymeLeaf를 선택해서 뼈대를 만든다. 패키지는 Jar 와 War 중에서 선택할 수 있는데, Jar로 만들게 되면 내장된 tomc..

Java/Spring Boot 2023.01.15

Spring Boot로 웹 서비스 만들기

Spring Boot 프로젝트 만들기 Spring Boot 프로젝트 만들기 1. Spring Initializer 페이지에서 프로젝트 골격을 만든다. 브라우저에서 https://start.spring.io/ 주소를 입력하여 연결한다. 왼쪽에서 프로젝트 관리 툴, 개발 언어, 자바 버전 등을 선택한다. 우측 상단 zdivblog.tistory.com Sprint Boot + ThymeLeaf 프로젝트 만들기 String Boot + ThymeLeaf 프로젝트 만들기 1. Spring Initializer 페이지에서 프로젝트 골격을 만든다. 브라우저에서 https://start.spring.io/ 주소를 입력하여 연결한다. 왼쪽에서 프로젝트 관리 툴, 개발 언어, 자바 버전 등을 선택한다. 우측 상단 zdi..

Java/Spring Boot 2023.01.15

Spring Boot 프로젝트 만들기

1. Spring Initializer 페이지에서 프로젝트 골격을 만든다. 브라우저에서 https://start.spring.io/ 주소를 입력하여 연결한다. 왼쪽에서 프로젝트 관리 툴, 개발 언어, 자바 버전 등을 선택한다. 우측 상단의 Add Dependencies 에서 추가하고 싶은 모듈들을 선택한다. 모두 선택했으면 하단의 Generate 버튼을 눌러서 프로젝트 뼈대를 생성 및 다운로드 받는다. 이 때, demo.zip 파일을 다운 받게 된다. ※ 여기서는 Maven, Java, Spring Boot 3.01 로 프로젝트를 선택하고, 요소로는 Spring Web만을 선택해서 최소한의 기능으로 뼈대를 만든다. 패키지는 Jar 와 War 중에서 선택할 수 있는데, Jar로 만들게 되면 내장된 tomc..

Java/Spring Boot 2023.01.15

ezWxPython : 컨테이너 - 심플북

심플북 심플북은 노트북과 동일하게 하나의 화면에 여러개의 레이아웃을 지정하여, 현재 선택된 화면만을 보여주는 기능을 제공한다. 노트북과 다른 점이 있다면 현재 화면을 사용자가 선택하는 것이 아니고, 프로그램에 의해서 선택한다는 것이다. 따라서 심플븍에는 사용자가 선택할 수 있는 탭이 존재하지 않는다. 또한, 심플북은 다음과 같은 화면 전환 효과도 제공한다. { 'roll_to_left' : wx.SHOW_EFFECT_ROLL_TO_LEFT, 'roll_to_right' : wx.SHOW_EFFECT_ROLL_TO_RIGHT, 'roll_to_top' : wx.SHOW_EFFECT_ROLL_TO_TOP, 'roll_to_bottom' : wx.SHOW_EFFECT_ROLL_TO_BOTTOM, 'slide_..

카테고리 없음 2019.04.10

ezWxPython : 컨테이너 - 노트북

노트북 노트북은 다음 그림과 같이 여러개의 Tab에 각각 별도의 레이아웃을 지정하고, 사용자가 선택한 화면을 보여주는 컨테이너 이며, JavaFx의 TabPane 과 동일한 기능을 제공한다. 노트북에서는 파이썬의 list 자료형을 이용하여 레이아웃을 제공하며, ['탭제목1', 레이이아웃1, '탭제목2', 레이아웃2 ...] 와 같은 순서로 배치한다. 여기에서 탭제목은 일반 스트링 자료형을 사용하고, 레이아웃은 패널에 사용하는 구조와 동일하게 하나의 세로 레이아웃에 여러개의 가로 레이아운슬 포함하고 있는 구조로 구성한다. 노트북의 레이아웃은 다음과 같이 구성한다. body_def = [ [ ew.Notebook( [ "Editor", editor_layout, "Browser", browser_layout..

카테고리 없음 2019.04.10

ezWxPython : 레이아웃 II - 패널 레이아웃

패널 레이아웃 ezWxPython에서는 직관적이고 간결한 레이아웃을 만들기 위해서 기본적으로 최상위에 하나의 세로 레이아웃만 제공하며, 여기에 포함된 다수의 가로 레이아웃으로 화면을 구성하도록 되어 있다. 웬만한 프로그램의 경우 이러한 구성만으로도 대부분의 기능을 구현 할 수 있으나, 프로그램에 따라서는 이보다 복잡한 화면 구성을 필요로하는 경우가 있다. 이러한 경우에는 패널 레이아웃을 사용하여 화면을 다양하게 확장할 수 있다. 패널은 하나의 세로 레이아웃 내에 다수의 가로 레이아웃을 가지는 독립적인 레이아웃이며, 일반 컨트롤 처럼 상위 레이아웃 내에 포함 시킬 수 있다. 실제로 WxApp 에서 제공하는 기본 레이아웃도 패널로 구성되어 있으므로, 패널 레이아웃의 작성 방법은 기본 레이아웃과 동일하게 작성..

카테고리 없음 2019.04.10

ezWxPython : 종료 이벤트

종료 이벤트 사용자가 응용프로그램을 종료하려고 하는 경우에, 프로그램에서는 작업중이던 데이터를 저장 후 종료하거나, 사용자에게 프로그램의 종료 여부를 물은 후, 사용자가 원하지 않은 경우, 프로그램을 종료하지 않도록 해야 할 때가 있다. 이 경우, 시스템의 종료 이벤트를 가료 챈 후 데이터를 저장한 후 종료하거나, 사용자의 의견을 묻는 메시지 창을 띄운 후, 해당 이벤트를 무시하도록 하여 응용프로그램이 종료하지 않도록 해야 한다. ezWxPython 에서는 WxApp 클래스의 closeHandle() 함수를 이용하여 종료 이벤트 핸드러를 등록 하도록 한다. 프로그램에서는 여기에서 데이터를 저장 후 종료하도록 할 수 있으며, 함수의 리턴 값을 False로 함으로써 프로그램을 종료하지 않도록 처리 할 수도 ..

카테고리 없음 2019.04.10

ezWxPython : 백그라운드 작업 II (Thread)

백그라운드 작업하기 II (쓰레드) 간단한 백그라운드 작업은 Idle 핸들러나, 타이머 핸들러를 이용하여 작업이 가능하나, 복잡하고 처리량이 많은 작업의 경우에는 쓰레드를 이용하는 것이 훨씬 효율적이므로, 여기에서는 쓰레드 작업 시 GUI 컨트롤을 업데이트해야 하는 방법에 대해서 알아본다. 기본적으로 사용자 쓰레드에서는 GUI를 업데이트할 수 없다. 따라서 쓰레드 작업중 GUI 업데이트가 필요한 경우에는, 다음과 같이 wx.CallAfter() 함수를 이용하여 메인 쓰레드에서 처리하도록 해야 한다. 참고 ew.callAfter() 함수는 wx.CallAfter() 함수와 동일한 wrapper 함수 이다. def threadGuiAction(status_text): def action(): appWin.s..

카테고리 없음 2019.04.10