C#으로 응용 프로그램을 제작하는 과정에서 모든 라이브러리가 C# 닷넷 라이브러리로 제작되어 있다면 사용도 디버깅도 편리한 장점이 있지만 현실은 아직 언어들 예를들어 C++이나 기타 언어로 만들어진 DLL을 사용해야 되는 경우가 종종 발생합니다.PInvokeStackImbalance' 관리 디버깅 도우미가 '.........vshost.exe'에서 문제를 발견했습니다.추가 정보: PInvoke 함수 '..........::SMSUnitSend'에 대한 호출 결과 스택이 불안정하게 되었습니다. 관리되는 PInvoke 시그니처와 관리되지 않는 대상 시그니처가 일치하지 않기 때문인 것 같습니다. 호출 규칙 및 PInvoke 시그니처의 매개 변수와 관리되지 않는 대상 시그니처가 일치하는지 확인하십시오.예전에는 ..
제주 올레는 대중 교통으로도 충분히 다닐 수 있도록 코스 종점이나 시작점에 버스 정류장이 있기 마련입니다. 제주 시외버스 터미널이나 서귀포 시외 버스 터미널로 이동하는데는 무리가 없습니다. 문제는 숙소가 길에서 조금 떨어진 곳에 위치하거나 공항에서 바로 가는 것이 없어서 환승해야 하는 경우, 비행기와 버스 시간이 맞지 않는 경우등 버스 활용이 어려운 경우입니다. 이런 경우 한두명이라면 고민스러울 수 있지만 서너명이라면 과감하게 콜택시를 이용하는 것도 방법입니다. 최근 도심 지역에서는 카카오택시가 활성화되어 있어서 손쉽게 차를 부를 수 있지만, 제주의 경우는 카카오 택시를 사용하는 비중이 조금씩 늘고는 있지만 아직 지역 콜택시 비중이 높다고 합니다. 여행 지역의 콜을 미리 알아두고 부르는 것도 방법입니다...
0과 1로 정보를 표현하는 디지털 시대에서 정보의 최소 단위는 비트(Bit)입니다. "순서 논리 회로와 보수 - 정보처리 필기 해설 5"에서도 언급한 것처럼 플립플롭을 사용해서 저장하는 정보의 최소 단위는 비트입니다. 이 비트들을 모아서 다양한 정보의 단위로 사용하는데 다음과 같은 것들이 있습니다.니블(Nibble, nybble) : 4비트. 4비트는 16진수의 한자리와 같기 때문에 상위 니블, 하위 니블식으로 정보를 나누어 저장하기도 합니다.바이트(Byte) : 8비트. 문자를 표현할 수 있는 최소 단위. 워드(Word) : 컴퓨터의 정보 처리 단위라 할 수 있습니다. CPU의 레지스터 크기나 CPU가 메모리를 한번에 읽을 수 있는 단위에 따라 달라지므로 중앙처리장치(CPU)의 아키텍처가 워드의 크기를..
이번 문제는 그리 어려운 문제는 아닙니다. 다만 쉽고 단순한 알고리즘으로 풀 수 있는 문제라 하더라도 함수명, 변수명을 가독성(Readability)이 좋도록 명명하고 들여쓰기(Indentation)에 유의하면서 최적의 알고리즘을 적용하려는 노력을 기울여야 할 것입니다. 간단한 프로그램이지만 효율적인 프로그램 수행을 위한 다양한 기법을 익힐 수 있습니다. ■ 문제# 지정 옵션에 따라 다양한 형태의 ASCII 테이블을 출력하는 콘솔 프로그램을(asciitbl) 작성하세요.https://en.wikipedia.org/wiki/ASCII 를 참고합니다.화면 출력은 고정 화면폭(80자)을 기준으로 합니다.옵션을 지정하지 않으면 제어문자를 제외한(printable) 문자들만 출력합니다./a 옵션은 모든 문자를 출..
프로그래밍은 환상적인 "코딩" 보다는 완벽한 "문제 해결"에 마음을 두어야 할 것입니다. 요구사항(문제)을 잘 분석해서 핵심을 파악하는 것이 시간과 노력을 아끼는 첩경입니다. 초보 개발자 일수록 빨리 끝내려는 조급함이 오히려 함정에 빠지는 기폭제가 될 수 있으므로 "어떻게 문제를 풀 것인가?" 하는 설계가 잘 나오도록 마음을 두어야 합니다. 이번 문제는 간단하지만 방심하면 곳곳에 빈틈이 생길 수 있습니다. 완성도를 높일 수 있도록 노력해야 할 것입니다. ■ 문제 1. 프로그램 형태 및 규칙 - 콘솔 프로그램 형태이며 프로그램 아규먼트로 년도 및 월을 입력받아 해당 월의 달력을 표준 출력(화면)으로 출력합니다. - 1년 1월 1일은 월요일. 4년마다 윤년으로 2월을 29로 처리 - 4년마다 윤년이지만 10..
"데미안", "싯다르타", "페터 카멘친트"등 유난히 인상 깊었던 책들 때문일까 좋아하는 작가의 책을 다시 만나는 것은 떠나보낸 오랜 벗을 다시 만나는 기쁨만큼이나 책 표지의 저자 이름만 보아도 마음이 설렙니다. "이레" 출판사에서 펴낸 헤르만 헤세의 "정원일의 즐거움"은 글쓰기의 재주는 일천하나 시인도 되고 싶고 소설의 저자도 되고 싶은 필자와 같은이에게는 "교과서"와 같은 책이 아닐까 하는 생각이 들었습니다. 독일어 원문이 한국어로 옮겨지는 과정이 있었음에도 불구하고 헤세의 여러 시는 운문의 깊이와 시 다움을 보여주면서도 저자의 생각을 충분히 전달하고 있습니다. 옮긴이(두행숙)의 탁월함만으로는 설명할 수 없는 원작이 훌륭한 까닭이겠지요. 책의 독특함은 산문과 운문이 조화롭게 엮여 있는 것과 함께 헤세..
리눅스(CentOS) 서버를 서버 호스팅으로 하거나 내부 업무용으로 사용하는 경우 통상 sendmail을 통해 외부로 메일을 전송하는데 KISA의 화이트 도메인 등록(https://www.kisarbl.or.kr/whiteip/whiteip_tutorial.jsp 참조)등의 작업을 했음에도 불구하 메일이 도착하지 않는 경우가 있습니다. 게시판이나 공지사항에 글이 올라오면 자동으로 메일이 발송되도록 설정하고 준비 했지만 메일이 도착하지 않는다는 피드백이 오는 경우가 가끔 있지요.이렇게 메일 정상적으로 수신되지 않는 현상이 발견될 때는 우선적으로 위의 그림 처럼 메일 로그를 살펴 보아야 합니다. 필자의 CentOS 리눅스는 /var/log/maillog로 확인할 수 있었습니다. 로그를 살펴보니 네이버나 지메..
비주얼스튜디오로 Web API나 MVC 프레임웍을 사용한 응용을 개발하다보면 웹 응용임에도 불구하고 데스크탑용 닷넷 프로그램을 실행시키는 것처럼 간편하게 응용을 테스트해 볼수 있습니다. 비주얼스튜디오에서 테스트 및 디버깅을 위한 자체 웹서버를 띄우고 실제 실행 환경의 한 축인 웹 브라우저도 가동시키기 때문입니다. 이러한 과정은 로컬 호스트(127.0.0.1)에 대해서만 서비스하도록 되어 있기 때문에 스마트폰이나 다른 컴퓨터에서는 테스트하기 어렵거나 불가능한 환경입니다. 그렇지만, 프로그램을 완성하기 이전에 다양한 환경에 대한 테스트를 위해서는 비주얼스튜디오를 통한 내부 테스트를 벗어나 실제 웹서버(IIS)를 통한 테스트를 수행할 필요가 있습니다. 이번 포스팅에서는 배포 패키지를 통해서 간단하게 웹서버(I..
"정보처리기능사 필기 해설 4 - 조합 논리 회로"에서 다룬대로 논리 회로는 출력을 결정하는데 있어 현재 입력만을 대상으로 하는지, 아니면 현재 입력과 함께 과거 자료(메모리)를 사용하는지에 따라 현재 입력만을 가지고 출력을 결정하는 조합 논리 회로(Composite Logic Gate)와 메모리도 출력 결정에 사용하는 순서 논리 회로(Sequential Logic Gate)로 나눌 수 있습니다. 외부의 입력과 현재 상태(기억 기능, Memory)에 따라 출력을 결정하는 순서 논리 회로는 통상 메모리로 사용하는 플립플롭과 논리 게이트로 구성 되므로 메모리를 가진 조합 논리 회로라고도 할 수 있습니다. 대표적인 순서 논리 회로에는 플립플롭, 카운터, 레지스터, RAM, CPU등이 있습니다. 신호의 타이밍에..
※ LINQ 연관글 모음 LINQ는 무엇인가?LINQ 배우기를 위한 최적의 환경 LINQ to ObjectsLINQ 질의의 기본과 사전 타입LINQ 정렬 기능 사용하기LINQ 사용법 - 그룹과 집합 연산LINQ 조인 구문 사용하기LINQ 필터링 다루기LINQ 특정 항목 추출하기LINQ 사용법 - 변환 및 생성LINQ 집합 연산 다루기 SQL을 통해서 질의문을 작성하다보면 여러개의 SELECT문을 집합 연산을 통해서 통합 시킬 필요가 있는 경우가 있습니다. 여러 질의를 각각 수행한다음 통합하는 것 보다는 DBMS에게 해당 연산을 모두 맡기는 방법입니다. LINQ에서도 질의 결과에 대한 집합 연산을 메소드를 통해서 수행할 수 있습니다. List userinfo = new List() { new Userinf..
※ LINQ 연관글 모음 LINQ는 무엇인가?LINQ 배우기를 위한 최적의 환경 LINQ to ObjectsLINQ 질의의 기본과 사전 타입LINQ 정렬 기능 사용하기LINQ 사용법 - 그룹과 집합 연산LINQ 조인 구문 사용하기LINQ 필터링 다루기LINQ 특정 항목 추출하기LINQ 사용법 - 변환 및 생성LINQ 집합 연산 다루기 "LINQ 질의의 기본과 사전 타입"에서 다룬것과 같이 LINQ 질의의 수행시점에 따라 즉시 실행(Immediate Execution)과 지연 실행으로 나뉘어 질 수 있습니다. 질의를 선언만 하고 이후에 foreach 문장에서 실질적으로 실행하는 일반적인 지연 실행과 달리 질의 결과를 직접 받는 경우는 대부분 질의에 ToList(), First(), FirstOrDefaul..
평소 일본어 공부도 틈틈히 해두었고, 재작년 나고야-도쿄 여행 경험도 있었으니 두 모녀가 떠나는 일본 여행에 그다지 큰 심적 부담은 없지만 그래도 바다 건너 타국 땅을 밟는 것이니 꼼꼼한 계획 만큼 중요한 것은 없겠지요? 초중고 학창 시절을 끝내는 딸과 함께하는 모녀간의 여행이 즐겁고 알찬 시간이 되기를 바라면서 항공권과 숙소, 주요 이동 계획을 세워 봅니다.항공권은 6개월 단위로 일괄 개방하는 예약 일정에 따라 지난 7월에 미리 끊어두었기 때문에 부담은 덜었습니다. 유류할증료과 제반비용을 포함해서 2명 왕복에 315,000원 이었으니 중장기 여행 계획을 세워서 이벤트를 적절하게 활용하는 것은 경제적인 해외 여행의 꿀팁이라 할 수 있겠습니다. 주요 스케쥴은 아래와 같습니다.1일차 : 인천공항 출발(14:..
스마트폰으로 다양한 앱을 무료로 사용하면서 그 혜택을 마음껏 누리고 있지만 그 성능을 활용할 수 있음에도 불구하고 아쉬웠던 점이 바로 "내비게이션"입니다.(정확한 외래어 표기법은 네비게이션이 아니라 내비게이션이라 합니다) 용량도 충분하고 GPS 센서도 있고 맵 데이터 및 API가 무료로 공개되고 있는 상황임에도 내비게이션을 사용하려면 왜 굳이 인터넷에 접속해야 하나? 하는 아쉬움이 있었습니다. 필자의 경우에는 아직 피처폰을 사용하고 있고 스마트폰은 지인의 장롱폰을 인계받아 WiFi 환경에서 꼭 필용한 요도로만 활용하고 있기 때문입니다. 밴드, 카톡도 와이파이가 될 때만 잠깐 사용하고 메모나 마인드맵, 듀오링고 정도를 사용하고 해외 여행에서 Maps.Me를 활용한 정도입니다. 그런데, 이제 스마트폰을 내비..
"ASP.NET Web API 시작하기"에서 다룬 ASP.NET Web API 예제는 Visual Studio 2015 Community 버전으로 수행한 것입니다. 최신 버전의 비주얼스튜디오를 사용하고 있다면 문제될 것이 없지만 협업이나 기타 이유로 Visual Studio 2010을 사용하는 개발자의 경우에는 Web API 템플릿이 기본 제공되지 않기 때문에 간편하게 Web API 응용을 개발하는 유익을 누릴 수 없다는 한계가 있습니다. 이런 경우에는 마이크로소프트에서 제공하는 "Microsoft ASP.NET MVC 4" 패키지를 설치하면 최근 버전처럼 간편하게 Web API 응용을 개발할 수 있습니다.https://www.microsoft.com/ko-KR/download/details.aspx?i..
C언어에서 문자열 처리는 자주 사용할 뿐만아니라 반드시 익숙해져 할 만큼 매우 중요한 요소입니다. memcpy, strcpy, strncpy 등의 함수로 단순히 문자열을 복사하기, memcmp, strcmp, strncmp로 문자열 비교하기, strstr, strchr과 같은 함수로 특정 문자열이나 문자 찾기까지 C 프로그래밍에서는 너무도 빈번하게 사용하는 함수들입니다. 이번 포스팅은 문자열에서특정 항목을 추출하는 다양한 요령을 다루어 볼까 합니다. 텍스트 파일을 분석하거나 파이프나 필터를 통해서 다른 응용 프로그램의 출력을 입력으로 해서 분석하거나 웹 조회 결과를 분석하는 등의 과정에서 특정 단어를 추출하거나 숫자 항목을 추출하는 등의 작업은 C 프로그래밍에서 피할 수 없는 숙명과 같은 작업입니다. /..