| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- PostgreSQL
- DevOps
- 실용주의 프로그래머
- 신혼 여행
- Playwright
- study
- AWS
- 도커 주의사항
- Go-lang
- 논문 정리
- 커머스
- Til
- 청첩장 모임
- amazon ecs
- 생성 패턴
- docker
- AWS 비용 절감
- 구조 패턴
- 디자인 패턴
- 티스토리챌린지
- MAPF
- github
- terraform
- 지표
- 경로 계획 알고리즘
- 오블완
- leetcode
- 14일 공부
- ssh
- Rust
- Today
- Total
목록For Fun/Go-lang (9)
밤 늦게까지 여는 카페
안녕하세요. 이제 본격적으로 더위가 찾아온 것 같습니다. 건강 관리에 각별히 유의하시기 바랍니다.이번에는 golang의 goroutine에 대해서 공부한 내용을 정리하려고 합니다.제가 근 6년 동안 golang으로 서비스를 개발하면서 go routine을 정말 많이 사용했는데 동작 원리를 정확히 모르더라고요.이번 기회에 공부하고 내용 정리해보겠습니다!1. Kernel level thread, User level thread일단 go routine에 대해 공부하기 전에 Kernel level thread와 User level thread에 대해 알아보겠습니다.thread는 가장 작은 실행 단위로 cause 시간을 할당 받아 작업을 수행합니다.Kernel level thread는 우리가 흔히 아는 스레드로 ..
어느 날 트위니의 동료분이 다음 포스팅을 공유해주셨는데 포스팅에 golang과 rust를 비교하는 부분이 있었습니다.참고: [번역] 최악의 개발자 고 언어는 모든 것을 최대한 단순하게 유지하려고 하며,수단보다는 목적 그 자체에 더 집중한다. 이는 Rust 언어와는 상반되는 특징이다. 지금 고 언어는 날로 번성하고, Rust는 그렇지 않다. 이는 Rust 언어가 언어의 기능 그 자체에 집중하고 이를 기반으로 작성되는 결과물에 집중하지 않기 때문으로 볼 수 있다. golang을 사용해보지 않았던 동료분은 golang을 사용하고 있는 저희 팀의 생각을 궁금해 하셨습니다.트위니에서 서비스 개발에 golang을 사용하고 있는 유일한 팀이기도 하고포스팅을 작성한 Alexander Mikhailian님이 gola..
안녕하세요. 오늘은 Golang을 사용하면서 느꼈던 불편함을 공유드리려고 합니다. 1. slices.DeleteFunc원래 golang은 slice(array)를 조작하는 함수를 따로 제공하지 않았습니다. 그래서 slices 내의 원소를 삭제하려면 코드를 다음과 같이 작성해야 했습니다.for i:=0; i array 데이터 타입에 대해서 기본적인 메소드를 제공해주는 프로그래밍 언어를 접해보신 분들한테는 꽤나 당혹스러우실 것 같습니다 ㅋㅋㅋ 하지만 2023년 2월에 배포된 golang 1.21 버전부터는 slices 패키지가 정식으로 추가되었습니다.드디어 slice를 편하게 사용할 수 있게 되었습니다!https://pkg.go.dev/slices2. 원본 데이터를 수정하는 DeleteFunc?그런데 sli..
아주 천천히 github.com/goodahn/AlarmForProgrammer을 리팩토링 하고 있는데 지금까지 내가 써온 글들을 보니 공부라고 하기 어렵더라구요. 그냥 프로젝트 진행 과정을 기록하는 정도지, Golang을 공부하고 있는 것 같지 않아서 프로젝트용 글을 따로 쓰고, 공부는 진짜 공부!로 바꿔야겠습니다.
goodahn.tistory.com/6 에서 언급했던 것처럼 간단한 루프스테이션? MIDI 패드? 프로젝트를 진행하려고 합니다. 프로젝트를 시작하기 전에 꼭, 꼭, 꼭 주의 할 점을 짚고 넘어가려고 합니다. 바로 effective go에도 나온 share by communicating 입니다. AlarmForProgrammer를 개발하면서 map 구조체의 concurrent read/write 에러 때문에 지저분한 프로그래밍을 하게 되었습니다 ㅜㅠ 이런 문제의 원인을 share by memory라고 판단하였습니다! SimpleLoopStation 프로젝트는 이 점을 최대한 유의하며 진행하도록 하겠습니다! (AlarmForProgrammer의 #3 이슈를 진행하면서 리팩토링의 필요성을 느꼈습니다;;) 이렇..
이번에는 goodahn.tistory.com/5 에서 만든 AlarmForProgrammer의 첫번째 회고를 해볼까 합니다. 1. 부족했던 것들 1. 테스트 코드가 한번에 너무 많은 기능을 테스트 했다는 점 monitoring_test.go 함수를 살펴보면 TestMonitoringCommand 단 하나의 테스트 케이스만 작성되어 있습니다. 예를 들면, Monitor 객체의 핵심 함수 중 하나인 updateProcessesStatus만 테스트 할 수 있는 방법이 없음! TDD가 무조건 옳다고 말하는 것은 아니지만 scratch부터 프로젝트를 작성하는 입장에서 코드블럭의 검증은 빠를수록 좋다고 생각합니다. (개인적으로 설계에 너무 많은 시간을 허비하는 것을 좋아하지 않긴 합니다...ㅜ 이에 관한 생각도 한..