소프트웨어/알아두면 좋은 것들 6

[Virtual Box, VM] 가상머신 복사 붙여넣기 설정 하기(Ctrl + C, CTRL + V, Kernel Headers not Found Error까지)

안녕하세요 리습입니다. Virtual Box 환경을 구성하고, 사용을 하다 보면 Host 환경과, 가상 환경 간의 복사, 붙여 넣기를 해야 하는 일이 많이 있습니다. 먼가 직관적으로 될 것 같은데 동작하지 않으면 매우 불편하죠. 특히 코드를 옮겨 붙여 넣을 때 불편함이 배가 됩니다. 오늘은 Virtual Box에서 복사, 붙여 넣기(Ctrl + C, CTRL + V) 옵션을 켜는 방법을 알아보도록 하겠습니다. (순서대로 설정하고 안되면 계속 다음 단계를 진행 바랍니다.) 1. VM Virtual Box Manager 관리자 창에서 해당 환경의 설정 창을 켜줍니다. 우선 Virtual box 관리자 창에서 복사, 붙여 넣기를 하고 싶은 환경의 설정창에 들어가 줍니다. 마우스 오른쪽 보튼을 클릭하고, 나타나..

printf , sprintf , fprintf 서식 문자 완벽 정리 (%d, %f, %o, %n)

안녕하세요 리습입니다. 자주는 아니지만, 아주 가~끔 은 기억이 안 나서 찾아보게 되는 printf 들(sprintf, fprintf)의 서식 문자에 대하여 완벽하게 정리해보도록 하겠습니다. 우선 많이 사용하는 서식 문자에 대하여 요약 정리를 하면 다음과 같습니다. 가장 많이 사용하는 %d, %u, %o, %x, %f, %e 에 대하여 정리하였습니다. 또한 적절한 입력 변수 타입을 함께 표기하여, 현재 본인이 사용하고 있는 변수에 알맞은 서식 문자를 찾기 쉽도록 표기하였습니다. 이 외에도 printf, sprintf, fprintf에는 다양한 옵션들이 있습니다. 이에 대하여 더 자세히 알아보도록 하겠습니다. 서식 문자 와 크기 옵션 우선 서식 문자의 정확한 형태는 다음과 같이 일반화할 수 있습니다. %[..

[C코드작성]실행과 결과 검사를 한번에 하는 좋은 방법

코드를 작성하다 보면 실행후 결과값이 참값인지 검사해야 하는 경우가 많습니다. 그럴때 이제막 프로그래밍 언어를 배우시는 분들은 실행후 값을 받아 비교하시는 분들이 있으신데 이런 과정을 편리하게 하는 방법을 알려드리겠습니다. 예시 int val = Func( ); if ( val == 0 ) { // 할 일 } 어떤 일을 한후 그 결과값에 따라 조건문 if 가 실행되는 구문입니다. 이렇게 사용하는 것 또한 맞는 방법이며 전혀 문제가 되진 않습니다. 단 val 이라는 변수 공간을 낭비한다는 것이 작은 흠입니다. 조금만 바꿔보도록 하겠습니다. 예시 if (0 == Func( ) ) { // 할일 } 코드를 위와같이 작성할시엔 변수 공간이 필요하지 않습니다. 또한 if문에서 조건검사를 하기위해 자동적으로 Fun..

좋은 코드를 작성하는 방법. 코딩 스타일.

우리가 프로그래밍을 할 때 가장 눈에 보이는 결과물로써 존재하는 것이 '코드'입니다. 구현해놓은 모든 논리 순서 ( 알고리즘 ) 들이 결과물로써 코드가 존재하기 때문입니다. 또한 유지보수 및 디버깅이라는 것은 설계도인 ' 코드 ' 를 보고 하게 됩니다. 결론적으로 코드는 가장 중요한 프로그래밍에서의 결과물입니다. 그런데 이러한 코드를 마구자비로 작성하게되면 어떻게 될까요? 컴파일에는 상관이없겠지만 (기계는 얼마나 보기 좋게 썼는가를 신경쓰지 않으므로 ) 사람이 보기에는 매우 불편할것입니다. 그것들이 쌓여 유지보수 비용이 늘어나게되고 결국 그 감수는 코드를 작성한 사람이 해야하는 것입니다. 그래서 처음 코드를 작성할 때 부터 사람이 보기 좋은 코드를 작성해야 하는 것입니다. 평상시에 우리가 작성하고 사용하..

프로그래밍에서 숫자가 가장 쉬운 데이터다? 경우의 수를 잘 생각하자.

프로그램을 처음 접할 때 일반적으로 첫 연산으로 간단한 숫자의 덧셈과 뺄셈을 하는 경우가 많습니다. 그것 때문인지 프로그래밍을 처음 접하시는 분들은 숫자를 매우 쉽게 생각하시더군요. 이해하기가 쉽기 때문이죠. 하지만 잊지 말아야 할것이 하나 있습니다. 우리는 숫자를 사용하면서 "언급하지 않은 굉장히 많은 약속을 한다는 것" 입니다. 1 + 1.00 = ?!? 실제로 숫자 데이터를 처리하는 경우 단순하게 1 + 1 = 2 일것이다. 라고 많이들 예상합니다. 네 맞습니다. ' 통상적인 경우' 에는 맞죠. 하지만 1 + 1.00 은 과연 2 일까요? 2.00 일까요? 여기서 고민은 시작됩니다. 유효숫자가 있는 숫자와 그렇지 않은 숫자의 덧셈은 실제 프로그래밍 중에도 매우 발생합니다. 이런 충돌을 피하기 위해서..

프로그램을 만들 때 접근방식 -초보 프로그래머를 위하여-

어느 학원을 가던, 학교 강의를 듣던, "프로그래밍을 배우고 싶습니다. 그런데 무엇을 해야할까요?" 라고 질문한다면 "OO언어를 배워보라" 라며 "JAVA를 배워보라, C언어, PHP 등 " 특정 언어만을 소개합니다. 아니면, 안드로이드 프로그래밍, 아이폰 프로그래밍 등으로 이름지은 강의를 추천하기도 합니다. 그래서 처음 프로그래밍을 접하시는 분들 중에선 프로그래밍을 배우는 것은 그 언어를 배우는 것이다. 라고 오해하시는 경우가 많습니다. 하지만! 언어를 배우는 것은 프로그래밍을 배우는 것이 아닙니다. 언어는 프로그래밍을 하기 위한 준비를 하는 것입니다. 프로그래밍은 기계와 대화하는 것이다. 프로그래머는 항상 컴퓨터와 일을 하게 됩니다. 컴퓨터에게 어떤 작업을 요청하고 그 수행결과를 받는 것이지요. 하지..