본문 바로가기

전체 글

(47)
고(golang) Context 겉핥기#3 고 에서 context 패키지는 API 나 느린 동작을 다루는데 좋다. ( 특히 서버 리퀘스트 요청에서 ) context 패키지를 이해하려면 고루틴과 채널에 대한 이해가 선행 되어야 하지만 내가 쓸 예시에서는 필요가 없다. context 를 번역하면 문맥,흐름이라는 걸로 번역이 되는데 쉽게 생각해보면 웹과 서버의 통신을 하는데에 필요한 데이터나 값을 이 context안에 넣고 필요할때 뽑아 쓰는 형식이다. 또한 그 흐름을 컨트롤 해줄수 있는 기능을 한다. 예를들어 3초 이상이 걸리는 http request 가 있다고 가정하자. 하지만 3초이상 걸리는 request 는 무거운 요청에 해당하기에 우리 서버에서는 그걸 허용하지 않고 싶다. 그럴때 고에서는 Context 를 사용한다. context가 없는 코드..
고(golang) 고루틴에 관하여 #2 예전에 한 면접에서 면접관이 고루틴에 대해 물어봤다. 그 당시에 코인 자동 매매 시스템을 구축하던때라 모든 시스템을 고루틴으로 짯었지만 나는 내가 쓰고 있던 기능이 고루틴이라는 용어라는 걸 알지 못해서 그게 뭔지 모른다고 답변했다. 집에와서 고루틴을 좀 알아봤더니 내가 구축했던 시스템에 고루틴이 안들어가는게 없었다. 왜냐면 메인에서 20개의 고루틴을 돌면서 내코드는 시작했기 때문에.. 당연히 내 깃허브에 올라간 그 코드를 봤는지 안봤는지는 둘째치고 면접관의 입장에서 난 아무것도 모르는 사람이었다. 그리고 그 당시에는 난 용어만 몰랐지 다 안다고 생각했다. (어리석은 녀석) 하지만 용어를 모르는데 어떻게 그 기능을 안다고 할수 있을까. 그때부터 의사소통에 관해 생각해보게 됐고 기본이 안되어있다고 느껴서 많..
롤 하고 코인 받기 Laplata 채굴 이젠 롤 하면서 코인을 벌수 있는 시대가 왔습니다. https://elsilver.net/auth/signup?referralcode=9316306 ELSILVER — The most joyful mining with LOL ELSILVER makes it possible to mine LPLT for users who play famous games like League of Legends. LAPLATA is the key currency of Esports platforms elsilver.net 위의 URL 로 들어가 보시면 회원가입 창이 나옵니다. 회원가입을 하신 후 상단에 있는 LOL Challenge 를 클릭합니다. Username 에 사용하고 있는 닉네임과 Region 은 한국으로 선택 하..
메타마스크(MetaMask) 지갑 생성과 BNB 코인 입금까지 자세히 메타마스크란 가상화폐를 담을수 있는 지갑입니다! 아래에 초보자분들도 쉽게 따라올수 있게 자세히 만들었습니다! --------------------------------------------------------------------------------------------- https://metamask.io/download.html MetaMask Download A crypto wallet & gateway to blockchain apps metamask.io 위 링크로 따라 들어가 맞는 브라우저를 선택해 Download를 해주시면 됩니다. ( 구글 크롬 권장 ) ---------------------------------------------------------------------------..
고(golang) 비동기 큐 구현 웹에서 고용량 파일을 다룰때 비동기 시스템은 거의 필수적입니다. 고 언어는 Channel 이라는 기능으로 이를 쉽게 구축할 수 있습니다. 사용한 프레임워크는 Gin 입니다. go get github.com/gin-gonic/gin@master쉘에서 Gin 프레임워크를 가져옵니다. // main.go r := gin.New() srv := &http.Server{ Handler: r, Addr: fmt.Sprintf(":%d", PORT), ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, } r.GET("/file-handler",func(c *gin.Context) { queue.AsyncQueue.Enqueue(queue.FileUploa..
AWS EC2 502 Bad gateway 및 API Timeout 에 관련된 문제 해결 현재 필자가 운영하고 있는 거의 모든 서비스는 AWS를 통해 구축되었다. 어플리케이션의 특성상 대용량 파일을 처리할 일이 많다. ( 대부분 비디오 파일 ) 초기에 시스템을 구축할때 영상의 용량이 길어봤자 30초 정도로 테스트 해보고 문제없다고 판단해 시스템을 모두 구축한뒤 배포하고 나서 유저가 사용할때 쯤 아니나 다를까 큰 문제가 터졌다. 사용하고 있었던 서비스는 Elastic Beanstalk 환경으로 배포한 AWS의 EC2 , Load Balancer , Nginx 이었다. timeout에 대한 이해와 nginx ec2 등 모든 시스템에 대한 이해도가 거의 없었기 때문에 이걸 내가 해결 할수 있을지도 의문이었고 유저는 현재 사용하고 있는데 빨리 문제를 해결해야 하는 입장에서 정말 너무나 많은 스트레스..
AWS Elastic Beanstalk 사용을 위한 VPN 구축 및 설정 회사가 운영하는 두개의 프로젝트를 하나의 AWS 계정으로 관리하고 있었지만(금융감독원 조건충족)? 을 위한 시스템 분리가 필요하다 해서 세부적인 요인은 개발자인 내가 알 필요는 없으니 그건 각설하고 편의를 위해 조건이 충족되어야할 프로젝트를 A , 나뉘어질 프로젝트를 B 라고 하겠다. 인생 처음으로 블로그를 쓰며 남들이 보기엔 터무니 없이 부족하겠지만 시작이 반이라고 반을 하도록 하겠다. 참고로 이건 설명하는 글이 아닌 내가 다른 프로젝트를 새로 또 구축을 할때 빠르게 구축하게 하기 위한 글이므로 기술에 대한 자세한 설명은 없으니 그건 따로 공부하도록 하고 그냥 기술에 대한 이해없이 빨리 구축하고 싶다면 참고하도록 기존시스템 문제점 A와 B는 같은 AWS 계정에 같은 VPN을 공유하고 있었고 서브넷 마스..