이번 글은 오픈 플래시 차트를 설치한 ("PHP로 오픈 플래시 차트 출력하기" 참조) 이후 각 차트에 대한 실제 모습과 PHP 예제 코드를 참조하기 위해서 작성되었습니다. 3D Bar srand((double)microtime()*1000000); $data = array(); // add random height bars: for( $i=0; $iset_values( $data ); $bar->colour = '#D54C78'; $x_axis = new OFC_Elements_Axis_X(); $x_axis->set_3d( 5 ); $x_axis->colour = '#909090'; $x_axis->set_labels( array(1,2,3,4,5,6,7,8,9,10) ); $chart = new OF..
PHP 환경에서 웹페이지에 그래픽 차트를 출력하는 방법은 imagecreate() 함수로 시작하여 서버에서 직접 도표를 그려서 PNG나 GIF와 같은 동적 이미지를 생성하여 내려보내는 전통적인 방법이 있습니다. 이 방법을 사용하면 서버에서 도표를 그리는 과정에 여러가지 융통성을 부여할 수 있다는 장점이 있습니다. 데이터 생성과 그래픽을 모두 서버에서 수행한다는 특징이 있습니다. PHP 환경에서 웹페이지에 그래픽 차트를 출력하는 또다른 방법은 플래시(Flash) 오브젝트를 활용하는 것으로 도표 출력을 위한 데이터는 서버에서 생성하지만 차트 출력은 클라이언트의 플래시 오브젝트에서 수행하는 특징이 있습니다. 오픈 소스인 OFC(Open Flash Chart, https://sourceforge.net/proj..
제주 여행을 계획하면서 제일 고민되는 것은 역시 숙소입니다. 5성급 호텔을 부담없이 예약하는 수준이라면 고민이랄 것도 없지만 여행 비용중에서 큰 비중을 차지하는 숙박비용을 최소화하려면 적정수준의 숙박은 필수 요소일 수 밖에 없습니다. 싼걸로 치자면 찜질방이나 게스트하우스(1인 침대, 도미토리)도 후보에 오를 수 있지만, 중국인 관광객으로 북적인다는 찜질방은 자도 잔것 같지 않을것 같아 제외하고 게스트 하우스의 경우에는 2인이면 일반 모텔값과 크게 다르지 않을 것 같아서 제주 시외버스 터미널 근처의 모텔을 찾았습니다. 다음에는 백패킹으로 올레 걷기도 시도해 볼까 합니다.버스에서 내리기 전에 오프라인 지도 앱("오프라인 지도, 여행용 지도로는 MAPS.ME(MapsWithMe)" 참조)에 숙소의 위치를 찍고..
두 사람이 뭍에서 제주까지 왕복 10만원으로 건너올 수 있으리라고는 상상하지 못했었는데 실제로 제주로 건너오고 보니 이제야 실감이 납니다. 비용이 싸다보니 저녁 비행기로 제주에 도착하고 아침에 제주를 떠나야 하는 점이 아쉽지만 여행을 다녀오고보니 이렇게 다녀오는 것도 그리 나쁘지 않네요. 체력의 한계를 느낄 무렵에 제주를 떠나는 ......저녁에 제주에 도착했다고 그냥 숙소에 들어가는 것은 너무도 아쉬워서 공항 주변을 걷는 공항 올레와 제주 카페 거리를 걷기로 했습니다. 밤 걷기이니 만큼 혼자서 걷기 보다는 안전을 위해서 라도 동료와 함께 걷는 것은 말할 나위가 없겠죠!공항 올레는 위의 사진처럼 올레길 17코스의 일부로 제주 공항 주변 길을 걷습니다. 공항을 나서는 길에서는 이국적인 가로수가 인상적이지만..
C언어에서 함수 만큼이나 중요한 요소가 있을까 싶을 정도로 C언어에서 꼭 이해가 필요한 영역입니다. 함수를 사용하기 위해서는 선언(Declaration)과 정의(Definition)가 있어야 하는데 사용할 함수가 동일한 소스 코드에 위치하는 내부 함수의 경우에는 선언부를 생략하고 정의만 하기도 하지만 선언부를 소스 코드 상단이나 헤더 파일에 기술하고 하단부에 함수의 몸체(Body)를 정의하는 방식을 주로 사용합니다. void swap(int *i1, int *i2); int main() { int a = 10; int b = 20; swap(&a, &b); printf("\na = %d , b = %d", a, b); } void swap(int *i1, int *i2) { int tmp; tmp = *..
제주를 싸게 다녀오는 계획을 구상하는 사람에게 저가 항공사는 매우 매력적인 후보입니다. 시간대와 일자만 적절하게 준비하면 육지를 무궁화를 타고 다녀오는 것보다 훨씬 저렴하고 빠르게 다녀올 수 있습니다. 탑승 준비 1시간을 감안하더라도 고속버스 타듯이 다녀올 수 있습니다. 청주공항의 경우 제주항공, 진에어, 이스타항공도 취항하고 있는데 각 회사 홈페이지에서 비교후 이번 일정에서 가장 저렴한 이스타 항공을 선택했습니다. 일정 마다 각 회사별로 요금 차이가 있기 때문에 비교해 보는 것이 좋습니다. 아래는 국내 저가 항공사의 예약조회 링크입니다.제주항공 : http://www.jejuair.net/진에어 : http://www.jinair.com/이스타항공 : http://www.eastarjet.com/에어부..
얼마전 국내 지방공항들이 적자를 벗어나 흑자로 전환하면서 활로를 찾고 있다는 뉴스가 있었습니다. 그 공항들 중에 하나가 청주공항입니다. 인접해서 오창 과학단지와 청주시를 두고 있지만 그 배후에 천안과 세종시, 대전시등이 자리하고 있어 비행편만 뒷받침된다면 앞으로도 더 발전하지 않을까 싶습니다. 유의할 점은 청주 공항이 군사 공항이라는 점인데 광주나 대구도 비숫하지만 광주나 대구의 경우에는 군사 공항 이전이 검토되고 있다는 차이점이 있습니다. 아무튼 청주 공항에서 출발하는 국제선 비행편도 늘어나고 저가 항공사들의 국내 비행편도 풍부해져서 중부 지역에 거주하는 사람들에게는 나름 매력이 있겠다 싶었습니다.대중 교통으로 가려면 시내 버스, 시외 버스를 이용할 수도 있지만 위의 지도처럼 청주 공항 기차역에서 내려..
평소 수학에 관심을 가지고 있는 사람이 아니면 수열 문제 만큼 머리 아픈 것도 없을 것입니다. 그렇지만 프로그래밍은 단순한 "코딩"이기 보다는 "문제 해결"이 목적이고, "문제 해결"의 첩경은 집중력 있는 관찰과 그를 바탕으로한 적절한 해결책을 제시하는 것이므로 이런 관점에서 수열 문제는 면밀한 관찰을 통해서 단서를 찾고 대상이 아닌 부분을 배제하며 해결책을 찾으려는 태도가 꼭 필요합니다. 24. 다음 프로그램의 출력이 “2 5 10 17 26 ”이 되도록 _________부분에 들어갈 코드는 무엇인가? int i; i = 1; while (i
귀촌후 농사를 지으면서 가장 먼저 자급자족을 이루었던 작물은 바로 마늘입니다. 집의 전 주인께서 남겨주신 5접(1접에 100개)으로 시작한 마늘이 40접이상까지 늘어났다가 선물로도 주고, 고추 심는다고 밭도 줄여가면서 농사를 지어도 자급자족에는 염려가 없네요. 가을에 심어 놓으면 겨울을 잘 견디고 장마 무렵이면 토실토실한 열매를 안겨주는, 농사 과정 만큼은 정말 편한 작물입니다. 첫해부터 한 2년 동안에는 마늘을 심으면서 정확한 간격을 맞추겠다고 5~6센티정도 홈을 내는 도구를 만들어 사용하기도 했습니다. 몇년 심어보니 그렇게 간격 맞춘다고 심혈을 기울일것 까지는 없겠다는 판단아래 망가진 호미에 긴 장대를 달아서 적당한 골을 내고 마늘간의 간격은 눈대중으로 맞추어 심는 소위 '프로'의 세계로 접어들었습니..
C언어에서는 문자열(String, 스트링) 타입을 지원하지 않습니다. char(signed char) 또는 unsigned char로 정의하는 문자의 배열이나 배열에 대한 포인터가 일반적으로 말하는 스트링이라 할 수 있습니다. 문자형 타입인 char은 1 바이트의 메모리 공간을 차지하는 타입으로 리터럴(상수)은 작은 따옴표(', apostrophe)로 a = 'A';와 같이 표현합니다. 대부분의 영문자, 숫자, 특수문자 등은 32~127 사이의 문자 값으로(아스키, ASCII) 표현 하는데 32 아래의 특수문자들은 눈에 보이지 않는 제어(컨트롤) 문자가 배정되어 있고 대표적인 제어문자로 C에서는 아래와 같이 표현할 수도 있습니다.'\a' : 알람음. 7'\b' : 백스페이스, 8'\f' : 폼피드, 12..
리눅스와 윈도우, 맥과 같은 요즘의 운영 체제는 대부분 한번에 여러개의 프로그램이나 프로세스를 실행시키는 멀티태스킹(Multi-tasking) 운영체제입니다. 멀티태스킹 운영체제에서 화면을 통해 사용자와 대화식으로 동작하는 콘솔 응용, 윈도우 폼 응용도 있지만 사용자 눈에 보이지는 않지만 백그라운드에서 동작하는 데몬(Daemon) 프로세스도 있습니다. 장치에 대한 처리를 수행하거나 일정한 예약시간에 프로그램 실행시키거나 하는 프로그램으로 윈도우에서는 이러한 데몬 프로세스를 서비스(Service)라 부르고 제어판>관리도구>서비스를 통해 관리할 수 있습니다. 위의 그림은 서비스 관리자의 목록 화면으로 일반적인 응용과 달리 시스템 구도 시점에 자동으로 시작시키는지 수동으로 시작시킬 지를 "시작 유형"을 통해서..
요즘은 스마트폰으로 영어 공부하는 재미가 쏠쏠합니다. 가족들 모두를 듀오링고 친구로 등록해놓으면 각자 수준이 얼마나 올라왔는지 확인할 수도 있겠지만 부모는 자식들 시선에 자식들은 부모 시선을 생각하면서 자극을 받는 효과가 있는것 같습니다. 무엇보다 하루에 많지는 않지만 일정한 양을 풀어나가는 진도 관리가 개인적으로는 도움이 되는것 같습니다. 예전에 이미 공부했을 법한 단어들이지만 리뷰하고 연습하고.....큰소리로 영어 문장을 읽어내는 과정 만으로도 큰 도움이 되지 않나 싶습니다.학습할 부분을 선택하는 화면에서 이미 학습을 완료한 부분은 위 그림의 "정치"부분처럼 주황색 아이콘으로 표시됩니다. 수준이 높거나 학습을 많이 하신 분이라면 앞쪽의 아이콘들은 대부분 주황색일 것입니다. 그리고 아직 한번도 학습을 ..
이번 문제를 통해서는 C언어 연산자(Operator)의 종류와 연산자별 우선 순위(Precedence)와 결합 방향(Associativity, 결합성, 연관성)을 다룰까 합니다. 연산 우선 순위는 서로 다른 연산자가 섞여 있는 경우 어떤 연산자를 먼저 수행할 것인지를 다루는 것으로 "a + b * c"인 경우 b*c를 먼저 수행하고 그 결과와 a를 더하는 작업을 나중에 수행하는 것과 같습니다. 결합 방향은 동일한 순위 레벨(+와 -는 같은 수위이고 *과 /도 동일 순위)을 가진 연산자가 섞여 있는 경우 연산 순서를 좌->우로 할지 우->좌로 수행할 지를 결정합니다. 예를 들어 "a + b+ c"는 좌->우 결합성을 가져서 a+b 결과에 c를 더합니다. 그런데 캐스팅, 주소추출등의 연산자는 우->좌 방향으..
정보 처리 과정을 가장 단순한 구조로 설명할 때 입력(Input)-처리(Process)-출력(Output)으로 말하는 것처럼 프로그램에 있어 입력과 출력 과정은 프로그램의 정체성을 나타내는 매우 중요한 부분입니다. 요즘이야 스마트폰으로 다양한 센서 정보를 받기도 하지만 전통적인 C언어의 표준 입력은 키보드이고 C언어에서는 표준 입력에 대해서 stdin이라는 파일 포인터를 제공합니다. 프로그램에서 프린터나 인터넷과 같은 통신으로 출력을 내보낼 수도 있지만 C언어에서는 표준 출력은 화면이고 C언어에서는 표준 출력에 대해서 stdout이라는 파일 포인터를 제공합니다. C언어에서는 stdin, stdout, stderr과 같은 시스템 파일포인터와 함께 표준 입출력을 위한 라이브러리 함수를 제공하는데 표준 입력에..