Visual Studio C++ 에서 C26819 fallthrough 경고
Visual Studio에서 C++로 코드를 작성하다보면 다음과 같이 초록색 표시와 함께 경고가 뜨는 경우가 있다.
Visual Studio에서 C++로 코드를 작성하다보면 다음과 같이 초록색 표시와 함께 경고가 뜨는 경우가 있다.
C++만 매일 하다가 아주 가끔씩 C#을 할 때가 있는데 이럴 때마다 이게 왜 안되지? 하다가 시간을 많이 잡아먹는 경우가 종종 생긴다.
젠킨스의 빌드 과정 중 Execute Windows batch command로 스크립트를 작성할 때 다른 배치파일을 호출해야할 때가 있다. 이 경우 그냥 aaa.bat처럼 배치파일명만 입력하면 아래와 같은 에러메시지를 받게 된다.
윈도우용 서버 프로그램 개발시 서비스모드로 작동하게 하는데 이를 중지시키고자 하는 경우는 매우 빈번하다.
Visual Assist를 사용하다보면 VA Parsing… 이라는 메시지와 함께 많은 파일을 파싱하는 경우를 볼 수 있다.
Visual Studio 2017 사용 중 가끔 가다가 아래와 같은 에러가 발생한다.
코드 커버리지에 대한 설명들. https://blog.outsider.ne.kr/954
회사에 들어와서 쓰던 것 중, 성준씨의 도움으로 유니티빌드라는 컴파일 기법을 알게 되었는데…
Github에 돌아다니다보면 다음과 같은 뱃지를 볼 수 있는데,
윈도우에서 웹페이지와 통신할 때 WinHTTP 모듈을 쓰고 있었는데 이 모듈은 윈도우 전용이므로 리눅스에서는 사용이 불가능하다. cURL 모듈을 사용할 수 있는지 테스트. vcpkg로 cURL을 간단히 설치할 수 있었다. 그러나…. !
오늘 삽질했던 코드. 평소에는 double을 잘 안 쓰다보니 헷갈렸다.
C/C++에는 함수의 인자를 가변으로 다룰 수 있도록 되어있는데 이 때 사용하는 것이 va_list, va_start, va_arg, va_end 이렇게 네가지 함수다. 네가지 함수에 대한 설명은 이미 인터넷에 많이 나와있다. 그런데 이 가변인자를 문자열 형태로 사용하려고 하면 문...
빌드된 OpenSSL을 프로젝트 설정에 넣고 다시 빌드해본다.
boost에서 OpenSSL을 사용하기 위해서는 먼저 OpenSSL 설치가 필요하다. boost의 ssl 관련 파일들에서 openssl 관련 파일들을 인클루드해오기 때문이다.
boost를 1.60.0 버전을 계속 사용하다가 1.70.0으로 업그레이드하니 변경된 점이 많았다.
github를 사용하다가 얼마전부터 Travis CI 를 연동해서 사용해보기로 했다.
gyp 파일을 다 실행하고 나면 솔루션 파일과 프로젝트 파일 등이 생겨난다. 비주얼스튜디오로 솔루션 파일을 열어보면 다음과 같이 여러개의 프로젝트가 솔루션 안에 들어있다.
C++에서 엑셀파일을 다루는 법을 찾아보았다.
CentOS에서 Jenkins를 설치하는 글을 썼었는데 이제는 윈도우에서 설치해보기로 했다.
jemalloc 라이브러리가 정상 작동하므로 솔루션에 포함되어 있는 test_threads 프로젝트를 빌드해본다.
이 글은 jemalloc 을 설치하다가 애먹은 경험으로 쓰는 것. 혹시 나처럼 Visual Studio에서 jemalloc을 쓰려고 고생하는 사람들에게 도움이 되길 바란다. 그리고 퍼갈 때에는 출처도 밝혀주시기를…
tcmalloc 을 사용하기 위해 일주일 이상 삽질하다 알게된 내용.
새로운 게임서버를 만들면서 C++에서 사용가능한 암호화 라이브러리를 찾아보았다.
비주얼스튜디오에서 라이브러리 프로젝트로 프로젝트 컴파일시 다음과 같은 에러가 발생하는 경우,
리눅스에서 빌드시 다음과 같은 오류가 있었다.
개인적으로 만들고 있는 프로젝트, 프로그램들은 대부분 리눅스/윈도우간의 크로스플랫폼을 지향하고 있는데 그래서 그런지 락을 쓸 때는 std::mutex를 자주 쓰고 있다.
boost asio를 이용하여 코드를 작성 중에 다음과 같은 부분이 있었다.
.ini 파일을 파싱하기 위해 boost::property_tree 클래스를 사용했었다.
프로그램 구현 중 메모리풀이 필요한 경우가 있어 어떻게 할까 하다가 boost의 메모리풀을 찾아보게 되었다.
Google Breakpad를 사용하기 위한 방법에 대해 고생했던 것을 정리한다.
GCC로 컴파일하던 중 spdlog 라이브러리에서 컴파일시 -O3 옵션을 사용하는 것을 보고 궁금증이 생겨 찾아보았다.
간단히 스레드를 만들어 테스트 해야할 일이 있어 std::thread를 찾아보고 만들어봤다.
윈도우에서 C++ 작업시 유용한 Boost 라이브러리를 사용하기 위해서는 빌드를 해야한다. 파일시스템 등을 다루는 등의 운영체제에 의존하는 기능들을 사용하기 위해 빌드해야한다고 한다.
TBB의 컨테이너들에 대한 좋은 문서
Step 1. 소스 다운로드
프로그램 작성 중 멀티플랫폼으로 개발할 때 현재 작업 중인 컴퓨터에 따라 다른 코드를 사용하게 될 일이 생긴다.
부스트 라이브러리를 리눅스에서 사용하기 위한 절차를 기록해본다.
부스트의 쓰레드 그룹을 사용하기 위한 코드
열심히 작업하고 빌드를 하는데 계속 warning 메시지가 떴다.
euc_kr의 문자열을 UTF-8로 바꿀 때 다음의 코드를 사용한다.
C++에서 가끔 #을 붙여쓰는 변수를 봤는데 오늘 용도를 알았다.
IOCP에 대해 검색하다가 발견하게 된 좋은 문서. 데브피아의 이기탁님이 쓰신 문서라고 한다. IOCP에 대하여 자세하게 잘 설명하고 있는듯하다. 나중에 다시 생각날 때마다 보기 위해 여기에 글을 쓰고 해당문서를 저장해놓는다.
오늘 공부의 목표는 Lock/Unlock의 자동화였다.
오늘 공부하던 중 발견한 부분.
회사 스터디 커리큘럼 중 만들어 본 C++로 구현된 사칙연산 계산기이다.
네트워크 프로그래밍 책을 둘러보던 중 소켓 생성할 때 PF_INET으로 생성하는 것을 보고 이게 뭔가 싶었다. 내가 배울 때는 항상 AF_INET으로 배웠기 때문. 책에도 이에 대한 내용이 부족해서 검색해보니 여기에 대한 정보가 많았다.
string 타입의 변수 str에 문자열을 넣을 때
내가 면접 때 많이 들어봤던 질문 중의 하나였다.
메신저를 만들어보고 있는데 서버는 C++와 MFC로 클라이언트는 WPF와 C#으로 만들어보고 있다.
C/C++에서 주민등록번호를 검증하는 코드이다.
2018년 11월 30일 추가.
다음과 같은 코드가 있을 때
AWS Lightsail 에서 certbot 을 이용하여 https를 사용하고 있다. Let’s encrypt 인증서는 90일마다 갱신해줘야해서 귀찮았는데 아래와 같은 스크립트를 찾았다. 실행해보니 일단 잘 작동한다.
CentOS 7을 아주 잘 쓰고 있었는데 육아로 바쁘게 살다보니 나도 모르는 사이에 CentOS 8이 나와있었다. 무려 몇개월 전에.
CentOS 8 을 설치하고 보니 Cockpit 이라는 웹관리 시스템이 추가가 되었다. 마치 옛날에 쓰던 Webmin 과 비슷한데… 실제로 써보니 Webmin 에는 비교할 수 없을만큼 기능이 부족하다. 관리용도로는 별 의미를 두지 말아야할듯.
CentOS 7 에서 Docker로 Redmine을 설치해본다.
아파치에서 Flask로 만들어진 어플리케이션을 작동하기 위한 방법을 정리해둔다. 에러메시지는
https://www.ssllabs.com 에서 SSL 테스트를 해봤는데 DROWN 취약점이 있다고 F 등급을 먹인다.
지금 운영하는 서버에는 데디케이트 서버 라이브러리를 제작해준 회사에서 제공한 패키지가 같이 설치되어 있다.
제대로 접속이 된다면 Lightsail 관리자페이지에서 HTTPS 접속을 위한 환경을 추가한다. ssl.dongbumkim.com 도메인을 추가한 다음, 443 포트를 연다.
Lightsail을 사용하며 SSL을 적용하는 방법에 대한 포스팅이다. SSL을 써본적도 없고 앞으로도 내가 이런걸 쓸일이 있을지는 모르겠으나 한번 시도해본다. (사실은 푸우시로님의 요청으로)
잊어버리기 전에 적어둔다.
계속 사용해오던 cloudv의 가상서버에서 aws의 새로운 서비스인 lightsail로 이전했다.
plex 서버를 잘 사용 중인데 plexpy라는게 있다고 한다. 대강 보니 모니터툴 같은데 일단 리눅스에서 plexpy 를 설치해본다. 인터넷에 있는 몇몇 문서들은 도커를 이용한 설치를 예시로 하고 있는데 내 서버들은 아직 도커를 쓰지 않으므로 그냥 설치하는 것으로.
가상서버로 이사한 이후 메모리가 너무 적은지 계속 메모리 관련 에러가 난다.
새로 설치된 서버에서 레드마인을 설치하다가 알게 된 사실.
CentOS 7을 설치하고 가지고 있는 하드디스크들을 장착하고 파티셔닝을 진행했다.
Apache 2 버전에서 mod_ruid2 를 설치하기로 했다.
아파치 웹서버에서 가상호스트를 설정하여 운영하던 중에 특정 가상호스트로 들어오는 모든 요청을 특정도메인의 특정페이지로 넘길 때의 설정 방법이다.
patch 파일 만들기
Step 1. 소스 다운로드
HTTP 프로토콜을 이용해 svn 서버를 운영하고 있었는데 이러다보니 아파치 서버가 없이는 svn을 사용할 수가 없는 상황이 되었다.
최근 회사에서 Subversion에서 Git으로 이전하고 있고 나 역시도 이제부터는 Git으로 옮겨가려는 생각이라 내 서버에 Git을 설치하고 사용해보기로 한다.
리눅스 서버에 이클립스를 설치해서 사용 중이다.
회사의 형상관리시스템이 Subversion에서 GIT를 쓰기로 결정되어 GIT를 내 서버에 한번 설치해본다.
CentOS에서 nginx를 설치해본다.
phpsysinfo를 업그레이드하고 나서 보니 Code Pages 부분 즉, 시스템코드페이지가 euc-kr로 나왔다.
그동안 1년간 열심히 일해준 서버에 하드디스크를 추가해줬다.
좀더 빡세게 서버를 돌리기 위해 리눅스 서버 위에 윈도우 2008 서버를 가상화로 설치하여 사용 중이다.
KISA 한국인터넷진흥원의 인터넷침해대응센터에서는 Castle이라는 웹방화벽을 배포하고 있어서 설치해봤다. SQL 인젝션, 욕설 필터링 등등 좋은 기능이 많다.
모니터링툴인 Cacti를 설치하면 기본으로 있는 그래픽 템플릿으로 여러가지 모니터링 템플릿이 들어있는데 아쉽게도 여기에는 CPU 사용률에 대한 그래픽 템플릿이 없다. 물론 Host MIB - CPU Utilization이나 ucd/net - Load Average 같은 템플릿이 있...
사용자들의 계정확인 페이지에서 계정용량을 확인할 수 있도록 제공하고 있는데 JSP페이지에서 시스템명령을 직접 수행하고 있다.
Cacti를 설치했는데 Graph Management 페이지가 아예 빈페이지로 나왔다.
최근에 중국쪽에서 해킹시도가 감지되어 portsentry를 설치하기로 했다.
각종 Injection 공격과 웹서버를 향한 공격을 방어하기 위한 웹방화벽 프로그램들이 많이 나와있는데 내 경우에는 공개소프트웨어인 mod_security를 쓰고 있다.
phpMyAdmin을 잘 사용하고 있는데 밑에 mcrypt 모듈이 없다며 계속 경고가 뜬다.
서버의 시간이 date로 봤을 때와 hwclock 으로 봤을 때가 무려 4분이나 차이가 나서 유닉스/리눅스 시스템에서 시간을 맞추는 방법을 찾아보았다.
서버 이전을 하며 데이터를 어떻게 옮길까 고민하다가 tar로 묶은 후 wget으로 예전 서버에서 새 서버로 받아오기로 했다.
gyp 파일을 다 실행하고 나면 솔루션 파일과 프로젝트 파일 등이 생겨난다. 비주얼스튜디오로 솔루션 파일을 열어보면 다음과 같이 여러개의 프로젝트가 솔루션 안에 들어있다.
라이센스를 검색해보다가 발견한 사이트.
Google Breakpad를 사용하기 위한 방법에 대해 고생했던 것을 정리한다.
Redis를 캐시서버로 쓰고자 했을 때 SET이 되지 않았다. GET은 되는데 SET만 안되는 특이한 현상.
마제스터치2 키보드를 사용하다가 컴퓨터에 연결했는데 오른쪽 Alt 키가 한영키로 작동되지 않는 경우가 있다.
Visual Studio 2012에 Visual Assist를 설치하여 사용하면서 가장 쓸모있는 기능중 하나는 Snippet 기능이다.
patch 파일 만들기
git으로 작업을 하다가 git flow init를 한것을 깜빡 잊고 그냥 작업을 하다가 생각이 나서 git flow init를 하면 오류가 난다.
최근 회사에서 Subversion에서 Git으로 이전하고 있고 나 역시도 이제부터는 Git으로 옮겨가려는 생각이라 내 서버에 Git을 설치하고 사용해보기로 한다.
회사의 형상관리시스템이 Subversion에서 GIT를 쓰기로 결정되어 GIT를 내 서버에 한번 설치해본다.
지난번 본 전자계산기조직응용기사 실기시험 필답형 문제.
PSIAndroid 한국어 번역에 참여 시작.
작년초에 열린 Adobe Refresh 2011 에서는 BlackBerry사의 Playbook이 소개되었다.
IOCP에 대해 검색하다가 발견하게 된 좋은 문서. 데브피아의 이기탁님이 쓰신 문서라고 한다. IOCP에 대하여 자세하게 잘 설명하고 있는듯하다. 나중에 다시 생각날 때마다 보기 위해 여기에 글을 쓰고 해당문서를 저장해놓는다.
오늘 공부의 목표는 Lock/Unlock의 자동화였다.
오늘 공부하던 중 발견한 부분.
회사 스터디 커리큘럼 중 만들어 본 C++로 구현된 사칙연산 계산기이다.
네트워크 프로그래밍 책을 둘러보던 중 소켓 생성할 때 PF_INET으로 생성하는 것을 보고 이게 뭔가 싶었다. 내가 배울 때는 항상 AF_INET으로 배웠기 때문. 책에도 이에 대한 내용이 부족해서 검색해보니 여기에 대한 정보가 많았다.
내가 면접 때 많이 들어봤던 질문 중의 하나였다.
이 질문 역시 내가 면접에서 질문 받았던 문제이다. 틀렸던 문제를 다시 한번 살펴보고 공부하는 차원에서 오답노트에 적어둔다. (Q는 면접관님, A는 내가 답변한 것이다. 존칭은 생략한다.)
이 질문은 내가 여기저기 입사지원을 하고 면접을 보고 시험을 볼 때마다 매번 나왔던 질문과 문제들이다. 처음 한번은 이 문제에 대답을 못했고 그다음 다시 공부한 다음 다음번부터는 잘 대답했다.
이 질문도 내가 면접을 보며 나왔던 문제인데 막연히 알고 있던 내용이라 더 정확히 알고 나중에 다시 공부하기 위해 적어놓는다.
나도 다른 블로그를 돌아다니며 이것저것 본게 많았어서 여기에 써본다. 2012년 9월 19일 실기시험을 치르고 왔다. 오늘본 시험이기에 지금은 뇌가 싱싱하니 이렇게 적어둔다. 아마 이 글은 내가 입사지원 결과가 최종적으로 나올 때까지는 공개할 수 없을 것 같다. 그 이후에 공개해야지.
이 질문은 내가 면접을 보러다니던 당시 받았던 질문들이며 내가 제대로 답하지 못했다고 생각하는 것이다. 이 문제에 대해 더 공부하고 잊지 않기 위해 여기에 써둔다.
이 질문은 내가 N모 게임회사의 기술면접 때 받았던 질문이다. 당시에는 제대로 대답하지 못했지만 내가 몰랐던 부분을 다시 생각해보고 기억해놓기 위해 오답노트에 써둔다.
가끔 필요할 때 간단히 쓸 수 있는 MD5 복호화 페이지이다.
http://www.bloter.net/wp-content/bloter_html/2012/03/101272.html
예전에 RSS 2.0 포맷으로 데이터를 제공하려다가 찾아본 자료들이었는데 기억이 안나서 새로 찾아본다.
처음 node.js라는 이름을 들었을 때 무슨 자바스크립트 파일명인줄 알았다. 마치 JQuery 처럼 자바스크립트 라이브러리가 아닌가 했는데 찾아보니 일종의 ‘웹서버’ 시스템이라고 보면 될 것 같다.
에전에 내 포트폴리오 사이트를 모바일용으로 보여주고 싶다는 생각이 들어서 관련 프레임워크를 찾아봤었다.
플래시에서 SSL이 적용된 경로로 접근하려할때 접근이 되지 않는데 이럴 경우 다음 코드를 HTML에 삽입함으로써 해결할 수 있다.
서버에서 뭘 더 해볼까… 고민하다가 나만의 메일을 만들어 쓰기로 했다.
작년초에 열린 Adobe Refresh 2011 에서는 BlackBerry사의 Playbook이 소개되었다.
플래시에서 ComboBox 컴포넌트를 사용했는데 클라이언트측의 요구로 콤보박스의 폰트를 변경해달라는 부탁이 왔다.
플래시에서 다음과 같은 코드를 입력했을 때 캐리지리턴(=엔터)가 한번이 아닌 두번이 입력되는 현상이 발생한다.
플래시 빌더를 4.5 버전으로 새로깔고 이것저것 플러그인을 설치하던 중 예상치 못한 에러를 만났다.
무려 6.15기가의 설치 프로그램을 다운로드. 외국서버에서 받는거라 그런가 무진장 느리지만 꾹꾹 참고 다운로드 완료.
잘 동작하던 플래시 파일에서 화면 최대화 버튼이 먹질 않았다.
플래시 작업을 하면 테스트 서버에 올리고 실제 서버에 올리고 파일 갱신 URL을 호출하고 서비스 URL을 열고…. 이 많은 노가다를 하기 싫어서 자동화하기 위해 Flash Builder 4에서 ANT를 쓰고 싶어 여기저기 검색해봤다.
어떻게 어떻게 하다보니 아이폰개발쪽으로 공부하게 되었다. 학원 커리큘럼상 C를 한달 수강하고 Objective-C를 수강하게 되어있어서 지금은 C 수업을 열심히 듣는 중. 이제 2주 정도 C를 배웠는데 아직은 어렵지 않다. 처음이라 그런지 프로그래밍의 기초부분만 설명하고 있는데 문...
어도비에서 CS5 Master Collection 트라이얼판을 제공한다는 이벤트를 보고 바로 신청했다.
플래시에서 모션트위닝 기능을 점차 안 쓰게 된 이후… Only 클래스 환경에서 개발하다보면 트위닝 기능이 필요할 때가 있다.
Flash 자체에서 액션스크립트 코딩을 줄창해오다가 어느 순간부터인가 코드양이 점점 많아지면서부터 힘들어졌었다.
맥부기가 수리 다녀오면서 OSX도 새로 깔고 Adobe CS5 패키지도 새로 설치했다.
CentOS를 쓴지 몇개월째…
플래시에서 외부 파일과 통신할 때 쓰이는 방법 중 GET 방식에 이은 POST 방식.
가끔 개발자들과 연동 작업을 하다보면 플래시에서 어떻게 데이터를 넘겨달라고 지정해줄때가 많은데 그중 GET 방식과 POST 방식이 제일 흔하다.
일을 하다보면 플래시로 동영상 플레이어를 만들 일이 있는데… 가끔은 동영상 파일을 제대로 올려놓고 액션스크립트가 틀린게 없는데도 재생이 안될때가 있다.
플래시디벨롭. 거의 다 좋은데 SVN을 지원하지 않는다는점하고 영문판이라 좀 불편할 때가 있다. 가끔 레퍼런스를 찾아봐야하는데 단어에서 F1을 누르면 구글에다가 검색어를 뿌려서 페이지를 보여준다.
한게임에 들어가는 동영상플레이어 만들다가 on(releaseOutside) 를 대체할만한 이벤트가 없어서 고민하다가 걍 내버려뒀더니 한게임 플래시팀에서 버그 있다고 연락왔다. 검색엔진을 뒤진 끝에 찾아낸 해결책.
플래시에서 http-auth 방식 인증처리방법 ```actionscript // http BASIC 인증 코드 // http://www.abdulqabiz.com/blog/archives/flash_and_actionscript/http_authentica.php
플래시에서 SSL이 적용된 경로로 접근하려할때 접근이 되지 않는데 이럴 경우 다음 코드를 HTML에 삽입함으로써 해결할 수 있다.
일단 링크 주소. 찾느라 한참 고생했네 우씨. ㅡㅡ;;
플래시에 있는 액션스크립트 에디터는 너무 쓰기 불편하다. 특히 자동완성기능이 없다는거. 플렉스빌더만해도 필요한 패키지며 다 알아서 작성해주던데.
얼마전에 일하다가보니까…
var url : String = http://www.google.co.kr/; var regex:RegExp = /^http(s)?://((d+.d+.d+.d+)|((\[w-]+.)+([a-z,A-Z\]\[w-\]\*)))(:\[1-9\]\[0-9\]\*)?(/([w-./:%+@...
특정한 입력박스에서 제한된 글자만 입력 받을 수 있게하는 방법
과연 죠리퐁 한봉지 안에는 몇개의 죠리퐁이 들어있을까…?
오늘 삽질했던 코드. 평소에는 double을 잘 안 쓰다보니 헷갈렸다.
오랫만에 이곳에 글을 쓴다. 신입사원으로 지원시 열심히 썼었던 잊고 있던 오답노트를 다시 정리해본다. 경력이 3년이 넘었는데 아직도 이러한 문제조차 모르는 내 자신을 반성하며 다시 정리한다.
오늘 공부의 목표는 Lock/Unlock의 자동화였다.
오늘 공부하던 중 발견한 부분.
회사 스터디 커리큘럼 중 만들어 본 C++로 구현된 사칙연산 계산기이다.
네트워크 프로그래밍 책을 둘러보던 중 소켓 생성할 때 PF_INET으로 생성하는 것을 보고 이게 뭔가 싶었다. 내가 배울 때는 항상 AF_INET으로 배웠기 때문. 책에도 이에 대한 내용이 부족해서 검색해보니 여기에 대한 정보가 많았다.
string 타입의 변수 str에 문자열을 넣을 때
내가 면접 때 많이 들어봤던 질문 중의 하나였다.
이 질문 역시 내가 면접에서 질문 받았던 문제이다. 틀렸던 문제를 다시 한번 살펴보고 공부하는 차원에서 오답노트에 적어둔다. (Q는 면접관님, A는 내가 답변한 것이다. 존칭은 생략한다.)
이 질문은 내가 여기저기 입사지원을 하고 면접을 보고 시험을 볼 때마다 매번 나왔던 질문과 문제들이다. 처음 한번은 이 문제에 대답을 못했고 그다음 다시 공부한 다음 다음번부터는 잘 대답했다.
이 질문도 내가 면접을 보며 나왔던 문제인데 막연히 알고 있던 내용이라 더 정확히 알고 나중에 다시 공부하기 위해 적어놓는다.
나도 다른 블로그를 돌아다니며 이것저것 본게 많았어서 여기에 써본다. 2012년 9월 19일 실기시험을 치르고 왔다. 오늘본 시험이기에 지금은 뇌가 싱싱하니 이렇게 적어둔다. 아마 이 글은 내가 입사지원 결과가 최종적으로 나올 때까지는 공개할 수 없을 것 같다. 그 이후에 공개해야지.
이 질문은 내가 면접을 보러다니던 당시 받았던 질문들이며 내가 제대로 답하지 못했다고 생각하는 것이다. 이 문제에 대해 더 공부하고 잊지 않기 위해 여기에 써둔다.
이 질문은 내가 N모 게임회사의 기술면접 때 받았던 질문이다. 당시에는 제대로 대답하지 못했지만 내가 몰랐던 부분을 다시 생각해보고 기억해놓기 위해 오답노트에 써둔다.
젠킨스에서 빌드를 하고 있는데 이때 Perforce 에서 소스코드를 가져오고 빌드를 한 다음 git 으로 commin 하고 push 하는 과정을 거치고 있습니다.
CentOS 7 에서 Docker로 Redmine을 설치해본다.
SVN 데이터를 GIT으로 가져가기 위한 방법. svn2git 이라는 프로젝트를 이용한다.
코드 커버리지에 대한 설명들. https://blog.outsider.ne.kr/954
Github에 돌아다니다보면 다음과 같은 뱃지를 볼 수 있는데,
github를 사용하다가 얼마전부터 Travis CI 를 연동해서 사용해보기로 했다.
사내시스템의 아이피 변경으로 소스코드 관리 서버 URL이 변경되었다.
git을 이용할 때 무시하고 싶은 파일이 있을 때에는 .gitignore 파일을 작성하여 사용한다.
git flow 에 익숙해져 가고 있는데 hotfix 사용법에 익숙치 않아서 애를 먹었다.
git으로 작업을 하다가 git flow init를 한것을 깜빡 잊고 그냥 작업을 하다가 생각이 나서 git flow init를 하면 오류가 난다.
최근 회사에서 Subversion에서 Git으로 이전하고 있고 나 역시도 이제부터는 Git으로 옮겨가려는 생각이라 내 서버에 Git을 설치하고 사용해보기로 한다.
회사의 형상관리시스템이 Subversion에서 GIT를 쓰기로 결정되어 GIT를 내 서버에 한번 설치해본다.
MSSQL을 사용 중인데 개발 중에는 DB를 초기화 해야할 경우가 종종 생긴다. 개발 DB이기 때문에 잘못된 데이터가 들어갈 때도 있고, 프로그램 코드가 변경됨에 따라 DB에 넣어야할 데이터의 구조가 달라지며 생기는 오류 등이 나오기 때문이다.
MSSQL에서 JSON을 지원하기 시작했다. 아래에서는 JSON을 다루기 위한 방법들이다.
리눅스에서 빌드시 다음과 같은 오류가 있었다.
Redis를 캐시서버로 쓰고자 했을 때 SET이 되지 않았다. GET은 되는데 SET만 안되는 특이한 현상.
오랫만에 이곳에 글을 쓴다. 신입사원으로 지원시 열심히 썼었던 잊고 있던 오답노트를 다시 정리해본다. 경력이 3년이 넘었는데 아직도 이러한 문제조차 모르는 내 자신을 반성하며 다시 정리한다.
개발용 MSSQL 서버를 사용하면서 로그 파일 용량이 점점 늘어갔다. 평소에는 별 상관 없는데 데이터베이스를 복사 떠가려고 하거나 백업할 때마다 엄청나게 많은 시간이 소요되니… 로그 파일이 무려 3기가가 넘었다. 그래서 로그 파일 용량을 줄였다. 데이터베이스 속성을 보면 다음과 같...
로그 솔루션을 구축하던 중 JSP에서 MySQL에 데이터를 입력하다가 한글이 계속 깨졌다.
MSSQL에서 의도치 않게 락이 걸리는 상황이 발생했다. 내가 만든게 아니니 뭐…
MSSQL에서 프로시져 작성시 SELECT 하는 프로시져라면 다음의 문장을 넣는다.
MySQL에서 현재 시간을 구하고 자동으로 입력하려면 다음의 쿼리를 이용한다.
Step 1. 소스 다운로드
프로그램 제작 중 SQLBindCol 함수가 생각보다 느리게 작동하는 것을 찾아내어 이제부터 원인 찾기와 해결에 들어간다.
빌드된 OpenSSL을 프로젝트 설정에 넣고 다시 빌드해본다.
boost에서 OpenSSL을 사용하기 위해서는 먼저 OpenSSL 설치가 필요하다. boost의 ssl 관련 파일들에서 openssl 관련 파일들을 인클루드해오기 때문이다.
github를 사용하다가 얼마전부터 Travis CI 를 연동해서 사용해보기로 했다.
윈도우 서비스로 작동 중인 서버프로그램이 멈출 때의 해결방법.
새로운 게임서버를 만들면서 C++에서 사용가능한 암호화 라이브러리를 찾아보았다.
서버를 만들며 다시 해본 테스트 결과이다.
GCC로 컴파일하던 중 spdlog 라이브러리에서 컴파일시 -O3 옵션을 사용하는 것을 보고 궁금증이 생겨 찾아보았다.
dserver의 성능의 문제가 메모리할당에 대한 이슈인가 싶어서 주말동안 tbbmalloc 을 적용했다.
CGCII의 조상현님께서 공개한 CGCII 테스트 클라이언트로 dserver의 echo 성능을 측정해보았다.
새로 회사에 입사하며 기존의 소스코드를 어느정도 인수인계 받았는데 이게 생짜 C로 구현된 서버였다.
CentOS에서 Jenkins를 설치하는 글을 썼었는데 이제는 윈도우에서 설치해보기로 했다.
서버와의 통신을 위해서 프로그램을 만들 일이 있어서 이것저것 기초작업을 시작해보다가 의문이 있어서 자료형에 대해 찾아보았다.
요즘은 C와 윈도우프로그래밍을 하며 MSSQL을 좀 보고 있는 중이다.
내 서버에서는 무료로 웹호스팅 서비스를 운영 중인데 사용자지원페이지를 만들어보았다.
사용자가 적은 내용을 내 메일계정으로 보내도록 만들려고 여기저기 찾아본 끝에 결국 완료했다.
플래시 빌더를 4.5 버전으로 새로깔고 이것저것 플러그인을 설치하던 중 예상치 못한 에러를 만났다.
서버에 redmine을 정말 어렵게 어렵게… 진짜 며칠간 개삽질해가며 설치하고… 생각해보니 trac은 이클립스 플러그인이 있어서 좀 나았는데 레드마인은 없었나 한번 찾아봤다. 역시나 있다. 참조한 글은 http://rcnboys.blog.me/20119875598 이 글이다. 플래...
플래시 작업을 하면 테스트 서버에 올리고 실제 서버에 올리고 파일 갱신 URL을 호출하고 서비스 URL을 열고…. 이 많은 노가다를 하기 싫어서 자동화하기 위해 Flash Builder 4에서 ANT를 쓰고 싶어 여기저기 검색해봤다.
코드 커버리지에 대한 설명들. https://blog.outsider.ne.kr/954
Github에 돌아다니다보면 다음과 같은 뱃지를 볼 수 있는데,
Flask로 만든 라이센스서버를 윈도우에 올려보기로 한다. 테스트할 환경은 다음과 같다.
아파치에서 Flask로 만들어진 어플리케이션을 작동하기 위한 방법을 정리해둔다. 에러메시지는
gyp 파일을 다 실행하고 나면 솔루션 파일과 프로젝트 파일 등이 생겨난다. 비주얼스튜디오로 솔루션 파일을 열어보면 다음과 같이 여러개의 프로젝트가 솔루션 안에 들어있다.
Google Breakpad를 사용하기 위한 방법에 대해 고생했던 것을 정리한다.
파이썬 개발환경을 만들기 위해 이클립스에 PyDev를 설치하고 환경을 맞추다보니 에러가 생긴다.
일단 서버에 파이썬을 설치한다. 내 경우에는 CentOS 6.3에 파이썬은 2.6 버전이다. yum으로 설치할 수 있는 가장 최신 버전.
빌드된 OpenSSL을 프로젝트 설정에 넣고 다시 빌드해본다.
boost에서 OpenSSL을 사용하기 위해서는 먼저 OpenSSL 설치가 필요하다. boost의 ssl 관련 파일들에서 openssl 관련 파일들을 인클루드해오기 때문이다.
boost를 1.60.0 버전을 계속 사용하다가 1.70.0으로 업그레이드하니 변경된 점이 많았다.
리눅스에서 빌드시 다음과 같은 오류가 있었다.
.ini 파일을 파싱하기 위해 boost::property_tree 클래스를 사용했었다.
프로그램 구현 중 메모리풀이 필요한 경우가 있어 어떻게 할까 하다가 boost의 메모리풀을 찾아보게 되었다.
예전에 만들어진 소스를 분석 중 boost::asio::io_service::work 가 나오길래 무엇인지 찾아보았다.
윈도우에서 C++ 작업시 유용한 Boost 라이브러리를 사용하기 위해서는 빌드를 해야한다. 파일시스템 등을 다루는 등의 운영체제에 의존하는 기능들을 사용하기 위해 빌드해야한다고 한다.
C++만 매일 하다가 아주 가끔씩 C#을 할 때가 있는데 이럴 때마다 이게 왜 안되지? 하다가 시간을 많이 잡아먹는 경우가 종종 생긴다.
이 글은 jemalloc 을 설치하다가 애먹은 경험으로 쓰는 것. 혹시 나처럼 Visual Studio에서 jemalloc을 쓰려고 고생하는 사람들에게 도움이 되길 바란다. 그리고 퍼갈 때에는 출처도 밝혀주시기를…
C#에서 네트워크 통신을 할게 있어서 바이트오더를 빅엔디안으로 해주려다가 알게 된게 있어서 정리한다.
Registry 클래스를 이용한다.
서버에서 받은 데이터를 byte[]에 문자열을 저장하고 Message.Show()로 보여주려고 했더니 System.Byte[]만 계속 찍혔다.
NAS로 가족사진을 백업하며 사진들을 날려버리지는 않을까 항상 조마조마한 마음이 있었다. AWS S3에 가족들의 사진을 백업하게 되면서 이 불안함이 많이 사라졌다.
신경 쓰지 않고 내버려두었던 AWS Lightsail에 구축해놓은 홈페이지 서버가 갑자기 마비가 되어버렸다. 접속이 아예 안되는 것은 아닌데 무지무지하게 느려졌다. SSH로 접속해보니 CPU가 100%인 상황.
CentOS 7 에서 Docker로 Redmine을 설치해본다.
AWS를 사용하기 시작한지도 꽤 된 것 같다. 이 서비스가 나온지 얼마 안되서부터 사용하기 시작했고 아쉬운 점이 많았는데 최근에 몇가지 기능들이 추가되었다.
제대로 접속이 된다면 Lightsail 관리자페이지에서 HTTPS 접속을 위한 환경을 추가한다. ssl.dongbumkim.com 도메인을 추가한 다음, 443 포트를 연다.
Lightsail을 사용하며 SSL을 적용하는 방법에 대한 포스팅이다. SSL을 써본적도 없고 앞으로도 내가 이런걸 쓸일이 있을지는 모르겠으나 한번 시도해본다. (사실은 푸우시로님의 요청으로)
계속 사용해오던 cloudv의 가상서버에서 aws의 새로운 서비스인 lightsail로 이전했다.
신경 쓰지 않고 내버려두었던 AWS Lightsail에 구축해놓은 홈페이지 서버가 갑자기 마비가 되어버렸다. 접속이 아예 안되는 것은 아닌데 무지무지하게 느려졌다. SSH로 접속해보니 CPU가 100%인 상황.
CentOS 7 에서 Docker로 Redmine을 설치해본다.
AWS를 사용하기 시작한지도 꽤 된 것 같다. 이 서비스가 나온지 얼마 안되서부터 사용하기 시작했고 아쉬운 점이 많았는데 최근에 몇가지 기능들이 추가되었다.
제대로 접속이 된다면 Lightsail 관리자페이지에서 HTTPS 접속을 위한 환경을 추가한다. ssl.dongbumkim.com 도메인을 추가한 다음, 443 포트를 연다.
Lightsail을 사용하며 SSL을 적용하는 방법에 대한 포스팅이다. SSL을 써본적도 없고 앞으로도 내가 이런걸 쓸일이 있을지는 모르겠으나 한번 시도해본다. (사실은 푸우시로님의 요청으로)
계속 사용해오던 cloudv의 가상서버에서 aws의 새로운 서비스인 lightsail로 이전했다.
가상화를 위한 준비에서 네트워크 준비에 대해 고민을 많이 했다.
가상화를 위한 서버 하드웨어와 네트워크를 준비할 때의 참고사항을 정리해본다.
서버를 가상화하기로 생각하고 처음 생각한건 가상화 하이퍼바이저의 선택이었다. (위키피디아 : 하이퍼바이저)
드디어 8년간 사용하던 NAS의 하드디스크에서 에러메시지가 발생했다. 몰랐는데 매일매일 SMART 검사 에러메시지가 메일로 오고 있었다.
집에 설치한 서버에 CentOS 7을 설치해서 썼었지만 다시 6 버전으로 돌아가기로 결정.
PLEX 서버 설치 후 영화 추가시 데이터를 자동으로 가져오기 위해 다음검색 에이전트를 설치했다.
독일의 컴퓨터유니버스(http://www.computeruniverse.net)에서 직구한 마이크로서버 Gen8이 도착했다.
웹소켓 테스트 중 마주친 에러.
Node.js에서의 몇개의 테스트 코드를 만들어보았다.
처음 node.js라는 이름을 들었을 때 무슨 자바스크립트 파일명인줄 알았다. 마치 JQuery 처럼 자바스크립트 라이브러리가 아닌가 했는데 찾아보니 일종의 ‘웹서버’ 시스템이라고 보면 될 것 같다.
번역 작업이라고까지 말하기에는 너무 거창하지만…
CentOS를 쓴지 몇개월째…
lua에서 시간을 강제로 지연시킬 일이 있어 검색하다가 찾게된 내용이다.
루아를 연동하며 사용하다가 간단한 파일 쓰기가 필요해서 찾게된 코드.
집에 갑자기 정전이 와서 서버가 꺼져버렸다.
ASP.NET MVC : 시작 오류 'targetFramework' 특성을 인식할 수 없습니다. 특성 이름은 대/소문자를 구분합니다.
Redis Cluster에 구축방법을 작성한다. 하나의 인스턴스로 레디스는 작동하여 보았지만 클러스터 모드는 처음 접한다.
Redis Cluster에 구축방법을 작성한다. 하나의 인스턴스로 레디스는 작동하여 보았지만 클러스터 모드는 처음 접한다.
CentOS 7을 아주 잘 쓰고 있었는데 육아로 바쁘게 살다보니 나도 모르는 사이에 CentOS 8이 나와있었다. 무려 몇개월 전에.
강력한 비밀번호 정책
워드프레스와 15년
얼마전 이케아에 갔다가 아이가 가지고 놀고 있는 장난감을 보며 문득 웃음이 나왔다.