본문 바로가기

자습36

2023.09.02 학원가 비교 학군지는 결국 학원가가 몰린곳 학원가가 형성되는 이유는 교육열 + 소득 수준 호갱노노가 잘 정리해서 보기 쉽다. 다 같은 학원가인지? 서울 1위 대치동 서울 2위 노원구 목동 경기 1위 평촌 경기 2위 나의 관심지~~ 공덕 그럼 천당밑의 분당? 학원이 펼쳐져 있어서 순위에 나오지 않은건가 보다. 2023. 9. 2.
Go Thread-Safety : sync.Mutex, sync.Map Go 하면 떠오르는 단어 Goroutines 실제로 Go를 구현하다가 뭔가 동시에 해야한다 싶으면 "go" 만 적으면 되니... 얼마나 편한가. Goroutine 관련 자료는 매우 많아서 잘 찾으면 된다. 최근에 궁금한건 Go Server로 들어온 특정 Data를 local file 에 deadlock 없이 잘 Read/Write 하는 방법~ 만약 request handler에서 goroutine을 생성했다면 channel 을 활용하면 될것같은데, 난 단순히 go server에서 알아서 goroutine 생성하여 호출된 handler 에서 뭔가 local file 로 deadlock 없이 작업을 하고 싶었다. 첫번째 접근) thread id 별로 file 을 append mode 로 만들면 되지 않을까?.. 2023. 8. 26.
Spring Native Go + goFiber 로 서버를 개발하다가 올해 Java + Spring Boot 로 서버를 개발하니 서버 실행 시간과 속도, 메모리 사용량에 당황하게 된다. 물론 Spring 이 오랜시간 축적하여 제공하는 다양한 기능과 안정성은 이러한 서버 성능의 단점을 넘어서기때문에 아직도 Spring을 많이 사용하는것이다. Spring에서도 JVM위에서돌아가는 Spring 서버의 성능의 한계를 알았는지 2021.3.11 에 Spring Native Beta를 Release 하게된다. https://spring.io/blog/2021/03/11/announcing-spring-native-beta Announcing Spring Native Beta! Today, after one year and half of w.. 2022. 5. 14.
go gRPC Server & gRPC Gateway https://grpc.io/ gRPC A high-performance, open source universal RPC framework grpc.io 서버를 연동하거나 개발하면서 항상 REST API로 HTTP(S) 프로토콜로만 사용했었는데, 최근 세미나를 통해 gRPC에 대해 한번 사용해보자는 생각이 들었다. gRPC란? 구글이 초기 개발한 오픈 소스 원격 프로시져 호출 remote procedure call 프레임워크로, Protocol Buffer 형태의 메시지를 HTTP/2 프로토콜로 전달하여 기존 REST에 비해 성능이 빠르고, local 함수 호출의 형식이라 직관적이다. 아래 그림을 보면 확~!! 와닿는데, Client 가 Stub을 통해 Server API를 마치 Local 함수 호출하듯.. 2021. 9. 20.
Kong Gateway + Konga https://konghq.com/ Kong: The Cloud Connectivity Company for APIs & Microservices Build your cloud connectivity fabric with the industry-leading end-to-end service connectivity platform that unifies API gateway, ingress and service mesh into one developer solution. konghq.com MSA (microservice architecture) 에 대해 책 한권을 선택해 동료들과 함께 스터를 진행했고, 거기에서 Gateway의 중요성을 알게 되었다. 마이크로서비스 패턴이란 책인데 정말 강추한다. 나처럼.. 2021. 8. 29.
Jaeger with Go https://www.jaegertracing.io/ Jaeger: open source, end-to-end distributed tracing Monitor and troubleshoot transactions in complex distributed systems www.jaegertracing.io MSA (Microservice Archtecture)에 필요한 것이 바로 분산 추적 시스템이고, Zipkin 이 2012년에 나온뒤에 좀더 현대화된 구조로 만든 분산추적 시스템이 Jaeger (예거)다. 좀더 자세한 히스토리는 아래 그림이 한눈에 잘 보여준다. zipkin이 single process 구조의 Java 구현체라면, Jaeger는 agent, collector, query가 별도 proc.. 2021. 7. 20.