묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨네카라에서 MongoDB를 활용하여, 1000만건 이상의 데이터 파이프라인 작성법
마지막 강의 완강 수강 안되는 오류
마지막 강의 완강 수강 안되는 오류가 있습니다. 아무리 들어도 완강이 안되네요.. 이건 인프런 오류를 제보해야될지 저만 그런건지 .. 몽고db crud만 알고 썼는데 aggregate 등 정말 좋은 꿀팁 강의 감사합니다!
-
해결됨네카라에서 MongoDB를 활용하여, 1000만건 이상의 데이터 파이프라인 작성법
aggregations 에서 date 모양이 다른 문제
aggregations 에서 date 모양이 다른 문제가 있어요제가 강사님 파일을 받아서 등록하면 date가 저렇게 날짜로 잡히네요 모양이 다른데 이유가 뭘까요?또한 aggregations에서 date를 일치시켜주어도 매칭되는게 나오지 않아요
-
해결됨네카라에서 MongoDB를 활용하여, 1000만건 이상의 데이터 파이프라인 작성법
JSON 자동변환 사용하시는 툴이 뭔지 궁금합니다.
JSON 자동변환 사용하시는 툴이 뭔지 궁금합니다.이런 메모장 같은걸 열어서 한번에 보기좋게 변환하시는데 이게 뭔지 알수 있을까요?
-
해결됨네카라에서 MongoDB를 활용하여, 1000만건 이상의 데이터 파이프라인 작성법
upsert를 insert보다 권장하시는 이유는 그냥 편의적인 이유인가요?
안녕하세요?질문 그대로 upsert를 insert보다 권장하시는 이유는 그냥 편의적인 이유인가요?어떤 성능상의 이유가 있는지, 유니크함을 보장하기 위한 수단인건지 등등 단순히 편의적인 이유이상의 무엇인가가 있는지 궁금합니다.(즉, 반대로 편하다는 이유만으로도 사용해도 되는지 궁금하네요)
-
해결됨배달의 민족, 당근마켓에서 대용량 TPS를 대비하기 위한 RPC 통신에 대해 알아보고 실습하기
용어 질문
안녕하세요 강사님.grpc을 안쓰게 되는 이유 설명중에 일반적으로 개발자들은 grpc보단 http통신이나 퍼썹모델링을 통해 이벤트를 캐치한다고 하셨습니다. 이때 퍼썹모델링(?)이 무엇인가요?
-
미해결정말 쉬운 Go언어 입문
강의 코드 질문
강의에 나오는 코드는 어디 있나요?
-
해결됨네카라에서 MongoDB를 활용하여, 1000만건 이상의 데이터 파이프라인 작성법
강의 코드 관련
강의에서 코드는 어떻게 볼 수 있을까요?강의에서 활용하는 코드를 직접 보면서 실행시켜보고 싶습니다
-
미해결블록체인 채굴 모듈 만들어보기
아 갑자기 코드가 바껴서 한참 헤맸습니다
wallet repository에서 repository struct 관련 에러가 생기길래 찾아봤더니app.go NewService 호출하는 부분에 매개변수나 이런게 바뀌어서 문제였네요한참 헤맸습니다,, 갑자기 강의가 확 뛰어버리네요 코드가 바뀌어요
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
맵 예제 코드가 바이러스 검사에 걸려요
if _, ok := map12["kiwi"]; !ok { fmt.Println("ex7 : kiwi is not exist!") }visual studio code 1.86.2에디션 Windows 10 Pro버전 22H2설치 날짜 2023-10-09OS 빌드 19045.4046경험 Windows Feature Experience Pack 1000.19053.1000.0 이 버전에서 Map 기초 수업의 예제 코드가 바이러스 체크에 걸립니다..!굉장히 흥미로운 현상인데, 같은 현상을 겪으시는 분이 있으신가요?왜 그런 것일까요? 최대한 문제의 소스코드만 발라내보려고 했는데, 코드가 조금 덜어지면 디펜더에 안걸리네요... 신기하네요... 메모리 침범이라도 되나...// 자료형 맵 package main import "fmt" func main() { // 맵 (Map) // 해시테이블, 딕셔너리(파이썬) // Key-Value로 자료 저장 // 레퍼런스 타입 (참조값 전달) // 비교 연산자 사용 불가능 (참조 타입이므로) // 참조 타입으로는 Key에 사용 불가. Value로는 모든 타입 가능 // make 함수 및 축약 (리터럴) 로 초기화 가능 // 순서 없음 // 예제 1 var map1 map[string]int = make(map[string]int) // 정석 var map2 = make(map[string]int) // 자료형 생략 map3 := make(map[string]int) // 리터럴형 fmt.Println("ex1 : ", map1) fmt.Println("ex1 : ", map2) fmt.Println("ex1 : ", map3) fmt.Println() // 예제 2 map4 := map[string]int{} // Json 형태 map4["apple"] = 25 map4["banana"] = 40 map4["orange"] = 33 map5 := map[string]int{ "apple": 15, "banana": 40, "orange": 23, } map6 := make(map[string]int, 10) map6["apple"] = 25 map6["banana"] = 40 map6["orange"] = 33 fmt.Println("ex2 : ", map4) fmt.Println("ex2 : ", map5) fmt.Println("ex2 : ", map6) fmt.Println("ex2 : ", map6["orange"]) fmt.Println("ex2 : ", map6["apple"]) // 예제 3 맵 조회 및 순회 (Iterator) map11 := map[string]string{ "daum": "http://daum.net", "naver": "http://naver.com", "google": "http://google.com", } fmt.Println("ex3 : ", map11["google"]) fmt.Println("ex3 : ", map11["daum"]) fmt.Println() // 예제 4 순서 없으므로 랜덤 for k, v := range map11 { fmt.Println("ex4 : ", k, v) } for k, v := range map11 { // 실행 중에도 순서 보장 X fmt.Println("ex4 : ", k, v) } for _, v := range map11 { // 스킵 가능 fmt.Println("ex4 : ", v) } fmt.Println() // 예제 5 맵 값 변경 및 삭제 fmt.Println("ex5 : ", map11) map11["home"] = "localhost" // 없을 때 추가 fmt.Println("ex5 : ", map11) map11["home"] = "http://test.com" // 있을 때 수정 fmt.Println("ex5 : ", map11) delete(map11, "home") // 삭제 fmt.Println("ex5 : ", map11) // 예제 6 맵 조회할 경우의 주의 및 팁 map12 := map[string]int{ "apple": 15, "banana": 115, "orange": 1115, "lemon": 0, } value1 := map12["lemon"] value2 := map12["kiwi"] // 존재 X. 변수형 기본값 int 0, string "", float 0.0 value3, ok1 := map12["kiwi"] // 키값 존재를 확인하기 위해 true, false value4, ok2 := map12["lemon"] // 두번째 리턴값으로 키값 존재 확인 fmt.Println("ex6 : ", value1) fmt.Println("ex6 : ", value2) fmt.Println("ex6 : ", value3, ok1) fmt.Println("ex6 : ", value4, ok2) // 예제 7 if value, ok := map12["kiwi"]; ok { fmt.Println("ex7 : ", value) } else { fmt.Println("ex7 : kiwi is not exist!") } if value, ok := map12["banana"]; ok { fmt.Println("ex7 : ", value) } else { fmt.Println("ex7 : banana is not exist!") } if _, ok := map12["kiwi"]; !ok { // _ 사용 가능, 키값 없을 때 예외 처리할 때 많이 사용 fmt.Println("ex7 : kiwi is not exist!") } // ??? 윈도우 디펜더에서 바이러스 있어보인다고 막네요 ??? }
-
해결됨백엔드 취업을 위한 프로젝트 구조 와 데이터베이스 다루기 [MySQL, Mongo]
로직이 수정된 코드 실행 후 db생성이 안됩니다.
Mongo를 통한 eCommerce API 작성하기에서 인덱스 생성 유틸 함수 디버깅하기편에서 코드를 많이 바꾸셨는데 이코드를 실행하니까 eCommerce db가 생성이 안되는데, 안되는게 맞는건가요?
-
해결됨블록체인 채굴 모듈 만들어보기
강의영상 중복
섹션 5의 제일 마지막 2개 강의가 같은 영상입니다. (25,26강) 수정 부탁드려요!
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
for 반복문에서 break와 continue 차이점
for 반복문에서 break와 continue 차이점에 대해서 자세히 설명 부탁드릴게요 ㅠ
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
후치연산 관련 질문입니다.
for i, j := 0, 0; i <= 10; i++, j += 10 { fmt.Println("ex4 : ", i, j) } 해당 부분에서 후치연산이기때문에 에러가 발생한다고 하셨는데, 자세한 설명 부탁드릴게요 ㅠㅠㅠ
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
강의 코드 따라친거 public repository에 올려도 되나요?
저작권에 위배될까요?
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
service, repository 단계 구성하기 - 1
이 챕터에서 시작할때 network/user.go에서 갑자기 코드가 바꼈는데 이 부분은 임의로 작성하신건가요? &types.GetUserResponse{}, &types.CreateUserResponse{}, 나머지 두개 타입 update, delete. 작성하셨다면 types에 user.go에 작성하셨다는건데 일부러 뛰어 넘으신건지 궁금합니다.
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
delete 에러 관련되서 질문이 있습니다.
2023/11/20 20:44:01 http: panic serving [::1]:8034: runtime error: invalid memory address or nil pointer dereferencegoroutine 51 [running]:net/http.(*conn).serve.func1() C:/Program Files/Go/src/net/http/server.go:1854 +0xbfpanic({0xec01a0, 0x126f410}) C:/Program Files/Go/src/runtime/panic.go:890 +0x263github.com/dev-yakuza/study-golang/gin/start/repository.(*UserRepository).Delete(0xc0000a4030, {0x12466f8, 0x1}) C:/go_gin/src/CURS_SERVICE/repository/user.go:42 +0x36agithub.com/dev-yakuza/study-golang/gin/start/service.(*User).Delete(...) C:/go_gin/src/CURS_SERVICE/service/user.go:27github.com/dev-yakuza/study-golang/gin/start/network.(*userRouter).delete(0xc000444530, 0xc000456100) C:/go_gin/src/CURS_SERVICE/network/user.go:104 +0x1cagithub.com/gin-gonic/gin.(*Context).Next(...) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0005841a0, 0xc000456100) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620 +0x66bgithub.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0005841a0, {0xfeda80?, 0xc00045e0e0}, 0xc000456200) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576 +0x1ddnet/http.serverHandler.ServeHTTP({0xfecb10?}, {0xfeda80, 0xc00045e0e0}, 0xc000456200) C:/Program Files/Go/src/net/http/server.go:2936 +0x316net/http.(*conn).serve(0xc0004fa090, {0xfee018, 0xc0000a27e0}) C:/Program Files/Go/src/net/http/server.go:1995 +0x612created by net/http.(*Server).Serve C:/Program Files/Go/src/net/http/server.go:3089 +0x5ed관련된 에러가 나고 있습니다.for index, user := range u.userMap { if user.Name == userName { u.userMap = append(u.userMap[:index], u.userMap[index+1:]...) isExisted = true continue } } 해당코드에서 user가 nil일 경우에도 for문이 실행이 되고 있습니다. 혹시 이게 u.userMap이 자동적으로 뒤에 nil이 있는 것으로 확인이 됩니다. 혹시 다른 설정하신게 있으실까요?아니면 append가 패치된 상황일까요?일단은for index, user := range u.userMap { if user != nil { if user.Name == userName { u.userMap = append(u.userMap[:index], u.userMap[index+1:]...) isExisted = true continue } } }이렇게 해결 했습니다.
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
서버 구조에 대한 질문
이 프로젝트 서버 구조가 mvc 패턴에 기반한 건가요?계속 공부하다 보니 뭔가 헷갈리네요 ㅠㅠ
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
create 요청시 에러
2023/11/16 23:42:58 http: panic serving [::1]:6279: Undefined validation function 'require' on field 'Name'goroutine 21 [running]:net/http.(*conn).serve.func1() C:/Program Files/Go/src/net/http/server.go:1854 +0xbfpanic({0x8d4c00, 0xc000061b50}) C:/Program Files/Go/src/runtime/panic.go:890 +0x263github.com/go-playground/validator/v10.(*Validate).parseFieldTagsRecursive(0xc00014e0e0, {0x8bf3a5?, 0x9661a2?}, {0x8bf38b, 0x4}, {0x0, 0x0}, 0x0) C:/go_gin/pkg/mod/github.com/go-playground/validator/v10@v10.16.0/cache.go:299 +0xa39github.com/go-playground/validator/v10.(*Validate).extractStructCache(0xc00014e0e0, {0x909600?, 0xc000008108?, 0x1f4e0985898?}, {0x8b7042, 0xd}) C:/go_gin/pkg/mod/github.com/go-playground/validator/v10@v10.16.0/cache.go:156 +0x5acgithub.com/go-playground/validator/v10.(*validate).validateStruct(0xc00043a240, {0xa1ce68, 0xc000026158}, {0x909600?, 0xc000008108?, 0xcb2930?}, {0x909600?, 0xc000008108?, 0x0?}, {0xa220a8, ...}, ...) C:/go_gin/pkg/mod/github.com/go-playground/validator/v10@v10.16.0/validator.go:37 +0x19dgithub.com/go-playground/validator/v10.(*Validate).StructCtx(0xc00014e0e0, {0xa1ce68, 0xc000026158}, {0x909600, 0xc000008108?}) C:/go_gin/pkg/mod/github.com/go-playground/validator/v10@v10.16.0/validator_instance.go:394 +0x479github.com/go-playground/validator/v10.(*Validate).Struct(...) C:/go_gin/pkg/mod/github.com/go-playground/validator/v10@v10.16.0/validator_instance.go:367github.com/gin-gonic/gin/binding.(*defaultValidator).validateStruct(0xcb2930, {0x909600, 0xc000008108}) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/default_validator.go:80 +0x4egithub.com/gin-gonic/gin/binding.(*defaultValidator).ValidateStruct(0x909600?, {0x909600?, 0xc000008108?}) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/default_validator.go:59 +0x189github.com/gin-gonic/gin/binding.(*defaultValidator).ValidateStruct(0xc000436000?, {0x8e4840?, 0xc0000080c0?}) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/default_validator.go:57 +0x105github.com/gin-gonic/gin/binding.validate(...) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/binding.go:120github.com/gin-gonic/gin/binding.decodeJSON({0x1f4e0aa8188?, 0xc000038040?}, {0x8e4840, 0xc0000080c0}) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/json.go:55 +0xa2github.com/gin-gonic/gin/binding.jsonBinding.Bind({}, 0xa1a460?, {0x8e4840, 0xc0000080c0}) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/json.go:37 +0x66github.com/gin-gonic/gin.(*Context).ShouldBindWith(...) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:741github.com/gin-gonic/gin.(*Context).ShouldBindJSON(...) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:701github.com/dev-yakuza/study-golang/gin/start/network.(*userRouter).create(0xc000098080, 0xc00051c100) C:/go_gin/src/CURS_SERVICE/network/user.go:43 +0xbfgithub.com/gin-gonic/gin.(*Context).Next(...) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0000844e0, 0xc00051c100) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620 +0x66bgithub.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0000844e0, {0xa1c940?, 0xc0001920e0}, 0xc00051c000) C:/go_gin/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576 +0x1ddnet/http.serverHandler.ServeHTTP({0xa1b9d0?}, {0xa1c940, 0xc0001920e0}, 0xc00051c000) C:/Program Files/Go/src/net/http/server.go:2936 +0x316net/http.(*conn).serve(0xc000190240, {0xa1ced8, 0xc0000907e0}) C:/Program Files/Go/src/net/http/server.go:1995 +0x612created by net/http.(*Server).Serve C:/Program Files/Go/src/net/http/server.go:3089 +0x5ed무슨에러인지 알 수 있을까요?
-
해결됨Golang을 통한 백엔드 개발 및 환경 구축하기
1분24초에 go run .를 실행할때 filepath에러
main에서 filePath에 "./config.toml" 경로를 전달하면 config.go에서 NewConfig함수를 실행할 때 os.Open에 ./cofig.toml은 결국 config.go가 현재경로 기준이 되는게 아닌가요?
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
package관리에 질문이 있습니다.
golang package 버전 관리 및 local package 관리 관련되서 질문이 있습니다.go mod 정확하게 사용법을 잘 모르겠 더 라구요go work를 설정하면 go path를 건들지 않고 locoal package 관리를 쉽게 할 수 있다고 하는데 관련된 내용 예제 같은 것 추천해주실 수 있을까요?