반응형 개인 프로젝트5 [Monkey] 인터프리터를 만들어 보자! 프로젝트 1주 진행 방식 - 책을 참고하며 코딩을 하는 클론코딩 방식으로 프로젝트를 진행해 보았다. + 과정에서 Go 언어를 놓은지 꽤 됐었기 때문에 Go 문법을 이해하지 못한 부분은 이전에 공부하는데 도움을 받았던 Discovery Go 라는 서적을 보며 다시금 익혔다. - TDD 방법론을 통해 진행된다. - 이전에 스스로 약속했듯이 하루에 한시간 정도 투자하고 있다. - 깃허브를 통해 코드 관리를 한다. - GoLand IDE를 사용해 코딩을 하고있다. 돈을써야 공부를 한다 ^^ 공부 내용 정리 프로그래밍 과정에서 소스코드를 작성하면 이는 사람만이 알아볼 수 있는 텍스트 뭉치일 뿐이다. 인터프리터는 이 소스코드를 컴퓨터가 이해할 수 있도록 분해하고 조합하는데 도움을 주는 프로그램이다. 처음으로 인터프리터를 제작하.. 2024. 3. 6. [Project coin] 단위 테스트(3) - sync.Once가 포함된 코드 Project coin 경과 니코 선생님의 coin 클론코딩이 거의 막바지이다. 강의가 몇개 남지 않았지만 테스트 코드를 싹싹 핥아 먹으며 공부하기 위해 강의를 보기 전 테스트 코드를 만들고 강의를 보고 있다. 문제 발생 스스로 테스트 코드를 만들며 아무리 생각해도 이상한 현상을 발견했다. 테스트하려는 코드 func Blockchain() *blockchain { once.Do(func() { b = &blockchain{ Height: 0, } checkpoint := 블록체인_불러오기() if checkpoint == nil { //새로운 블록 추가 } else { //기존 블록체인 변수 b에 할당 } }) return b } 테스트 코드 func TestBlockchain(t *testing.T) .. 2022. 8. 19. [Project Coin] 모니터링 시스템 whatap 모니터링 시스템 큰 기업이든 작은 기업이든 운영과 시스템 관리를 위해 모니터링 시스템은 필수적인 요소였다. 하지만 최근 클라우드를 사용하며 MSA 프로젝트를 더 많이 사용하게 되면서 모니터링 시스템에 대한 수요는 훨씬 더 필수적 요소가 돼 버렸다. 또한 기존에 애플리케이션 성능 관측을 위한 APM, 서버 성능 관측을 위한 SMS 등 각각의 요소를 분리하여 모니터링 했다면 모든 서비스들이 작은 요소로 연결돼 있는 지금은 이를 통합하여 관측할 수 있는 통합 모니터링 시스템이 반드시 필요해 졌다. 그렇기에 이러한 변화를 받아들이고 사용법을 익히기 위해 작은 프로젝트인 Coin 프로젝트에도 통합 모니터링이 가능한 국산 SaaS솔루션인 Whatap을 붙여 보려한다. 비록 B2B 시스템이지만 15일 간 무료로 사용.. 2022. 8. 15. [Project Coin] 단위 테스트(2) - 추상화를 적용한 함수 테스트, + 몽키 패치 Test를 위한 함수 추상화 log.Panic이라는 함수는 log 모듈에 의존적인 함수이다. 이를 직접적으로 테스트하기는 힘들다. 그렇기에 우리는 추상화라는 선택지를 고려할 수 있다. 기존 코드 func HandleErr(err error) { if err != nil { log.Panic(err) } } 변경 코드 var logFn = log.Panic func HandleErr(err error) { if err != nil { logFn(err) } } 우리가 궁금한 것은 err!=nil 일 때 logFn이 작동하는가 이다. 그렇기에 log.Panic 함수를 logFn 이라는 변수에 담아 추상화 과정을 거쳐 이 logFn이 잘 작동하는가를 검사한다. TestCode func TestHandleErr.. 2022. 8. 12. [Project Coin] 단위 테스트(1) _ Unit Test란? & Table Test 시작 나는 Unit Test를 내 프로젝트에 적용해본 경험은 없다. 하지만 인턴을 경험하며 이에 대한 필요성을 절실히 느낀 경험이 있다. 코드에 조금만 손을 데도 새로 배포하고 웹을 통해 데이터가 원하는 형태로 출력되는지 확인하고.. 아니면 다시 반복..... 만약 내가 Unit Test를 작성하기 위한 준비가 돼 있는 상태였다면 프로젝트의 완성도는 훨씬 높아졌을 것이라 확신한다. 앞으로 이런 아쉬움을 남기지 않기 위해 Unit Test에 대해 공부하고 전략들을 잊지않게 추가해 나가려 한다. Unit Test란? 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메소드에 대한 테스트 케이스(Test case).. 2022. 8. 10. 이전 1 다음 반응형