본문 바로가기

전체보기141

[3] CloudFlare를 이용해서 IP 숨기기 지금 배포하고 있는 개인 planner랑 스토리지 서비스 (cloud.riverandeye.com) 가 집에 있는 라즈베리 파이를 쓰다 보니 발급받은 IP가 그대로 노출되는 문제가 있었습니다. 이를 해소하기 위해 무료 솔루션들을 찾아보다가 Cloudflare 라는 것을 알게 되었습니다. 우선 먼저 CloudFlare 사이트에 접속하신 후 가입을 합니다. CloudFare를 사용하기 위해서 Site를 등록한 후, Plan을 선택하고, DNS 설정을 하면 등록이 완료됩니다. 아직 끝난 것은 아니고, 해당 도메인의 네임 서버를 cloudfare의 것으로 변경해주어야 합니다. 네임서버를 변경할 땐 자기가 도메인을 구매한 곳에서 변경하면 됩니다. 저 같은 경우엔 AWS에서 구매를 했기 때문에, Route53 > .. 2020. 10. 14.
[5] Systemd 를 이용한 go 어플리케이션 프로세스 관리 최근에 배포한 서비스의 서버가 자꾸 꺼지는 현상이 발생합니다. 로그에도 프로세스가 종료된 흔적이 남지 않았어요... (당황) 현재 추정하는 이유는 라즈베리가 혼자 죽는것 때문이라고 생각을 하고 있어요. 시스템 로그에 다음과 같이 저전력 상황이라는 메세지가 자꾸 떴기 때문이죠. 오래된 낡은 멀티탭을 문어발 식으로 쓰다 보니까 이런 문제가 생기는 것으로 생하고 있습니다. 전력이 낮아 서버가 죽었다가 다시 켜지면서, 자동으로 go 프로세스가 켜지지 않아서 서버가 죽는 것 처럼 보였던거죠. 좀 제대로 된 멀티탭을 사서 개선을 해야겠습니다. 당장 수많은 사용자가 쓰고 있는 서비스는 아니기 때문에 우선 서버가 껐다 켜지면 자동으로 go 프로세스가 재실행될 수 있게 구성하려고 합니다. 그래서 검색을 해보니 이런 게 .. 2020. 10. 12.
[2] 트리구조 플래너 만들기 (1) 기본 기능 원래는 Todo 앱을 Golang으로 짜보려고 어떤 프로젝트를 해볼까~ 하다가 목표를 정리하는 어플을 만들어보면 어떨까 해서 만들어보게 되었습니다. 이 주소에 배포되어 있습니다. 왼쪽에 어떤 Plan도 선택되어있지 않을때는 다음과 같은 개발자 소개가 나타납니다. 특정 Plan을 선택하면, 다음과 같이 해당 Plan에 대한 내용이 나타납니다. 선택한 Plan에 하위 계획이 있는 경우엔 오른쪽에 나타나게 됩니다. 해당 계획을 수정 또는 삭제 할 수 있습니다. --- 이걸 만들게 된 계기는, 다른 서비스에서 이런 구조를 만들지 않기 때문에 만들었습니다. 내가 노력하는 것들에 다 이유가 있는데 그런 이유들을 살다보면 잊어버리게 됩니다 그 이유를 명확하게 기록하는 좋은 도구가 될 것이라 생각합니다. 또, 가이드에.. 2020. 10. 7.
[4] Go yaml - yaml 파일을 Go로 쉽게 읽기 프로그램의 외부 시스템이 변경하게 되면 이를 적용해야 하는데, 코드에 그대로 반영할 수는 없으니 외부 설정 파일을 생성해서 이를 읽어 시스템에 반영하게 됩니다. 예를 들면, DB 서버의 ip 주소나 포트 같은 것들을 매번 코드상에서 변경해주는건 이상하니 전역으로 config 변수를 설정해서 주입해주는 것입니다. 이러한 외부 설정 파일은 ini, yaml, json 형식으로 작성되는데 자주 사용되는 yaml 형식의 파일을 Go에서 읽어서 사용하는 예시를 이 글에서 소개하겠습니다. yaml 예시 database: Type: mysql User: Riverandeye Password: hello Host: 1.2.3.4:5 Name: todo TablePrefix: todo_ server: RunMode: d.. 2020. 10. 3.