본문 바로가기

전체 글40

[묘공단] 6주차 (1) 이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 27~8장 써머리입니다. 27장은 객체지향 설계 5가지 원칙인 SOLID을 설명하며, 필수는 아니지만 프로젝트를 만들 때 어떤 원칙들을 기반으로 설계하면 좋을지에 대한 청사진을 제시한다. SOLID는 원칙들의 첫 단어들로 구성한 축약어이다. Golang에서만 활용할 수 있는 원칙들이 아닌 OOP 패러다임을 지원하는 여러 프로그래밍 언어들에서 적용할 수 있다. 28장은 Golang에서 지원하는 단위 테스트 도구와 단위 테스트를 코딩할 때 유용한 라이브러리를 소개한다. 또한 TDD(Test Driven Domain)에 대한 내용도 소개한다. 더보기 27 객체지향 설계 원칙 SOLID 27.1 객체지향 설계 5가지 원칙 SOLID 27.2 단일 책임 .. 2023. 11. 5.
[묘공단] 5주차 (3) 이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 25~6장 써머리입니다. 이전에는 Golang의 삼신기 중 goroutine을 알아봤고 이제 남은 두 개에 대해 알아볼 차례이다. channel과 select인데 25 챕터에는 context도 포함돼 있다. 26 챕터는 지금까지 배운 내용을 사용해 단어 검색 프로그램을 만든다. 더보기 25 채널과 컨텍스트 25.1 채널 사용하기 25.2 컨텍스트 사용하기 26 단어 검색 프로그램 만들기 26.1 해법 26.2 사전지식 26.3 실행 인수 읽고 파일 목록 가져오기 26.4 파일을 열어서 라인 읽기 26.5 파일 검색 프로그램 완성하기 26.6 개선하기 25 채널과 컨텍스트 본인 경우에는 Golang에서 처음으로 멀티스레딩 코딩을 해봤다. 그래서 채.. 2023. 10. 29.
[묘공단] 5주차 (2) 이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 24장 써머리입니다. 24장은 Golang의 장점인 고루틴인과 동시성 프로그래밍이다. 책에서 설명하는 고루틴도 좋지만 이번주는 본인이 리뷰하기 때문에 본인의 방식대로 설명해 보겠다. 더보기 24 고루틴과 동시성 프로그래밍 24.1 스레드란? 24.2 고루틴 사용 24.3 고루틴의 동작 방법 24.4 동시성 프로그래밍 주의점 24.5 뮤텍스를 이용한 동시성 문제 해결 24.6 뮤텍스와 데드락 24.7 또 다른 자원 관리 기법 고루틴을 이해하기 앞서 프로세스를 이해하면 좋을 것 같다. 프로세스는 보조기억장치에 저장된 프로그램 즉 개발자가 코딩한 파일을 주기억장치(memory) 영역에 올린 후 CPU를 점유를 기다리는 것을 프로세스라 한다. 이제 스레.. 2023. 10. 29.
[묘공단] 5주차 (1) 이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 23장 써머리입니다. 23장은 error와 관련된 내용들을 소개하고 있다. 어떤 프로그래밍언어든 error처리는 중요하니 책에 나온 내용과 간단한 예제를 추가해 리뷰할 예정이다. 더보기 23 에러 핸들링 23.1 에러 반환 23.2 에러 타입 23.3 패닉 23.1 에러 반환 책에서는 두 가지 형태의 예제로 에러 처리에 대해 설명하고 있는데 첫 번째는 file 관련된 내장 라이브러리들의 함수를 호출하면서 발생하는 에러를 처리하는 방식이고 두 번째는 개발자의 코드에서 목적에 맞게 에러처리하는 예제로 설명한다. 에러를 반환한다는 뜻은 크게 세 가지의 이점이 있는데 1. 프로그래머가 예상하지 못해 발생한 에러나 외부 라이브러리를 사용 시 발생한 에러를.. 2023. 10. 29.