[C# 디자인 패턴] 팩토리 메소드 패턴 예제 (Factory Pattern) 출처 - Factory Method Design Pattern (코드 프로젝트) [링크] 컨셉 요약 - 책 유통 업체가 전국으로 배송하기 위해 3개의 대리점을 개설. 제품을 전달하는 BookStore 클래는 동부, 중부, 서부의 ShipBook() 함수를 몰라도 상관없습니다. BookStore.IDistributor이란 코드를 이용하면 되기 때문이죠. 실제론 아래처럼 사용할 수 있습니다. 123IDistributor b = bookStore.GetDistributor();//the client gets the distributor without having//to know which distributor is being use..
Qt 프로그래밍 Errors: cannot allocate an object of abstract type '???' 에러 메시지 - Errors: cannot allocate an object of abstract type '???' pure 스타일의 가상 함수를 만들어 사용 중이었는데, 자꾸 저런 에러가 뜨더라. 부모 클래스의 가상 함수(pure( = 0))를 구현하지 않은 자식 클래스는 객체 생성이 안 된다. 분명히 구현이 다 되었음에도 구현되지 않았다는 에러가 뜨길래 혹시나 해서 폴더를 뒤져봤다. 아이고... 이런 세상에... Command.h 파일 이 두 개 다. 하나는 대문자로 시작하고 하나는 소문자로 시작하네. Qt 프로그래밍 에로 사항이 이것이다. 회사 내규상 파일명은 대문자로 시작해야 하..
C# Quartz 스케줄러, 초 단위 설정 Cron 문법 (닷넷 타이머 예제 소스) Quartz를 사용할 때 Cron을 빼고 마치 타이머처럼 사용할 수 있는 예제 소스를 소개합니다. C# Quartz를 이용해 초 단위로 작업을 할 땐, 아래처럼 사용할 수 있습니다. 3번 라인에 보면 "0/2 * * * * ?" 이런 Cron 표현식이 보이는데요. 이 표현식엔 한 가지 문제가 있습니다. 59초 이상을 반복하고 싶을 땐 에러가 발생하는 것이죠. 12345ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithCronSchedule("0/2 * * * * ?") .StartAt(sta..
[토탈 커맨더] 텍스트 비교 프로그램으로 활용하기 (윈도우 10) 개발자들은 문서 텍스트 비교를 위해 Beyond Compare 등 툴을 이용하는데요. 탐색기 보다 더 편한 Total Commander가 있다면, 간단한 텍스트 비교 프로그램으로 사용해 보세요. 비욘드 컴페어만큼 편리하진 않지만 단순하게 비교하는 용도로는 괜찮네요. 이 포스트를 통해 토탈 커맨더로 문서 텍스트 비교하는 방법 알아보겠습니다. 업무에 참고해 주세요. 먼저 위 그림처럼 컨트롤을 누른채로 비교할 파일을 두 개 모두 클릭합니다. 토탈커맨더에서 선택된 파일은 빨간색으로 표시돼요. 1. 파일 - 내용으로 비교(Y)를 선택 토탈 커맨더 왼쪽 위에 있는 파일 - 내용으로 비교를 선택합니다. 그러면 내용으로 파일 비교란 창이 뜹니다. 이곳에..
C# List GetRange 부분 복사, 원하는 영역만 Copy (리스트 to array) List 복사를 할 때 전체가 아닌, 일부만 복사하는 방법입니다. (C# List 부분 복사) 저는 이전에 Array.Copy를 이용했습니다. 그래서 원본 List, 타겟 List, 시작 위치, 종료 위치까지 인자를 넘겨줘야 했습니다. 거기다가 별도의 변수도 선언해야 하고 이래저래 손 가는 부분이 좀 있었어요. 하지만, GetRange 함수를 이용하면 간단히 원하는 영역만 List를 복사할 수 있습니다. 12345678910111213141516List king = new List( new string[] { "고려 문종", "조선 문종", "신라 효종", "백제 법왕", "태봉 궁예" }); List range..
Qt QML - Cannot override FINAL property 에러 해결 Qt QML 에러 메시지Qt QML - Cannot override FINAL property 분명히 외부에 선언된 Item에서 가져온 요소들을 사용하는 데, override를 할 수 없다는 에러 메시지가 뜬다. 현재로썬, Qt QML의 버그라는 판단이 선다. 외국 블로거의 글들을 찾아봐도 이해할 수 없다는 의견이 주를 이룬다. 나도 이해가 되질 않는 에러이기도 하다. 우선은 내가 이 에러 메시지를 보게 된 경위를 살펴본다.나는 Item 요소를 외부에 선언하고 해당 property를 불러와 사용하려 했다. 그러나 제목에도 보이는 "Cannot override FINAL property"라는 메시지가 나를 만나러 와버렸다. ..
우분투 apt-get update install 에러 (Failed to fetch, Ubuntu 업데이트) 출처 - ubuntu LTS 14.04 (32bit) (깨짐) 출처는 스택 오버플로우였는데 링크가 깨졌네요. 드문 경우인듯... 아무튼, 1sudo apt-get updatecs 우분투에서 sudo apt-get update하면 아래처럼 에러가 뜹니다. 에러 메세지 123456789101112131415161718192021Ign file: binary// InReleaseIgn file: binary// Release.gpgIgn file: binary// ReleaseErr http://ports. ubuntu.com precise InRelease Err http://ports. ubuntu..
ARM 프로세서(Processor)란? 특징과 이해하기 (CPU Core) ARM Processor, 프로세서 특징일반적으로 프로세서(Processor, ARM 프로세서 포함)란, 이론적으로 메모리에 저장된 명령어들을 실행하는 유한 상태 오토마톤(Finite-State Automaton)을 의미한다. 시스템의 상태는 프로세서에 있는 레지스터의 값들과 메모리에 저장된 값들에 의해 결정된다. 각각의 명령어는 이들의 상태 변화를 정의하며 또한 다음번에 실행될 명령어를 결정한다. 1990년, 영국에서 설립된 ARM사의 ARM 프로세서Processor는 기존의 많은 프로세서의 특징들을 고려하여 설계되었다. 먼저, 휴대형 임베디드 시스템(Portable Embedded System)은 일종의 배터리 전력을 요구한다..
파이썬 - UNKNOWN ENCODING: X-WINDOWS-949 에러 에러 메세지unknown encoding: x-windows-949 에러 파이참을 쓰다 보면 발생하는 에러인데, 저도 처음 파이썬 공부할 때 이거 때문에 좀 고생했었네요.사실은 별거 아닌데.... 아래의 경로로 이동해서 UTF-8로 바꿔주면 됩니다. Settings - Editor - File Encodings - Project Encoding 인코딩만 바꿔주면 안 뜹니다. 파이썬 UNKNOWN ENCODING: X-WINDOWS-949 에러
리눅스(우분투) 패킷 캡쳐 방법, strace -s9999 참조 - How can I monitor serial port traffic? [링크] 아래처럼 터미널에서 실행시켜 로그 파일을 남겨두면 가능합니다. 1strace -s9999 -o myapp.strace -eread,write,ioctl ./myappcs 위의 링크에 나온것처럼 read 항목과 write 항목이 나뉘어져 있고, 그 앞에는 소요 시간이 찍히니 읽기/쓰기 시간에 대한 정확한 분류도 가능합니다. 리눅스(우분투) 패킷 캡쳐 방법, strace -s9999
C# 문자열 숫자 변환 방법 3가지 (TryParse, Convert, ToInt) 출처 : String to Integer [링크] C# int.TryParseint.TryParse 함수를 사용하면 문자열을 32비트 정수로 변환할 수 있습니다. 1TryParse(String, Int32)cs C# TryParse 함수는 두 개의 인자를 받습니다. 첫 번째 인자는 변환할 문자열이고 두 번째 인자는 out 키워드로 수정됩니다. 또한, 반환값은 TryParse의 성공 여부를 나타냅니다. 123456789101112131415161718try{ string num = "100"; int value; bool isSuccess = int.TryParse(num, out value); if (isSuccess) ..
3차 산업혁명과 도시 재생 사업 (이탈리아 로마) 이전 글 - 3차 산업혁명과 이탈리아 로마 (Industrial Revolution) [링크] 로마시의 녹지화 계획(도시 재생 사업)에는 수천 개의 소규모 공공 정원을 역사 및 주거 중심지 전역 곳곳에 배치하는 것도 포함된다. 슬로푸드 운동을 주창한 카를로 페트리니는 시내에 있는 학교 안에 정원을 만들어 로마 시내 학생들이 가꾸게 하는 프로젝트를 알레마노 시장과 함께 추진하기도 했다. 이렇듯 3차 산업혁명은 새롭게 활성화한 주거 중심의 도심지 바깥에는 로마의 경제 허브가 될 녹색 산업 및 상업 지구가 자리한다. 우리는 이 지구를, 로마를 저탄소 경제 모델 도시로 만들 기술 및 서비스를 개발하는 실험실로 변모해 나갈 계획이다. (구체적인 도시 재생 사업 목..