MS Visual Studio 디버깅 기능을 처음 써본다. 사실 지금까지는 cout이나 printf로 콘솔에 값을 출력하는 방법으로만 디버깅을 해왔다. 필요없는 출력구문을 나중에 지우는것도 일이고, 확인하려는 값이 많아질수록 복잡해져서 문제가 된다. 일단 꼭 필요한 기능이라고 생각되는것부터 찾아보고 복습할겸 일단 블로그에 올린다. (내용이 수정/보완 될 수 있다) 빨간점 만들기. 먼저 코드 옆에 클릭하면 🔴빨간점이 생긴다. 이 점을 중단점이라고 하는데 작동하던 프로그램을 강제로 중단하고 상태를 확인하고자 하는것이다. 디버깅 모드로 실행시, 이부분에서 실행이 일시적으로 멈추어서, 그 시점의 변수 상태를 볼수가 있다. 중단점에서 멈췄을때 할수 있는 기본적인 일은 크게 두가지로 볼수 있다. (1)변수를 확인하..
문제 상황 : Mac에서 파워포인트(Microsoft PowerPoint)를 쓰고 있다. 그런데 파워포인트를 켤 때마다 같은 자동 복구 파일이 자꾸 켜진다. 저장하지 않고 껐는데도, 파워포인트를 재실행하면 다시 켜지는 현상.... [자동저장]프레젠테이션1_autorecovery_autorecovery_autorecovery…. 심지어 자동저장된 파일이 또 자동저장되어서 _autorecovery가 붙은 이름으로 같은 문서가 이중 삼중으로 생겨나서 정말 짜증나는 현상이다. 해결 : 구글링을 해보니, 자동저장 파일이 저장된 경로에 들어가서 파일을 삭제하면된다고 한다. /Users//Library/Containers/com.microsoft.Powerpoint/Data/Library/Preferences/Aut..
이번학기에 openCV를 활용하는 강의를 수강하게 되어서, 맥북에서 개발 환경을 설정했다. 대부분의 프로그래밍 수업이 윈도우를 기준으로 진행되고 있다. 실습실 컴퓨터도 다 윈도우가 깔려있고 Visual Studio를 사용하고 있다. 이런 상황에서 개인적으로 맥을 쓰다보면, 개발환경 설정하는것도 스스로 해결해야 하고, 특정상황에서 갑자기 뭐가 안되는 경우가 있는데, 누군가 해결해주기 보다는 "너가 윈도우를 안써서 그래" 라는 대답을 듣기 마련이다. 바로바로 해결이 안되면 강의를 못따라가는 경우가 생길수도 있다. 그래서 왠만하면 윈도우 노트북을 따로 들고 다니면서 쓰곤했는데 이번엔 왠지 맥으로 셋팅을 혼자서 해도 따라가는데 문제가 없을것 같아서 시도를 해보았다. 우여곡절이 있었지만 아무튼 성공했다. 지금은 ..
프로그래밍을 과정에서 변수 간의 연산은 기본 중의 기본이지만 특히, 나눗셈 연산은 다른 사칙연산과 달리 결과에 대한 이해가 조금 더 필요한 부분이 있습니다. 이 글에서는 정수형 변수를 이용한 나눗셈 연산이 어떻게 작동하는지 살펴보겠습니다. C언어에서의 정수형 나눗셈 연산 C언어에서 정수형 변수 간의 나눗셈은 가능합니다. 그 결과는 정수형 나눗셈의 특성 상 소수점 이하를 버린 몫을 반환합니다. 예를 들어, 다음과 같은 코드가 있다고 가정해보죠. int a=5; int b=3; int c=a/b; printf("%d", c); 이 코드는 컴파일에 아무런 문제가 없으며, c에 저장되는 값은 1이 됩니다. 왜냐하면 5를 3으로 나눈 몫은 1.666...이지만, 정수형 변수에 저장될 때 소수점 이하가 버려지기 때..
함수를 끌어 올려? MDN Javascript 문서를 보다가 보니 함수를(혹은 클래스)를 끌어올린다는 표현이 가끔씩 나온다. 대체 뭘 끌어올린다는 건지 이해가 되지않아 몇개의 글을더 찾아 읽어보다가Hoisting이라는 단어를 끌어올린다고 번역하였음을 알 수 있었다.영어 발음 그대로 '호이스팅'이라고 표현된 부분도 있었다. '끌어올리다'라는 용어 자체가 흔히 쓰이는 말인지는 모르겠지만그 단어 자체에 대한 정의는 따로 찾을수 가 없어서 의미를 알기가 혼란스러운 점이 있긴 하다.MDN에 Hoisting에 대한 페이지가 따로 존재한다. '끌어올리다'라는 표현이 잘 이해가 안되었는데 함수가 선언된 부분을 코드의 맨 위로 끌어올린다는 것에서 나온 표현으로 볼 수 있을것같다. 호이스팅(hoisting)에 대해서 몇가..
Neopixel은 adafruit에서 만든 ws2812 LED 부품이다. 이번 포스트는 아두이노로 neopixel을 간단하게 작동시켜보는 예제이다. 나중에 내가 했던거 찾아보는게 구글링하는거보다 편할때가 있어서 간단히 테스트 해보고 정리한 글이다. 1. 라이브러리 포함하기. Neopixel 라이브러리를 먼저 포함시켜줘야한다. 아두이노 라이브러리 매니저에서 설치할수 있다. 설치 후에 #include 를 코드에 넣어준다. 2. 부품 연결 LED 갯수가 많거나, 아두이노에 전력이 많이 들어가는 모터같은게 들어간다면 외부 파워를 연결해줘야 할수도있다. 또, 부품을 보호하기 위해서 저항이나 콘덴서를 연결하기도 하는데 몇개 안되고 해서 그냥 이렇게 연결했다. 아래 표와 같이 Neopixel과 Arduino를 연결하..
GEM이란.gem은 프로그램 언어인 루비에서 쓰이는 라이브러리 패키지이다.커맨드라인에서 인스톨 명령을 내려 쉽게 설치할수 있다. Gem Setgem을 모아놓은것을 gemset이라고 한다.한 컴퓨터안에도 루비 버전마다 혹은 프로젝트마다 필요한 gem이 다를수 있기때문에 있는 개념이다. Gem의 확인, 설치 현재 설치되어 있는 gem의 종류를 아래와 같이 입력하여 확인할수있다. $ gem list 또 rvm이 설치 되어있다면 다음 명령어를 통해 현재 설치된 gemset의 종류를 알수있다. $ rvm gemset list 다음과같이 gem을 설치할수 있다. $ rvm gem install [gem이름] command line에 대한 더 자세한 정보는 https://guides.rubygems.org/comma..
RVM?Ruby Version Manager을 줄여 RVM이라 한다. 여러 버전의 루비를 깔때, 편리하게 관리하는 프로그램이다.이걸 쓰는 이유는 뭘까? 개발을 할 때에 프로젝트마다 사용되는 라이브러리의 종류와 버전이 다르기때문에이들을 따로 관리할 필요가 있다. 루비에서 쓰는 라이브러리 패키지를 gem이라고 하며, 여러가지 gem을 모아놓은것을 gemset이라고한다.RVM은 프로젝트마다 gemset을 따로 가질수 있도록 관리가 가능하도록 해주는 툴이다. rvm.io에 가면 이렇게 나와있다. RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from inter..