본문 바로가기

c

[MySQL/C/JAVA] MySQL 5.6 버전의 DATETIME 이슈 프로그래밍은 언제나 숫자와의 경쟁인 것 같다. 반올림이 되느냐, 부동소수점이냐, 정수 오버플로우(integer overflow) 등은 백발이 되어 코드를 만질 때 까지 항상 따라다니는 문제가 될 것이다. MySQL 날짜 관련 이슈 얼마 전 필자가 다니는 회사에서 발생한 데이터베이스 관련 이슈로 다음과 같은 문제가 발생하였다. 아래는 MySQL 관련 문제에 대하여 공유된 내용이다. MySQL 5.6.4 부터 시간값 저장시 밀리세컨드를 지원한다. 하지만 DATETIME의 경우 길이가 6일 경우에만 가능하다. 그런데, DATETIME 타입(이는 DATETIME(4)와 같다)일 경우 밀리세컨드 부분을 반올림(round)하는 버그가 있다. #68760 이 버그로 인해 1999년 12월 31일 23시 59분 59초.. 더보기
[GDB] Hopper Disassembler 앱 필자는 소프트웨어 개발에 필요한 앱은 라이선스를 구매해서 쓴다. 자랑은 아니지만 앱스토어와 그 외 구매한 앱의 개수가 200개가 넘어간다. 히힣; 오늘 소개하는 앱 처럼 제값어치 하는 앱에겐 뭔가 모를 희열을 느낀다. 여성분들이 쇼핑을 좋아하는 것처럼 -0- Hopper Disassembler 이 앱은 윈도우의 WinDbg, 그리고 GNU gdb처럼 디버거 명령줄(Command Line)에 익숙하지 않은 디버거에게 유용한 앱이다. 몇 달 전, Objective-C with LLVM 어셈블리 코드를 분석하기 위해 구매했다. Objective-C 내부적인 언어적 매커니즘을 이해하기 위해 역어셈블리 분석은 필수이기 때문이다. 그 중 이 앱은 기대한 것 보다 기능은 적지만, 사소한 곳에서 감동을 주는 앱이라 생.. 더보기
[엄씨생각] `C언어로 API 서버 개발, 생각보다 나쁘지 않아요' 글을 보고... 최근 재미있는 글을 봤다. C 언어로 모바일을 위한 API 서버를 만들었는데, 이에 대해 댓글의 토론이 가관이 아니다. 물귀신들이 들러 붙고 난리도 아니다. 아파치 모듈로 개발된 API 서버, 이음 베이론을 소개합니다. C언어로 API 서버 개발, 생각보다 나쁘지 않아요 글의 결론은 ‘모바일 API 서버를 C 언어로 만드니 성능이 좋네요’.. 이에 대항하는 물귀신들은 ‘나를 납득시킬만한 근거를 대라’, ‘C언어로 만들었다고 자랑질이냐’ 등등… 모든 사람이 경험도 다르고, 깊이도 다르니 글쓴이야 모든 눈높이에 맞춰 대응하기도 힘들겠다. 그냥 나는 내 생각대로 얘기하자면… 글쓴이가 모바일 API를 C언어로 만든 글은 필자가 보기에 자랑질도 아니고, 이런 사례를 만들었는데 놀랍더라.. 정도인 것 같은데, 글쓴.. 더보기
[퀴즈] 프로그래머를 위한 문제 #4 - 또라이 같은 C 언어 코드를 설명하라 재미있는 C 언어 문제 인터넷 RSS 피드를 구독해서 보다가 재미있는 C 언어 코드를 발견했다. 조금 난해하게 보이는 코드다. 이런 코드로 신입 개발자 면접 시험을 보면 재미있겠단 생각이 든다. 문제의 C 언어 코드는 다음과 같다. 소스 코드와 실행 결과가 전혀 매치가 안되는 이 또라이 같은 코드를 보고 순간 멈칫 할 것이다. 하지만 조금 귀 기울여 보면 말 되는 코드다. 이 링크를 클릭하면 즉시 컴파일 된 실행 결과도 함께 볼 수 있다. main() { int a,b,c; int count = 1; for (b = c = 10; a = "- FIGURE?, UMKC,XYZHello Folks,\ TFy!QJu ROo TNn(ROo)SLq SLq ULo+\ UHs UJq TNn*RPn/QPbEWS_JSW.. 더보기
[퀴즈] 프로그래머를 위한 문제 #3 - 미로 찾기 [퀴즈] 프로그래머를 위한 문제 #3 요즘 퀴즈를 풀다보니 재미가 들렸나, 필자가 문제를 하나 내보려고 한다. 어려울 수도, 그렇지 않을 수도 있는 문제이며, 효율적인 코드를 작성하는 것 보다 최대한 짧게 짜는 것이 목적이다. 문제의 유형과 정답의 유형은 지난 문제를 참고하면 된다. [퀴즈] 프로그래머를 위한 문제 #1 [퀴즈] 프로그래머를 위한 문제 #2 미로 찾기 게임 문제는 미로 찾기 게임이다. 10 x 6 (가로, 세로) 크기에 * 문자가 채워진 직사각형 미로의 크기가 변해도 실행 가능해야 한다. 문자 S 는 입구 위치, 문자 E는 출구 위치이다. S 문자와 E 문자 사이에는 공백으로 연결된 길이 있고, 길은 여러 갈래일 수 있다. 길(공백)은 2x2(가로, 세로) 이상의 공간을 가질 수 없다. .. 더보기
[퀴즈] 프로그래머를 위한 문제 #2 - 스택 프레임(Stack Frame) 프로그래머를 위한 문제 #2 얼마 전 OKJSP 를 통해 이런 문제를 보았다. 문제는 아래의 코드 중 /* INPUT */ 주석에 알맞은 코드를 넣어, victory() 메서드가 호출되도록 완성하여라. 필자의 컴퓨터에서는 답이 (function-48)(); 로 나왔다. typedef int (*f)(); int variable = 1; int function() { if(variable == 1 ) return /* INPUT */ 5; victory(); } int main() { function(); return 0; } [문제 코드] 위의 INPUT 주석에 알맞은 코드를 넣어라. 단 제약 조건이 있습니다. 다음의 문자는 사용할 수 없음 : main, victory, asm, %, *, _, #, /.. 더보기