전체 글

프로그래밍, 알고리즘과 자료구조 그리고 각종 개발도구의 사용법을 주로 기록하고자 했으나, 어느새 생활정보도 추가하게 되었습니다.
· 생활
주의※ 본 포스트는 의학적인 지식을 가지지 못한 비전문가 인 본인이 인터넷을 통해서 조사한 내용입니다. 본인은 해당 내용에 대한 객관적인 타당성 여부를검증할 능력을 지니고 있지 못합니다.※ 와이프가 임신한 후, 25주차가 접어 들어 병원에서 임신성 당뇨에 대한 검사를 받았습니다. 2회에 걸쳐서 수행하였는데 최종적으로는 정상 판정을 받았으나, 1차 검사 후 재검 판정을 받고, 재검을 기다리던 시기에 임신성 당뇨에 대해 인터넷 및 지역 도서관의 도서를 통해 학습 하였던 내용을 정리하여 개시합니다.※ 제가 무엇을 도와 주어야 할지 위주로 정리를 하고 보니 식단관리 및 운동관리가 결론이 되었습니다. 개요 임신성 당뇨병은 원래 당뇨병이 없던 사람이 임신 20주 이후에 당뇨병이 처음 발견되는 경우를 말합니다. 임신..
개요 배열을 이용하여 Queue 를 작성할 경우, 큐의 상태를 저장하는 변수의 값(head, tail)이 감소하지 않고 계속 증가하기 때문에 한계치(QUEUESIZE) 에 도달하면 더 이상 올바른 저장소를 가리키지 못하기 때문에 이를 보완할 수 있는 방법이 필요합니다.변수의 값이 최대치에 도달할 경우, 이를 초기값으로 돌려주는 방식으로 원형큐를 사용완가능합니다.※ 참고로 원형큐를 링버퍼라고도 합할 수 있습니다.다음은 이러한 아이디어를 C 언어로 구현한 것입니다. 구현 앞서 작성한 포스트의 배열로 구현한 (선형)큐의 소스코드를 기초로 합니다. // main.c #define QUEUESIZE 256 #include typedef struct { int head, tail; int items[QUEUESIZ..
개요 C 에서 string을 다루기 위해서는 문자열(character array) 을 사용합니다. 예를 들면 다음과 같습니다. char buf[12] = "Hello World"; printf ("%s\n", buf); 반면 C++ 의 경우는 라이브러리를 통해 String Class 를 제공하고 있습니다. String Class 내부적으로는 C 와 동일하게 문자열을 통하여 데이터를 저장하고 있지만 Class 에서 메모리 관리, 할당, Null Termination 등을 관리해 주고 있습니다. 덕분에 String 을 다루는 것이 C 에 비해 조금 더 편리하다고 할 수 있습니다.예를 들어 C 에서 문자열의 길이를 프로그램 실행시간에 가변으로 변경하고자 할 경우 동적 할당을 사용하도록 직접 구현해야겠지만 C+..
개요 앞선 포스트에서는 Angular Material, Flex Layout의 사용법을 습득하여 로그인 기능 구현을 위한 화면을 구성하였습니다. 이번 포스트에서는 본격적으로 Firebase에서 제공해주는 사용자 인증 API를 사용하여 회원가입 및 로그인 서비스를 구현하도록 하겠습니다. 본문 사전 준비 Firebase 연결하기 포스트의 내용을 참고하여 앞서 생성한 로그인 프로젝트를 Firebase 프로젝트와 연결합니다. 추가로 파이어베이스의 사용자 인증 기능을 사용할 예정이므로 라이브러리의 인증모듈(AngularFireAuthModule)도 import 합니다. ▼ /src/app/app.module.ts import { NgModule } from '@angular/core'; // ... 생략 // A..
개요 라즈베리파이를 NAS와 같은 저장공간으로 사용하기 위해서는 내부 메모리 카드로는 공간이 부족하기 때문에 별도의 저장공간이 필요합니다. 외장하드 디스크는 저렴한 가격에 큰 데이터를 저장할 수 있는 좋은 선택입니다. 본 포스트에서는 라즈베리파이를 켰을 때 연결되어 있는 외장 하드디스크가 자동으로 특정 폴더에 마운트 되도록 설정해 보도록 하겠습니다. 사전작업 운영체제(Raspbian) 설치 라즈베리파이 SSH 연결 필요 하드웨어 본 포스트에서 진행한 것은 다음의 구성품을 사용하였습니다. 라즈베리파이 3 SD 카드 외장하드 : ipTIME의 외장하드(EFM ipTIME HDD 3035)를 사용하였습니다. 참고: 라즈베리파이에서 공급되는 USB 전력은 외장하드를 구동하기에 충분하지 않기 때문에 별도의 전원을..
· 생활
태안으로 여행을 가기로 정해놓고 숙소를 고르는데 바다 가까운 쪽은 거진 펜션들 뿐이라 이번엔 호텔에 머물고 싶어 서산시내에 있는 베니키아호텔로 숙소를 정했다. 그리고 밥 먹을 곳을 찾는데 꽃게랑 김치를 넣은 탕?찌개?인 "게국지"가 서산 태안쪽에 대표메뉴 중 하나인 것을 알았다. 게국지가 포함된 2인 메뉴가 검색해서 나오는 대부분의 곳들은 4만원부터 해서 ~ 7만원까지도 가격이 형성되어 있었다. 그런데~ 가성비 좋은 이곳을 검색으로 알아낸 후 가보았고, 결과는 만족~!!! 위치도 숙소랑 차로 10분 안팎이었다.~~!! 비오는 아침에 가서 우리가 첫 손님인듯했다. 아마도 10시전 쯤이었다. 가게앞엔 "착한가격업소" 지정 표시가 있었다. 정감있는(가식적인 친절이 아니라 마치 조카맞이하듯이ㅎㅎ 편하게) 주인 ..
개요 라즈베리 파이를 외부에서 접속할 수 있도록 설정한 경우, 기본 SSH 포트값인 22번 포트를 그대로 사용하는 것은 보안상 문제가 있을 수 있으므로 이를 원하는 임의의 포트로 변경합니다. 현재 포트 확인 변경에 앞서 현재 사용하고 있는 SSH 포트를 확인하도록 하겠습니다. $ sudo netstat -tnlp | grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4463/sshd tcp6 0 0 :::22 :::* LISTEN 4463/sshd sshd 프로세스가 22포트를 LISTEN 하고 있음을 확인 할 수 있습니다. 포트 변경 sshd_config 파일에 원하는 포트 값을 넣도록 합니다. $ sudo vi /etc/ssh/sshd_config ... Port 12..
· 머신러닝
앞선 포스트에서 정리하였던 것과 같이 경사하강 알고리즘은 비용함수를 미분하여 경사를 획득하고 이 경사값을 따라 진행해가며 그 값이 수렴할 때까지 반복하는 것입니다.이를 수식으로 표현하면 아래와 같이 요약됩니다.θj:=θj−α∂∂θjJ(θ0,θ1) \theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta_0, \theta_1) θj​:=θj​−α∂θj​∂​J(θ0​,θ1​)선형회귀의 경우에 대해서 구체적으로 이를 적용해 보도록 하겠습니다.이를 위하여 비용함수와 가설함수를 선형회귀의 비용함수와 가설함수로 교체하도록 합니다.우선 선형회귀의 비용함수는 다음과 같습니다.J(θ0,θ1)=12m∑i=1m(y^i−yi)2=12m∑i=1m(hθ(..
쓴웃음
학습 기록