묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
컨트롤 서버가 다운되면 어떻게 되나요?
[이 강의에서 다룰 zero-downtime-deploy를 위한 아키텍처 구조도를 알려드릴게요] 강의를 들으면서 컨트롤 서버의 필요성에 대해 설명해주셨습니다. 채팅 서버 1,2,3 이 다운될 때를 고려해서 로드 밸런싱 용으로 컨트롤 서버를 따로 둔다고 이해했는데, 컨트롤 서버가 배포되거나 다운되는 경우는 없을까요? 컨트롤 서버도 이중화로 구성을 해야하는 것인지, 다른 방법은 무엇이 있는지 궁금합니당
-
해결됨MongoDB를 활용하여, 200억건 이상의 데이터 파이프라인 작성법
여러 thread에서 Upsert를 실행하면 괜찮을까요?
MYSQL 강의에서는 ON DUPLICATE KEY UPDATE 를 쓰면 여러 쓰레드에서 호출시, lock이 걸릴 수 있다고 강의에서 보았습니다 혹시 몽고DB는 여러 thread에서 upsert 시도시, lock이슈가 있을까요>?
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
키보드 어떤거 사용하시는지요?
혹시 어떤 키보드 사용하시는지요 .😀
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
godoc 에러 관련
godoc 에러 관련 아래 명령어로 하면 설치됩니다! go install golang.org/x/tools/cmd/godoc@latest
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
repository 트랜잭션 관련 질문
안녕하세요 스프링으로 개발하고 있는 뉴비인데, 최근에 golang에 흥미가 생겨서 강의를 듣게 되었습니다.이제 강의를 다 수강하고, gorm을 사용해서 db연결까지 해보려고 하는데, 궁금증이 생겨서, 강의의 범위를 벗어나지만 질문드리려고 합니다스프링에서는 서비스 계층에 트랜잭션을 선언후 그 안에서 벌어지는 db관련 로직들을 원자적으로 실행할 수 있습니다. 트랜잭션의 전파를 통해, 서비스에서 다른 서비스를 호출해도 하나의 트랜잭션으로 묶을 수 있고요. gin에서 동일한 결과를 내고 싶은데, 제가 찾은 방법 2가지가 있습니다 DB 객체를 서비스에서 필드로 보관하면서 repository를 호출할때마다 인자로 DB에 트랜잭션을 적용해 를넘겨준다 (또는 트랜잭션을 받는 wrapper function을 사용한다) => 코드작성량이 ㄷㄷrepository에 임시적인 WithTransaction(tx)메서드를사용해, repository의 DB가 임시로 트랜잭션을 바라보게한다. =>싱글톤에서 말도 안되는 방법인거 같은데 gpt가 강추함컨텍스트에 트랜잭션 DB객체를 담아 모든 곳에서 꺼내 사용한다 => gpt, google 모두 권장되지 않는 방법이라고 함3줄요약전부다 다 뭔가 이상한거 같아서, 실무에서 golang을 사용하면 서비스에서 다수의 DB접근이 필요하고, 이를 하나의 트랜잭션으로 관리해야될 때 어떻게 트랜잭션을 처리하는지 궁금합니다!!
-
미해결정말 쉬운 Go언어 입문
강의 화면 오류
크롬이랑 사파리에서 시청하고 있는데, 아예 화면이 이렇게 찍히네요
-
미해결대용량 채팅 TPS 처리를 위한 웹소켓 통신 만들며 학습하기
채팅 메시지 DB로 저장 하기.
안녕하세요.강의 잘 들었습니다.마지막에 메시지를 저장 하는 얘기를 하셨는데.. 보통 메신저 서비스에서는 어떤 방식의 DB를 사용하는지궁금합니다. 흔히 Oracle이나 MariaDB 같은 방식의 관계형 DB를 사용하는게 흔한지 아니면 Mongo같은 비관계형 방식의 DB를 많이 사용하는지 혹시 답변이 가능하시다면 답변 부탁 드립니다. 그리고 그걸 선택한 이유가 무엇인지. 감사합니다.
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
1탄과 2탄 사이 변경된 코드 질문
안녕하세요! 지난 1탄 강의 잘 들었습니다.다름이 아니라 1탄과 2탄에서 go로 작성된 코드가 조금 다른거 같은데 혹시 누락된 강의가 있는걸까요 ?1탄에선 network 디렉토리에 network.go와 socket.go만 작성했었는데 2탄에선 server.go와 util.go가 생기면서 코드가 조금 변경된거 같습니다.누락된 강의가 없다면, 변경된 부분이 어떤 것들인지 알고싶어서 질문드립니다.
-
해결됨1000만 Traffic을 견디며 적용한 RPC 통신에 대해 학습하고 구현해보기
소스코드 깃 제공 문의
안녕하세요, Akaps님혹시 소스코드는 따로 얻어볼 수 없을까요?
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
hello world 가 2번 뜨는 이유가 뭘까요?
간단한 질문입니다만 localhost:8080 으로 접속했을 때 콘솔에 hello world가 2번 뜨는 이유를 몰라서 여쭙습니다.
-
미해결MongoDB를 활용하여, 200억건 이상의 데이터 파이프라인 작성법
upsert를 insert보다 권장하시는 이유는 그냥 편의적인 이유인가요?
안녕하세요?질문 그대로 upsert를 insert보다 권장하시는 이유는 그냥 편의적인 이유인가요?어떤 성능상의 이유가 있는지, 유니크함을 보장하기 위한 수단인건지 등등 단순히 편의적인 이유이상의 무엇인가가 있는지 궁금합니다.(즉, 반대로 편하다는 이유만으로도 사용해도 되는지 궁금하네요)
-
미해결정말 쉬운 Go언어 입문
강의 코드 질문
강의에 나오는 코드는 어디 있나요?
-
해결됨블록체인 채굴 모듈 만들어보기
아 갑자기 코드가 바껴서 한참 헤맸습니다
wallet repository에서 repository struct 관련 에러가 생기길래 찾아봤더니app.go NewService 호출하는 부분에 매개변수나 이런게 바뀌어서 문제였네요한참 헤맸습니다,, 갑자기 강의가 확 뛰어버리네요 코드가 바뀌어요
-
해결됨함수형 프로그래밍과 JavaScript ES6+
go, pipe 함수 관련하여 질문 드립니다.
안녕하세요 선생님 강의도 여러번 돌려보고 혼자서 이해해보려고 했는데, 도저히 이해가 되지 않아 질문 드립니다.혹시 아래 total_quantity 함수와 total_price 함수를 작성하는거 까지는 이해가 가는데,그 후에 products => go(products, 부분을 빼고 pipe 함수로 감싸는 부분이 이해가 되지 않습니다. pipe, go에 대해 제가 아직 미숙한거 같긴한데.. pipe함수가 함수를 받아 두고 그 이후에 다시 함수가 실행되면 받아둔 함수를 이후에 받은 매개변수를 넣어 실행하는 함수라고 생각을 했는데요. 혹시 해당 부분에서 pipe를 사용하신 이유가 있으실까요?? 어떻게 products => go(products,부분만 보고 바로 pipe 함수를 사용해도 된다고 생각하신건가요?? 추가로, total_price에서 products => 부분을 지우고 go(products,map(p=>p.price * p.quantity),reduce((a,b)=>a+b)) 로 작성해도 문제 없이 값이 나타나는거 같은데요 혹시 products를 미리 받은 이유가 있을까요?? 제가 너무 이해가 미숙하여 질문도 미숙할 수 있겠지만..확인 한번 부탁 드리겠습니다!const total_quantity = products => go(products, map(p => p.quantity), reduce((a,b)=> a + b)); console.log(total_quantity(products)) const total_price = products => go(products, map(p=>p.price * p.quantity), reduce((a,b)=>a+b)); console.log(total_price(products))
-
미해결구글이 만든 Golang, 기초부터 배우자 - 입문편
에러 메시지 대응 방법
tui-go 의 예제 코드를 가져온 후 터미널에서 go mod init test 를 실행하여 모듈을 만들었습니다. 강의에서는 해당 모듈을 생성 후 go run test.go 을 실행하면 자동으로 다운로드가 되는 듯 한데 저는 no required module provides package 라는 에러를 뿜뿜 하네요 해서.. go get 으로 해당 패키지를 다운로드 하니 모듈에 입력되고 정상적으로 동작이 됩니다. 자동으로 다운로드가 되는 게 있고 없는 게 있는건지 아니면 뭔가 설정을 또 해줘야 하는게 있는건가요?
-
미해결구글이 만든 Golang, 기초부터 배우자 - 입문편
채널과 배열은 전혀 다른 건가요?
뭔가 채널과 배열의 문법만 다르고 결과론적으로는 done <- s 자리에 append 함수를 동작하게 해도 같은 원리인 거 같은데 그거랑 전혀 다른건가요 아니면 좀 더 편리하게 사용할 수 있도록 만들어 둔건가요?
-
미해결함수형 프로그래밍과 JavaScript ES6+
go, pipe, curry 함수의 유래?에 대해서 궁금합니다.
안녕하십니까! 강의 유익하게 잘 듣고 있습니다. 다름이 아니라, 강의를 들으면서 그냥 궁금한 점이 생겨서 글을 올려봅니다. 개념을 배울 때마다 조금이나마 더 깊게 이해해보려고 MDN 문서 등을 참조해서 더 많은 내용들을 공부하고 있습니다. 그런데 go, pipe, curry 같은 개념들은 map이나 filter, reduce 등의 메소드와는 달리 어떤 특정 문서에 나오지 않고, 아티클이나 블로그 같은 곳에서 명시되어 있는 것 밖에 찾지 못했습니다. 그래서 뭔가 이런 프로그래밍 방법들이 혹시 어디에서 어떻게 나타나게 되었는지, 실제 전세계적으로 통용되는 워딩인지 궁금해서 글을 남겨봅니다. 좋은 강의를 토대로 더욱 성장하는 개발자가 되도록 노력하겠습니다! 새해복 많이 받으시기 바랍니다:)!!
-
해결됨쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
type *xlsx.Sheet has no field or method Rows 에러 발생하시는 분들 참고
패키지가 버전업이 되면서 struct(gxlsx/sheet.go 파일 참고)을 보면 Rows가 사라져 있어서 제목과 같은 에러가 발생합니다. 해결방법은 버전 다운그레이드가 필요한데요. 1. 패키지 삭제 > 현재 설치 된 ~~~/src/github.com/tealeg 폴더 삭제 2. cmd 창에서 (~~~/src/github.com) 이동 3. mkdir tealeg; cd tealeg 4. "git clone https://github.com/tealeg/xlsx.git -b v2" 실행
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
gopath까지 다 설정했는데,, 왜 GOROOT에서 패키지를 찾아오려고 할까요?
package section4/lib is not in GOROOT (/usr/local/go/src/section4/lib) 이런 에런가 납니다.. go env를 사용하면 현재 작업중인 곳에 GOPATH가 설정이 잘 되어있구요..
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
질문드립니다!
사용 OS Mac OS BIGSUR 11.3.1(20E241) 안녕하세요. 강의 잘보고 있습니다 Go 언어를 공부하던중 의문점이 들어 질문드립니다 ------------------------------------------------------------ package main import "fmt" var num0 int =1// 변수만 선언만 함 var str0 string ="jong bae" var num1,num2,num3 int = 2,3,4 var num4,num5,num6 int = 5,6,7 // 선언과 동시에 초기화 var num7 float32 =11.4 var str1 string ="hellow world" var num8 =4.75 // 선언동시 초기화 var str2 ="huh" var bol = true func main(){ fmt.Println("num0 :", num0) fmt.Println("num1 :", num1) fmt.Println("num2 :", num2) fmt.Println("num3 :", num3) fmt.Println("num4 :", num4) fmt.Println("num5 :", num5) fmt.Println("num6 :", num6) fmt.Println("num7 :", num7) fmt.Println("num8 :", num8) fmt.Println("str0 :", str0) fmt.Println("str1 :", str1) fmt.Println("str2 :", str2) fmt.Println("bol :", bol) } ---------------------------------------- 상기 func main() 변수들을 import 하단 func main() 바깥 (전역번수) 로 선언, func main() 메소드 안쪽 Fmt.println() 부분까지 브레이크 포인트를 선언후 디버깅을 돌렸을때 전역변수 선언부분은 디버깅이 안되고 func main() 함수 부분만 디버깅이 되는대 go 언어는 func main() 안 변수선언부분에서만 디버깅이 되나요?? 두번쨰 질문은 Main 패키지를 선언후 Main 함수가 아닌 func rungo() 이렇게 함수명을 임의로 바꿔서 사용했을시 하기 에러가 발생되는대 해결방법이 있을까요?? ---------------------------------------- package main import "fmt" func rungo(){ // 변수를 여러개로 선언 var( name string="byun" height int32 weight float32 isrunning bool ) height=250 weight=350 isrunning= true fmt.Println("name :", name, "height: ", height, "weight: ", weight, "isruuing: ", isrunning) } runtime.main_main·f: function main is undeclared in the main package ----------------------------------------