본문 바로가기

프로그래밍 관련

[개발] C++ 컴파일러별 최신 문법 지원 여부 ※ 요약C++은 현재 표준 작업이 C++17까지 진행된 상태다. 그런데 컴파일러들마다 최신 문법 지원 상황이 제각각인데, msvc(visual studio)와 gcc 컴파일러를 사용하는 필자는 최신 버전이 나오거나 최신 문법으로 코드를 작성할때 지원 현황을 살펴보고는 한다. 독자들에게도 소개하니 필요할때마다 참고하기 바란다. 참고로 이번에 소개하는 문서는 최신 현황보다 조금 늦어질 수도 있다는 것을 염두해 두기 바란다. 최신 버전의 문법을 테스트해보고 싶다면 최신 버전의 컴파일러를 설치하는 것도 방법이지만 온라인 컴파일러를 이용하면 더더욱 좋으니 단순히 최신 문법 테스트라면 온라인 컴파일러를 이용해보기 바란다. ※ 사이트 주소http://en.cppreference.com/w/cpp/compiler_su.. 더보기
[개발] 파이썬 다운로드 및 윈도우에 설치하는 방법 ※ 요약이번 포스트에서는 파이썬 다운로드 및 설치 방법에 대해 알아보도록 하겠다. 다운로드는 현재 날짜 기준으로 최신버전인 3.6 버전을 다운로드 받을 것이다. ※ 다운로드 링크https://www.python.org/downloads/ ※ 다운로드 및 설치 방법상기의 다운로드 링크로 이동하면 아래와 같은 화면을 볼 수가 있고 원하는 버전을 다운받을 수가 있는데, 개인적으로 3.x 버전을 추천한다. 이유는 파이썬2는 2020년까지 지원 예정이며, 지원하는 라이브러리 또한 16년 5월을 기점으로 파이썬3가 더 많은 것으로 알고 있기 때문이다. 물론 파이썬2를 사용하는 곳이 아직 많으니 원한다면 둘 다 설치해도 상관없다. 다운받은 파일을 실행하면 아래와 같은 화면이 나온다. Add Python 3.6 to .. 더보기
[개발] 마이크로소프트웨어 재발행 결정 ※ 요약 1983년 11월 첫 출간되어 32년 간 발행해온 월간 마이크로소프트웨어가 32년 만인 15년 12월에 폐간되었다가 2017년 1월부터 다시 재발행된다. 전과 다르게 3개월 간격으로 발간하며 2017년 1월 호(주제 인공지능)와 4월 호(주제 미정)는 단일 주제를 다룰 예정이다. 필자는 면접 보러 갔다가 우연히 마소 잡지를 봤었는데, 이번에 복간된다니 참으로 반갑다. e북 같은 플랫폼으로 나온다면 구독할 마음이 104%다! ※ 사이트 링크 http://www.imaso.co.kr/ ※ 폐간 관련 뉴스 http://news.mk.co.kr/newsRead.php?no=1117005&year=2015 ※ 설명 "마소가 돌아왔다" 조선미디어그룹 가족으로 재출발한 마이크로소프트웨어는 1983년 11월 .. 더보기
[개발] 2017년에 배워야할 언어 및 프레임워크와 개발툴 ※ 요약 2017년 새해가 밝았다. 새해에 큰 의미를 두는 성격은 아닌지라 평소처럼 리눅스나 엑셀, 윈도우 등을 포스팅할까 했지만 마땅히 올릴 글도 생각나지 않고 마침 적당한 글이 있어서 포스팅해볼까 한다. 제목하야 "2017년에 배워야할 언어 및 프레임워크와 개발툴". 새해를 맞이하는 개발자들에게 꼭 맞는 글이 아닌가? 그렇다고 맹신하지는 말고 재미로 보기 바라며, 새로운 언어를 배워볼까 하는 이들에게 가벼운 이정표가 됐으면 좋겠다. 아쉬운게 있다면 C++이 없다는게 아쉽더라, 필자는 모던 C++을 주로 하고 보조로 파이썬을 하는데 왜 C++이 없을까..ㅠ 최근 활발히 표준 작업도 하고 있는데 말이다. 그나마 파이썬이라도 있어서 위안이 된다. ※ 사이트 링크 http://tutorialzine.com/.. 더보기
[개발] Embarcadero C++Builder & 델파이 10.1 Berlin Starter 무료 배포 ※ 요약 Embarcadero社에서 판매하는 소프트웨어인 C++ Builder 10.1 Berlin STARTER EDITION과 Delphi 10.1 Berlin STARTER EDITION가 Update2 이후 무료버전으로 배포되어 소개하고자 포스팅한다. 무료버전으로 풀기전 가격은 각각 $238.70과 $310.20. 관심있는 독자는 다운받아 설치해보기 바란다. 사실 필자는 별관심이 없어 다운받지는 않았다. 필자는 Visual Studio와 메모장(노트패드)만 있으면 되기 때문이다. ※ 다운로드 링크 https://www.embarcadero.com/products/cbuilder/starter/promotional-downloadhttps://www.embarcadero.com/products/de.. 더보기
[개발] cppreference - cpp 레퍼런스 사이트 ※ 요약 필자가 자주 이용하는 cpp 레퍼런스 사이트를 소개하고자 한다. 이 사이트는 필자가 C++11을 공부하기 위해 찾다가 알게된 사이트인데 정리가 잘 되어 있고 설명 또한 잘 되어 있어 자주 찾는 사이트중 하나다. C++11 이후에 추가/확장된 최신 C++14, C++17에 대해서도 정보를 제공하며 C 레퍼런스도 있으므로 유용하게 이용할 수 있다. ※ 사이트 주소 http://en.cppreference.com/w/ ※ 설명 아래는 사이트에 접속한 화면이다. 필자가 자주 찾는 컨테이너들부터 string, 유틸리티, 알고리즘, 정규식, 이터레이터, C++17에 추가된 Filesystem까지 엄청나게 다양한 것들의 레퍼런스 정보를 제공한다. 아래는 컨테이너 개요 중 일부 화면이다. 각 컨테이너들의 멤버.. 더보기
[개발] 각종 진법 변환 계산기 (2진수, 8진수, 10진수, 16진수) ※ 요약 개발을 하거나 디자인(색상 코드)을 하다보면 진법 변환을 해야할 일이 생기는데, 필자는 어느 블로거가 만든 진법 변환기를 사용한다. 이 진법 변환기는 2진수, 8진수, 10진수, 16진수, 아스키코드/유니코드 등을 지원하며 진법 변환기가 블로그 페이지에 있다보니 북마크 해두고 필요할 때마다 접속해서 진법을 변환한다. ※ 링크 http://mwultong.blogspot.com/2008/02/16-2-10-8-hex-calc.html ※ 소개 아래는 사이트에 접속한 화면이다. 사용법은 직관적이므로 따로 설명하지 않겠으며 10진수, 16진수, 2진수, 8진수 등의 변환을 제공한다. 더보기
[개발] 아스키 코드 표 - ASCII Code Table 설명 ※ 요약 ASCII(아스키)는 American Standard Code for Information Interchange의 약자로써, ANSI(미국표준협회)에서 만든 표준 코드 체계다. ASCII Code를 만든 이유는, 컴퓨터는 1과 0 이 두 수로 밖에 연산을 할 수 없으므로 문자도 숫자로 기억하는데 이때, 어떤 수를 어떤 문자를 대응시키는가에 따라 다양한 인코딩 방식이 있고 표준없이 여러 인코딩 방식을 사용하다보니 호환 등의 여러 문제가 발생하여 만든게 ASCII Code다. 물론 처음 만들 때 영어권 애들이 만든데다가 다른 나라 문자는 신경 쓸 필요(혹은 여력)가 없어 영 소문자, 영 대문자, 숫자 등만 표현이 가능한데 요즘 같은 국제화 시대에는 모든 언어를 표현해야 하므로 후에 보완해서 나온 코.. 더보기
[개발] 시스템에 설치된 .Net(닷넷) 버전 확인 ※ 요약 자신의 PC에 설치된 닷넷 프레임워크(.Net Framework) 버전을 확인하는 방법을 소개하고자 한다. 버전 확인 방법은 크게 3가지다. 콘솔 창에 명령어를 입력하여 확인하는 방법과 프로그램을 이용한 방법, 마지막으로 레지스트리를 이용하는 방법이다. 이번 포스트에서는 콘솔 명령어와 프로그램을 이용한 방법을 알아보도록 하겠다. ※ .Net(닷넷)이란https://ko.wikipedia.org/wiki/%EB%8B%B7%EB%84%B7_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC ※ 콘솔에 명령어를 입력하여 확인하는 방법 먼저 콘솔에 명령어를 입력하여 설치된 닷넷 디렉토리 목록을 조회하여 설치된 버전들을 확인하는 방법이다. 아래와 같이 실행 창에 cmd를 입.. 더보기
[개발] HelloWorld - 쉽게 시작하는 프로그래밍 공부 ※ 요약 프로그래밍을 접해보지 못한 사람들도 다양한 언어를 쉽고 재미있게 공부할 수 있도록 동영상 강좌와 문제를 제공하는 사이트인 HelloWorld를 소개하고자 포스팅한다. 필자의 주력 언어는 C++인데, C++말고 다른 언어에도 관심이 생겨 찾아보다가 알게된 사이트다. 배울 수 있는 언어들로는 Python, Java, Swift, Go 등등이 있는데 나중에 더 추가가 될 것 같다. 개발을 한 번도 접해보지 못 한 일반인들의 경우 처음 개발을 시작하기 위한 절차나 접근 등이 어렵고 불편한데, 강좌와 함께 직접 코딩도 할 수 있는 환경을 만들어줘서 처음 시작하는 이들에게는 매우 큰 도움이 될 것이다. ※ 사이트 주소 http://tryhelloworld.co.kr/ ※ 설명 사이트에 접속한 화면이다. 웹.. 더보기
[개발] UAC 관계없이 파일 쓰기나 변경 가능한 폴더 - GetTempPath ※ 요약 UAC란 윈도우 비스타부터 추가된 보안을 위한 기능으로써, UAC가 켜져 있을 경우 윈도우가 설치된 시스템 드라이브(보통 C드라이브)에는 파일 쓰기나 파일 변경이 불가능하다. 이럴때는 프로그램을 관리자 권한으로 실행해도 되지만 UAC에 관계없이 파일 쓰기나 변경이 가능한 폴더 Temp 폴더에 작업을 하는게 여러모로 편리하고 안전하다. ※ 탐색기에서 temp 폴더 경로 구하기 탐색기 주소표시줄에 환경변수 %temp%를 입력하면 현재 시스템의 temp 폴더를 알 수 있다. 필자의 경우 C:\Users\사용자 이름\AppData\Local\Temp가 temp 폴더의 경로다. ※ 실행창에서 temp 폴더 경로 구하기 실행창에 환경변수 %temp%를 입력하면 temp폴더가 탐색기를 통해 열린다. ※ 윈도.. 더보기
[개발] 구글 C++ 코딩 스타일 가이드 ※ 요약 구글에서 제공하는 C++ 코딩 스타일 가이드다. 체계가 잘 잡힌 회사는 회사 내부에서 사용하는 코딩 스타일이 있을텐데, 없는 회사라면 참고해도 좋을 것이다. 원문은 영문이며 한국어 번역도 있지만 아무래도 최신보다 뒤떨어져 있다. ※ 링크 원문번역 ※ 설명 아래는 구글 C++ 스타일이다. 아래는 번역된 사이트다. 더보기
[개발] Quake3 소스코드 다운로드 ※ 요약 필자가 즐겨하던 퀘이크 시리즈는 소스코드가 공개되어있다. 관심있는 독자는 다운받아 소스코드를 분석해보기 바란다. ※ 다운로드 링크 https://github.com/id-Software/Quakeftp://ftp.idsoftware.com/idstuff/source/ ※ 설명 다운로드는 Github나 FTP에서 받을 수 있는데, 필자는 FTP 서버에서 퀘이크3 1.32b 버전을 다운받았다. 다운받은 소스코드는 Visual Studio 7.1 버전인데 14.0버전으로 마이그레이션한후 컴파일하였다. 아래는 컴파일 후 실행한 모습이다. 더보기
[개발] EasyRGB - 각 종 색상 변환 공식 ※ 요약 필자는 대학생 시절 OpenCV를 이용한 영상처리를 공부한 적이 있고, 이 경험 바탕으로 가끔 영상처리를 이용한 프로그램 개발을 취미로 할때가 있다. 그러다보면 가끔 색상 변환을 해야할때가 있는데, OpenCV를 이용하면 간단하게 변환이 가능하지만 직접 구현해야 하는 경우엔 각각의 공식을 찾아야 한다. 필자도 신입때 직접 색상 변환을 해야해서 찾은 사이트가 있어 소개하고자 포스팅한다. ※ 사이트 링크 http://www.easyrgb.com/index.php?X=MATH ※ 변환 목록 XYZ -> RGBRGB -> XYZXYZ -> YxyYxy -> XYZXYZ -> Hunter-LabHunter-Lab -> XYZXYZ -> CIE-L*abCIE-L*ab -> XYZCIE-L*ab -> CIE.. 더보기
gcc 6.1 릴리즈 ※ 요약 gcc 6.1 버전이 2016년 4월 27일 릴리즈 되었다. C++17관련하여 fold expressions, u8 character literals, extended static_assert, nested namespace definitions 등이 추가되었고, 그 밖에 많은 변경사항들이 있으므로 사이트에서 직접 확인하기 바란다. 필자는 4.8.x 버전을 이용중인데 서비스중인 서버 인데다가, gcc는 그다지 사용하지 않고 Visual Studio를 주력으로 사용하므로 업데이트 계획은 없다. ※ gcc 사이트 링크 https://gcc.gnu.org/ ※ 6.1 변경 사항 https://gcc.gnu.org/gcc-6/changes.html 더보기
윈도우 10에서 리눅스 명령어 툴 Bash Shell 지원 ※ 요약 마이크로소프트가 우분투 배포사인 캐노니컬과 손잡고 네이티브 우분투 바이러리를 윈도우10에 탑재해 올 여름 윈도우10 1주년 업데이트와 함께 출시할 예정이다. 개발자는 이번 업데이트로 인해 bash 스크립트(*.sh)를 윈도우에서 작성할 수 있으며 코드를 편집하는데 vi 혹은 emacs로 편집도 할 수 있다. 자세한 내용은 아래 링크에 더 있다. ※ 링크 http://www.itworld.co.kr/news/98580 더보기
[개발] git을 처음 시작하는 사람을 위한 간편 안내서 필자는 회사에서건 집에서건 svn을 사용한다. 당장 git을 사용할 필요는 없지만 나중에 필요할지 몰라 git 간편 안내서를 정리해둔다. git이 좋기도 하고 대세기도 하지만 svn보다 월등히 좋다거나 기존 svn 체계를 버리고 git 택할만큼의 가치는 있는지 모르겠다. git - 간편 안내서 간편 안내서 사이트에 가면 아래와 같이 설치에서 부터 git의 다양한 기능을 습득할 수 있다. 더보기
Microsoft Press에서 제공하는 무료 eBook ※ 요약 Microsoft Press에서 출간된 책 중 무료로 제공되는 eBook에 대해 다운로드 받을 수 있는 사이트에 대한 포스트이다.Topic은 App Development, Microsoft Azure, Microsoft System Center, Windows, Windows Server, SQL Server으로 나눠져 있고 권 수는 30여권으로써 그렇게 많지는 않다. 또 원서만 제공된다. ※ 주소https://mva.microsoft.com/ebooks 더보기
반복문을 사용할때 변수명을 i, j, k...n으로 하는 이유 ※ 요약 어떤 프로그래밍 언어를 선택하더라도 꼭 배우게되는 반복문, 반복문을 배울때 변수명을 보통 i나 j, k등으로 하는데 그 이유는 아래와 같이 포트란의 영향을 받아서 생긴 관습이라고 한다. ※ 출처네이버 지식인 더보기
32비트, 64비트에서의 프로세스당 사용 가능한 최대 메모리 ※ 요약 이번 포스트의 내용은 32비트나 64비트 윈도우에서 프로세스당 사용 가능한 최대 메모리에 대한 내용이다. 윈도우를 기준으로 작성하였고, 리눅스에서는 아마 적용이 안될것으로 생각된다. ※ 프로세스가 각 비트에서 사용 가능한 최대 메모리32비트 : 2GB64비트 : 8TB ※ 설명책이나 학교에서 배운대로 라면 32비트는 2^32로써 4GB를, 64비트는 2^64로써 16EB의 주소 공간을 가질 수 있어야 하지만 위의 설명에서는 각각 2GB와 8TB만 사용할 수 있다고 하였다. 이는 각 프로세스가 할당 받은 가상 주소 공간은 분할되어 있고, 분할된 영역 중에 사용할 수 있는 메모리 공간이 각각 2GB와 8TB이기 때문이다.참고로 아래는 32비트일때 분할된 각 공간의 크기다. 유저 모드 파티션이 프로세.. 더보기
OiColorPicker - 색상 추출(Color Picker) 프로그램 ※ 요약 필자가 만든 Color Picker(색상 추출) 프로그램이다. 시중에 많은 컬러 피커 프로그램들이 있고, 잘 만들어진 것도 많지만 필자가 사용할때 꼭 한 두 가지 부족한 기능들로 인해 직접 만들게 되었다. 필자가 필요한 기능 위주로 만들어서 사용자 입장에서는 더 필요한 기능이 있을 수도 있을 수 있는데, 이런 부분들은 댓글로 요청하면 가능한 선에서 추가/수정하도록 하겠다. 이 프로그램은 주로 블로그를 하면서 rgb값과 html(hex)값을 확인하기 위해 만들었다. 이 프로그램은 C++11과 마우스 후킹과 키보드 후킹 기능을 이용해서 만들었다. 마우스 후킹은 마우스의 움직임을 전역적으로 확인하려고 사용했고, 키보드 후킹은 전역 단축키(Global Hotkey) 때문에 사용했다. 제작할때 가장 힘들.. 더보기
MIL-STD-498과 개발 산출물 ※ MIL-STD-498이란 MIL-STD-498은 Military-Standard-498의 약자로써, 소프트웨어 개발과 문서화 요건을 수립하기 위한 목적으로 만들어졌다. 이 표준은 1994년 11월에 공표되었고, 1998년 5월 27일 다른 표준으로 대체되어 효력을 상실했지만 한국을 포함하여 다른 나라에서는 여전히 이 표준 규격을 따르는 경우가 많다. 위 내용의 출처는 위키백과이며, 좀 더 자세한 내용을 알고 싶다면 위키백과에 방문해보기 바란다. ※ PDF 문서 ※ DID (Data Item Descriptions) 설명 MIL-STD-498 Data Item Descriptions 단 계 해당 항목(약어) 해당 항목(전체 이름) 설명 Plans SDP Software Development Plan 소.. 더보기
[MySQL] 지난 버전 다운로드 하기 ※ 요약 필자는 MySQL에서 제공하는 Connector/C를 이용하여 13년도 09월에 프로그램을 개발한 적이 있다. 이후 13년도에 만들어진 버전을 15년도에 나온 버전으로 업그레이드를 하였는데, XP에서 실행이 안되는게 아닌가!? 원래 XP에서도 잘 실행되던게, "프로시저 시작점 InitializeConditionVariable을(를) DLL KERNEL32.dll에서 찾을 수 없습니다."라는 메시지를 출력하며 실행이 안되었다. 그래서 다시 구버전을 찾으며 정리한 내용을 포스팅 하려고 한다. ※ 지난 버전 다운로드 방법 먼저 무슨 버전을 다운로드 할 지 정해야 한다.그러기 위해서는 Version Change History를 봐야하는데, Documentation 메뉴에서 볼 수 있다.필자는 Conne.. 더보기
개발자를 위한 구글 코드 서치 ※ 요약 보통의 검색 엔진과 달리 소스코드 검색에 특화된 구글 코드 서치(google Code Search)에 대한 소개이다. 개발자를 위한 검색 엔진인 만큼 정규식을 지원하며, 다양한 언어에 대해 검색할 수 있다. ※ 주소 https://code.google.com/p/chromium/codesearch#/ ※ 소개 메인 화면이다. 다양한 검색 옵션을 적용할 수 있다. C++이나 Java같이 전통적이고 유명한 언어 외에도 Go 같이 최신 언어도 옵션 대상에 있다. ※ 다른 코드 서치 사이트 http://www.koders.com/ http://www.codase.com/ 더보기
Windows SDK for Facebook (페이스북 윈도우 SDK) ※요약 페이스북용 윈도우 SDK가 있다.지원하는 언어는 C#, C++ 이 있고, 잘 활용하면 좋을 듯 싶다. 링크 : http://microsoft.github.io/winsdkfb/ ※예시 더보기
Visual Studio와 gcc에서 사용되는 pi값 ※ Visual Studio //matches value in Visual Studio math.h3.14159265358979323846 ※ gcc//matches value in gcc v2 math.h3.141592653589793238462643383279 더보기
C++ Korea와 함께하는 마이크로소프트 멜팅팟 세미나 간단 후기 세미나 영상 링크 C++ Korea와 마이크로소프트가 진행하는 멜팅팟 세미나에 다녀왔습니다. 13시부터 18시 조금 넘어서까지 했는데 관심있던 내용들이라 시간이 후딱 가더군요 ㅋㅋ 난이도는 2부 후반부터 좀 어려웠구요. 내용은 유익하고 좋았는데 사은품은 하나도 못 건졌네여 ㅋㅋ 12월 말에 또 한다던데 그때 갈 수 있으면 또 가야겠습니다. 아래는 후기는 아니고 가서 찍은 사진 몇 장 올려요. 변화된 모던 C++, 심층분석 사은품입니다. 추첨을 통해 나눠줬는데, 하나도 못 건졌네여!! 판교 글로벌 R&D센터 로비에 있던 안내표 판교 글로벌 R&D센터 조감도 세미나 내용 끝나고 강남에서 저녁 먹으려는데 고수가 있더군요 ㅋㅋㅋㅋ 깜짝 길거리 데이트라던데, 보니까 진짜 말랐더군요 아래는 설문에 참여하면 나눠주는.. 더보기
프로젝트 오일러 - 수학 + 프로그래밍 문제 사이트 영문 프로젝트 오일러 한글 프로젝트 오일러레온하르트 오일러 오일러 프로젝트(Project Euler)는 프로그래밍과 수학적인 면들을 적절하게 조화시킨문제들을 풀기 위해 만들어진 웹사이트이다. 오리지널 사이트는 영문 버전 웹사이트로써, 영어에 부담스러운 이들을 위해 "사이냅소프트"에서 한글로 문제들을 번역해주고 있다. 문제를 풀면, 해당 문제를 푼 다른 사람들의 해결 방법도 볼 수 있을 뿐만 아니라다양한 언어들로 푼 결과를 볼 수 있다. 현재 영문 사이트의 경우 482문제가, 한글 사이트의 경우 113문제가 올라와 있다. 더보기
Wandbox - 온라인 컴파일러 ※요약 설치없이 다양한 언어들을 컴파일해 볼 수 있는 온라인 컴파일러 입니다. 웹브라이저만 있으면 이용이 가능하기 때문에 스마트폰이나 태블릿 등에서도 되며, 설치를 할 필요가 없기 때문에 간편하게 사용해 볼 수 있습니다. 저는 다른 C++ 이외의 언어들을 접할때, 해당 언어의 문법이 맞는지 확인하거나, 최신 문법 공부 및 확인할 때 사용합니다. (Visual Studio 중 가장 최신 버전인 2013도 C++11의 모든 기능을 지원하지 못하기 때문) 원래는 WandBox 하나만 소개하려고 했는데, 2개 더 링크로 걸었습니다. ※특징 - Visual Studio 2013도 아직은 C++11의 모든 기능을 지원하지 못 하는데, 온라인 컴파일러에서는 지원 가능 - 컴파일러 종류나 버전 선택 가능 - C, C+.. 더보기
부스트 라이브러리 예제 - The Boost C++ Libraries BoostBook Documentation Subset 부스트 라이브러리 예제가 필요할 때, 찾기 쉽게 하려고 그대로 퍼옵니다. 출처 : http://www.boost.org/doc/ Table of ContentsWhat's Included in This DocumentI. The Boost C++ Libraries (BoostBook Subset)1. Boost.Accumulators2. Boost.Align3. Boost.Any4. Boost.Array5. Boost.Atomic6. Boost.Chrono 2.0.47. Boost.Circular Buffer8. Boost.Concept_Check9. Boost.Container10. Boost.Date_Time11. Boost.Foreach12. Boost.Function13. Boost.Functio.. 더보기