둘째, C:\Program Files\NVIDIA Corporation\NVSMI\ 안에 붙여 넣습니다. 이때 C:\Program Files\NVIDIA Corporation 까지는 있는데 NVSMI 폴더는 없는 경우가 있을 수 있는데, 저는 폴더를 'NVSMI' 로 새로 만들고 안에 파일을 붙여넣었습니다.
정상 실행 되는 모습입니다.
해외에서 동일한 문제로 답글을 보면 diver 문제라고하고 그래픽카드를 빼고 드라이버를 싹지우고, 좀 번거롭던데요, 이 방법이 안통할 때 또 해봐야죠.
컴퓨터를 나혼자 쓰면 상관없지만 다른 사람이 내 컴퓨터를 잠시라도 쓸 때, 최근에 내가 사용한 파일과 앱들이 보이면 곤란한 상황이 생길 수 있잖아. 물론 편한기능이라 회사에서는 유용하게 사용하지만 내 개인 PC는 얘기가 다르지. 그래서 내가 아는 방법을 간단히 써볼께.
윈도우 시작화면에 나오는 최근에 추가한 앱과
내가 최근에 사용한 파일과 즐겨찾기들. 이런 것들을 없애는 방법을 공유한다.
윈도우 탐색기에서 위에 보기 메뉴 클릭하면 오른쪽 끝에 옵션 버튼인 데 클릭한다.
아래 일반 탭에서 개인 정보 보호 섹션에서 즐켜찾기 체크를 해제 하고, 파일 탐색기 기록 지우기도 클릭을 한 다음에 확인을 클릭해 닫는다.
탐색기에 나오던 즐겨찾기 내 화면과 오른쪽 최근에 사용한 파일에 내용이 없어젔다.
자, 이번엔 최근에 추가한 앱 없애기인데 이건 의외로 유용하다만 어쨌거나 지우는 방법은,
윈도우 시작 오른 쪽 검색란에 "설정"으로 입력하고 엔터하면 설정앱이 나타나는데 크릭 한다.
설정 화면에서 다시 개인 설정을 클릭한다.
개인 설정을 클릭해서 나온 화면에서 다시 왼쪽에 시작을 클릭한다. 그럼 오른쪽에 최근에 추가된 앱 표시가 있는 이걸 끄면 된다. 이외에도 시작 메뉴에서 앱 목록 표시나 가장 많이 사용하는 앱 표시등도 끌 수 있는데, 이건 굳이 내가 오픈해도 문제될 것이 없어서 켜둔체로 마무리 한다.
MS 오피스 엑셀도 멋지지만 구글 드라이브에 있는 엑셀, 스프레드쉬트도 한번 도전 해보고 싶어서 시작했다.
내가 회사를 차리면 MS 오피스 안쓰고 구글 드라이브를 사용할 계획이다.
그러기 위해서는 어디까지 가능한지, 어떤 장점이 있는지 한번 파봐야 겠지.
이제 그걸 하나하나 찾아보자.
§ 이번 교육목표
Basic Quest : 매크로 기록해보기
Main Quest : 셀에 값 입력해보기
Bonus Quest : Ctrl Shift Page UP 한 행번호 알아내기
Google 스프레드시트를 실행한다.
엑셀과 아주 비슷하다. 바로 매크로로 들어가본다. 어떤 언어로 매크로가 짜여져 있을까 궁금하다.
#1에서 해볼 부분은 간단하게 1~5까지 값입력해보기와 sum() 넣어보기, 그리고 shift page up 기능을 매크로 기록해 두고 소스를 본다.
기록된 매크로를 보러 가보자.
MS 엑셀과 같이 VBA 가 아니다. 그래도 아주 흡사하다. Sub procedure도 아니고 function이고, var 선언이 있는 것을 보니까 javascript 형식인거 같다. 매크로는 프로그래밍 능력이라기 보단 내가 자주스는 스크립트를 모아두었다가 붙여넣고 조금씩 조정해서 쓰기때문에 어렵게 생각할 필요가 없다.
시트에 접근하는 방법은 Spreadsheet.App.getActive(); 로 구한다. 시트가 많으면 이름으로도 가져 올 방법이 있을거다.
셀에 값을 입력하는 것은 .getRange('B3').active(); 로 지정해두고 .getCurrentCell().setValue('1'); 로 입력한다.
SUM() 수식을 넣는 부분도 동일하다.
마지막에 ctrl shift page up 한는 부분이 있는데, 실제 필요한 것은 데이터가 있는 마지막 행번호를 알아내는 것이다. .getSelection() 으로만 끝내서 ctrl shet page up 한 영역선택한 것으로 매크로가 끝났다.
첫번째 정복할 부부은 값입력을 .getRange('B3').active(); 한 후에 .getCurrentCell().setValue('1'); 하는 부분을 한줄로 처리해보는 것이다.
오, 된다.
이제 Ctrl shift page up 해서 행번호를 알아내보자.
솔직히, 시행착오를 많이 했고, 또 코드도 내가 원하는 스타일은 아니다만, 일단 이렇게 된다.
이제 본격적으로 통계 영역으로 한걸음 나아갈 때입니다. 데이터베이스로 데이터를 관리하는 여러 이유 중에, 저는 수많은 데이터를 엮어 의미 있는 지표를 만들어 내고, 또 그것을 시계열로 차트를 그려내어 데이터의 흐름을 판단하기 위한 것을 가장 중요하게 생각합니다. 그러기 위해서는 관점별로 수치 지표에 대한 roll-up 을 다룰 줄 알아야 합니다.
예를 들면서 roll-up에 대한 설명을 드리겠습니다. 아래 city 테이블에는 도시별로 인구수가 있습니다.
country 테이블에는 국가코드와 국가명이 있다고 했을 때 한국의 총인구수는 얼마나 되는 지 구해보겠습니다.
먼저 한국의 도시별 인구를 구합니다. 이게 되면 한국전체 인구를 구합니다.
한국 전체 인구수를 구하는 SQL입니다. 한국 기준이 때문에 우선 city 테이블의 컬럼은 select 항목에서 빠져야 합니다.
a.Code와 a.Name 은 국가코드와 국가명입니다. a가 가르키는 것이 country 테이블이죠. 그다음에 sum() 이라는 함수를 사용했습니다. 엑셀처럼 합계를 하는 함수입니다. 인자는 city 테이블의 Population 컬럼입니다. 따라서 국가코드, 국가명 명 기준으로 인구수를 합계해라라는 명령이 됩니다. 그런데 이 sum() 함수는 아래 group by 와 같이 써 줘야 합니다. 대부분은 select 에 컬럼과 동일하게 적어주면 됩니다. 결과를 보면, 3천9백만 명으로 나옵니다. 그냥 예제 데이 터니까 그러려니 하시길 바랍니다.
자, 그런데 사실은 country 테이블에도 Population 컬럼이 있습니다. 한번 확인해볼까요?
country 테이블의 Popluation 컬럼은 max() 함수로 구했습니다. max값은 데이터 중에 최댓값을 구한다는 뜻인데요, 만약에 그냥 sum()을 사용하면 인구수가 4천7백만 명 x 도시수만큼 나오게 됩니다.
왜 sum(a.Population) 을 쓰면 안 되는지 설명드리겠습니다. 물론 문법적으로는 문제가 없습니다. 데이터 값이 틀리게 되는 거죠. sum과 group by 부분을 빼고 실행하면 아래와 같이 결과가 나옵니다. country 테이블의 population 은 같은 데이터가 연속으로 나열된 것이 보이죠? sum()을 하게 되면 이 중복으로 나온 값을 다 합산을 하기 때문에 sum()을 쓰면 안 된다는 이야기입니다. max()는 이 중에서 가장 큰 값을 구하는데, 모두 동일한 값이 기 때문에 어떤 값이 나와와도 괜찮겠죠?
국가 전체 인구와 같은 경우 max()를 하지 않고 어떤 경우에는 관점으로 정의할 수 도 있습니다. select 항목 중에 alias 는group by에서는 빼줘야 합니다. 즉 as ~ 는 쓰지 않습니다.
자주 사용하는 통계 합수를 간단히 정리해드리겠습니다.
sum() : 합계
max() : 최대값
min() : 최소값
avg() : 평균값
count() : 건수
std(), stddev(), stddev_pop() : 표준편차. stddev() 가 오라클에도 사용되기 때문에 가장 많이 쓰입니다.