Go-lang

    Golang Effective Study for intermediate (5)

    goodahn.tistory.com/6 에서 언급했던 것처럼 간단한 루프스테이션? MIDI 패드? 프로젝트를 진행하려고 합니다. 프로젝트를 시작하기 전에 꼭, 꼭, 꼭 주의 할 점을 짚고 넘어가려고 합니다. 바로 effective go에도 나온 share by communicating 입니다. AlarmForProgrammer를 개발하면서 map 구조체의 concurrent read/write 에러 때문에 지저분한 프로그래밍을 하게 되었습니다 ㅜㅠ 이런 문제의 원인을 share by memory라고 판단하였습니다! SimpleLoopStation 프로젝트는 이 점을 최대한 유의하며 진행하도록 하겠습니다! (AlarmForProgrammer의 #3 이슈를 진행하면서 리팩토링의 필요성을 느꼈습니다;;) 이렇..

    Golang Effective Study for intermediate (4)

    이번에는 goodahn.tistory.com/5 에서 만든 AlarmForProgrammer의 첫번째 회고를 해볼까 합니다. 1. 부족했던 것들 1. 테스트 코드가 한번에 너무 많은 기능을 테스트 했다는 점 monitoring_test.go 함수를 살펴보면 TestMonitoringCommand 단 하나의 테스트 케이스만 작성되어 있습니다. 예를 들면, Monitor 객체의 핵심 함수 중 하나인 updateProcessesStatus만 테스트 할 수 있는 방법이 없음! TDD가 무조건 옳다고 말하는 것은 아니지만 scratch부터 프로젝트를 작성하는 입장에서 코드블럭의 검증은 빠를수록 좋다고 생각합니다. (개인적으로 설계에 너무 많은 시간을 허비하는 것을 좋아하지 않긴 합니다...ㅜ 이에 관한 생각도 한..

    Golang Effective Study for intermediate (3)

    Golang Effective Study for intermediate (3)

    goodahn.tistory.com/4 Golang Effective Study for intermediate (2) 실제로 프로그램을 만들면서 golang을 공부하는 시간을 가져보겠습니다. 제가 프로그램을 만들 때, 거치는 과정대로 서술하겠습니다. 본 글은 2020년 9월달부터 작성되었습니다. 슬랙 API 및 기능이 goodahn.tistory.com 이전 포스팅에서 간단하게 설계했던 알람프로그램을 실제로 구현해보는 시간을 갖겠습니다. 구현할 것들 github.com/goodahn/AlarmForProgrammer/issues/1 Prototype of alarming function · Issue #1 · goodahn/AlarmForProgrammer test that monitoring comma..

    Golang Effective Study for intermediate (2)

    Golang Effective Study for intermediate (2)

    실제로 프로그램을 만들면서 golang을 공부하는 시간을 가져보겠습니다. 제가 프로그램을 만들 때, 거치는 과정대로 서술하겠습니다. 본 글은 2020년 9월달부터 작성되었습니다. 슬랙 API 및 기능이 변경될 시, 포스팅 된 내용과 다를 수 있으니 유의하시기 바랍니다. 문제 상황 최근에 고강도의 스트레스 테스트 케이스들을 작성하다 보니 테스트 케이스가 끝나기까지 길게는 40분까지 걸리게 되었습니다. 당연하게도 테스트 케이스의 결과를 기다리는 동안은 다른 작업을 진행합니다. 아무래도 작업에 열중하다 보면 테스트 케이스가 끝난 줄도 모르고 집중하게 되는데, 이 게 평상 시에는 문제가 안되지만 일의 쏟아질 때에는 나름 고민이 되더라구요. 그래서 "실행한 명령어가 끝나면 사용자에게 알려주는 프로그램"을 만들어서..

    Golang Effective Study for intermediate (1)

    Golang을 사용하고 공부하면서 느꼈던 점 및 주의점들을 정리하기 위해서 Golang Effective Study for intermediate 포스팅을 시작합니다. 글의 제목처럼 초급자를 위한 포스팅이 아니므로 프로그래밍이 처음이신 분들께 도움되는 글은 아닐 것 같습니다. C와 Python을 조금이라도 사용해보신 분들이 Golang 공부를 시작할 때 도움이 될 것 같습니다. Golang은 오픈소스 프로그래밍 언어로 성능과 사용성, 두 마리의 물고기를 잡은 언어로 C와 Python을 합쳐놓은(?) 느낌입니다. 컴파일 언어라서 속도도 빠르고, C처럼 static-typed language지만 사용하다 보면 매우 편리한 언어라는 것을 느낄 수 있습니다. 그리고 무엇보다도 요즘 핫한 언어로 서버 개발 쪽에서..