묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쉽게 따라할 수 있는 안드로이드 앱 개발
가상 디바이스 실행 시 "The emulator process has terminated" 현상
질문은 아니고, 정보글인데요.가상 디바이스 실행 시 저런 문구가 떠서 로그를 뒤져서 확인해보니까 드라이브 용량이 최소 7GB 정도는 확보되어 있어야 한다는 로그가 있더라구요.용량 확보 후 실행하니 실행됐습니다. 혹시 막힌 분 참고하시길~
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Docker hub를 보던 중 궁금한게 생겨 질문드립니다!
수업에서 사용한 node docker image의 경우 linux, node, npm, yarn이 설치된 이미지라는 것을 어떻게 확인할 수 있는지 궁금합니다.즉 docker hub에 있는 이미지를 보고 그 이미지가 어떤 컴퓨터인지 어떻게 확인할 수 있는지가 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
bindingResult 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1:50쯤에 bindingResult설명하실 때 addItem의 매개변수로 bindingResult가 있으면 에러가 나도 컨트롤러가 호출되고, bindingResult가 없으면 컨트롤러 호출 없이 바로 에러페이지로 넘어간다고 하셨는데,이전에 만든 ValidationItemControllerV1에서는 bindingResult가 없는데도 addItem()컨트롤러가 호출된 것이 아닌가여? 그러니까 에러처리도 되고, 타임리프를 통해서 유저에게 어떤 에러가 났는지 알려줄 수 있게 된것이 아닌가 하고 헷갈리네용
-
미해결함수형 프로그래밍과 JavaScript ES6+
[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유
주요 전제:프로미스는 객체가 생성됨과 동시에 콜백을 실행 시킵니다.then()으로 생성된 프로미스 객체는 로깅하던(자신이 지켜보는) 프로미스가 해결되면 microtaskQueue에 담깁니다. 예시go([1,2], L.map(a=>delay1000(a*a), L.map(a=>delay1000(a*a), C.reduce(add), log)위와 같은 코드가 있다고 할 때, 각 함수층에서 생성하는 프로미스를 다음과 같이 표현해보았습니다.*화살표는 각 프로미스가 로깅하는 자신의 앞의 프로미스를 가리킵니다. ( p1 이 resolve 되면 p2 실행 )*각 함수와 같은 행에 있는 값은 해당 함수가 생성한 값을 가리킵니다. C.reduce가 전개연산자를 활용하여 제너레이터의 모든 값을 받아올 때, 제너레이터는 순차적으로 값을 내뱉을 것입니다.C.map은 바로 위의 L.map 으로부터 값을 받아오려 합니다. 그러나 2층의 L.map도 제너레이터를 받아서 돌아가는 제너레이터이므로, 바로 자신의 위인 3층의 L.map으로부터 값을 받아오려합니다.3층의 Lmap은 자신이 받아오는 제너레이터인 [1,2]에서 1을 받아오고, 함수를 실행시킵니다. 함수는 프로미스를 생성하므로, 프로미스 p1의 콜백이 백그라운드에서 즉시 실행됩니다. Lmap은 자신이 아래층에 생성한 프로미스 객체 p1을 2층의 Lmap에게 내려줍니다.3층에서 내려준 프로미스 객체를 받은 2층 Lmap은 프로미스가 resolve 되면 자신의 함수를 실행 시킬 것이라는 새로운 프로미스 p2를 생성하여 1층의 C.reduce로 내려줍니다.C.reduce는 전개연산자로 값을 배열에 다 모을 때까지 프로미스가 들어오든말든 개의치 않습니다. 일단 2층에서 받은 프로미스객체를 배열에 담아둡니다.C.reduce는 첫번째 값을 받았으니, 다시 2층에게 두번째 값을 요청합니다. 아까와 같은 방식으로 맨 위층에서부터 2를 받고 p4를 내려주고, p4를 받고 p5를 내려주는 형태로 일단은 C.reduce에는 [p2, p5]가 담길 것입니다. 이제 C.reduce는 전개연산자로 필요한 값을 다 받았으니, reduce로 모두 더할 차례입니다. 그런데 첫번째 값을 보니 프로미스입니다 (p2). reduce~go1 에 따라 p2가 완료되면 함수를 실행하겠다는 프로미스 p3를 생성하고 reduce 값으로 반환됩니다.reduce가 반환된 값이 go에 전달되고 최종적으로 콜 스택은 비워집니다. microtaskQueue를 보니, 아까 p1,p4가 실행한 자신의 콜백이 완료되어 p2의 콜백과 p5의 콜백이 담겨있니다. 콜 스택이 비워져 있으므로, p2와 p5의 콜백이 순차적으로 실행됩니다.p2가 실행되고 완료됨에 따라 microtaskQueue에는 p3의 콜백이 추가됩니다.이어서 p3 가 실행됩니다. p3는 첫번째 값의 프로미스가 해결되기를 기다리는 객체였습니다. 이어서 2번째 값을 다루려고 보니 이 역시 프로미스 (p5) 입니다. 따라서 완료되면 사용하겠다는 프로미스 p6를 생성하고 리턴합니다. (p6에는 go2와 recur에 의해 체이닝이 2개지만 일단 p6로 봅니다)microtaskQueue 에는 p6가 담기고, 콜 스택이 비워졌으므로 즉시 실행됩니다.go 함수가 마지막 까지 진행되고 결과값이 출력됩니다. 여기서 볼 수 있는 점은 생성한 프로미스의 객체가 resolve 되는 순서에 의해, 체이닝된 프로미스들의 콜백이microtaskQueue에 추가되는 시점이 다르다는 것입니다.프로미스가 생성된 순서는 p1,p2,p3,p4,p5,p6 순이지만,자신의 선행된 프로미스가 누구냐에 따라 실행되는 순서가 다르고,그로인해 실행순서는 p1,p4, p2,p5, p3,p6 순 임에 주목해야합니다.즉, 맨 위에 있는 프로미스가 resolve 되기 전까지,그 아래층에 있는 프로미스의 콜백은 microtaskQueue 에 추가 될 수 없습니다. 이런 원리는 한 행이 병렬적으로 수행되도록 만들어 내는 것입니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
위치 동기화 기능구현 질문이 있습니다
선생님 안녕하세요 서버강의를 듣고 이를 응용하여 3축 좌표계에서 플레이어가 접속하면 프리팹을 생성하고, 트랜스폼 정보와 애니메이션 정보를 동기화하는 서버를 구현하였습니다.플레이어가 접속하면 생성되는 프리팹은 언리얼의 HasAuthority와 같이 로컬 클라이언트의 소유가 되어 클라이언트만 자신의 위치를 브로드캐스트하면 다른 플레어들은 위치를 수신하여 손쉽게 구현이 가능했습니다!하지만 월드에 미리 배치되어있는 무버블 오브젝트들은 어떻게 동기화를 해야하는지 궁금합니다. 누구의 소유도 아닌 공공(?)의 오브젝트들은 누가 동기화 패킷을 보내줘야하는지 어렵습니다 ㅜㅜ조금 더 설명을 하면, 특정 조건에 함수가 호출되어 움직이는 기능을 수행하는경우는 RPC로 원격지 클라이언트에서 함수를 호출할 수 있게 구현하였습니다.하지만 미리 씬에 배치되어있는 Sphere 오브젝트를 플레이어가 움직이면서 밀어RigidBody 연산으로 자연스러운 움직임을 어떻게 동기화해야하는지 잘 모르겠습니다.
-
해결됨QGIS 파이썬 자동화 (벡터편) Ver.2
실전3 오류 문의
저는 토지피복도 병합 파일에 대해서 도형을 수정하거나 공간처리설정을: 유효하지 않은 입력 객체 무시 옵션으로 변경하세요. 라는 에러 메세지가 뜨는데요. 혹시 해결책이 있을까요??? ㅠㅠ
-
미해결함수형 프로그래밍과 JavaScript ES6+
제가 이해한 C.Reduce와 Reduce의 동작 차이 정리
Concurrency Reduce와 Strict Reduce의 동작 차이 정리_.reduce 와 C.reduce의 차이는 [...iter]로 제너레이터를 한번에 돌려 프로미스들을 동시에 평가 ( 프로미스의 평가 == 프로미스 객체 반환, 콜백함수 즉시실행 ) 하는데에 있다. _.reduce만약 [... ]형태로 전개하지 않는다면 reduce의 while문에서 next()를 하여 yield 로 반환하는 값을 하나씩 빼 올 것이고,이 과정에서 프로미스는 뽑힌다면 (=평가된다면) 뽑히는 과정에서 비로소 콜백을 실행 할 것이다. 그러나 전개하지 않은 상태에서는 이런 뽑히는 과정이 순차적이므로, '프로미스를 뽑아서 콜백을 실행 시켜준 후, reduce 자체를 return 하여 콜백이 완료될 때 까지 기다리고 다시 recur 재귀함수를 통해 이어서 진행하는 과정' 을 프로미스가 뽑힐 때마다 해주어야 하는 것이다.C.Reduce반면에 [...] 형태로 전개하여 사용하면, yield로 반환될 모든 값이 배열에 담긴다. 이 과정에서 뽑힌 프로미스는 콜백이 바로 실행될 것이고, 만약 제너레이터에 여러 프로미스들이 존재한다면 제너레이터의 next()가 연속적으로 동작함에 따라 콜백도 주르륵 병렬되게 실행 될 것이다.이런 프로미스를 포함한 배열을 받은 reduce는 then()을 통해서 reduce를 종료하고 프로미스를 반환한다. 콜백이 완료되면 then(recur)에 의해 재 실행된다. 여러 프로미스들이 거의 동시에 자신의 콜백을 실행시켰기 때문에, reduce 입장에서는 전체 시간이 가장 오래걸리는 놈 만큼만 소요다는 것이다. 마치 Promise.all() 이 동작하는것 처럼 말이다
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Knight가 공격시 Skeleton의 피격 범위에 대한 질문 입니다.
플레이어(Knight)가 공격 시 몬스터(Skeleton)의 충돌 범위를 나타내는CollisionCylinder가 아니라몬스터의 공격 범위를 나타내는 AttackRange에 만 닿아도AttackRange가 몬스터의 부품 이기 때문에 피격판정이 되어 공격이 들어 가는 것 같습니다.몬스터의 AttackRange가 아니라몬스터 자체의 충돌 범위 만을 공격 했을 때데미지를 주고 싶은데 방법을 알고 싶습니다.(혹시 이후의 강의에서 나오나요?)
-
해결됨독하게 되새기는 C 프로그래밍
스택 오버플로우 관련 질문입니다.
섹션 3 두번째 강의를 보면 스택의 크기는 보통 1MB로 설정되어 있고, 이 크기를 컴파일러 설정에서 10MB로 바꾸는걸 보여주셨는데요. 이 보통 1MB라는 스택의 크기는 운영체제 수준에서 설정된 값이 아닌가요? 어떻게 단지 컴파일러에서 값을 변경한 결과 비정상 작동하던 프로그램이 정상 작동하는 것인지 잘 이해가 되지 않습니다. 운영체제가 실행파일을 봤을 때 스택의 크기가 1MB가 아니라 달리 설정되어 있다면 그에 맞춰 실행을 하는 것인가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
교재는 어디서 받을 수 있나요?
수강생 추가 혜택! 교재 제공(출판 전까지만)그 notion 초대 구글폼 제출했는데 거기에 적은 이메일로 보내주시나요!?
-
미해결
해외접속 가능여부 문의
당분가 해외에서 생활하게 되었는데요해외접속이 가능한지 회신 부탁드립니다. 접속지 : 태국
-
해결됨Svelte.js 입문 가이드
안녕하세요
안녕하세요 Svelte 공부를 하고 있는 개발자입니다.다름이 아니라 이번에 회사에서 SvelteKit 를 사용하려고 하는데혹시 추천해줄 책이 있을까요??Svelte 기반으로 되어 있다고해도 코드 작성 방식이 다른 식이라 혹시나 공부해보셨다면 SvelteKit 관련 추천을 부탁드립니다. 워낙 정보가 많이 없어서 문의 드립니다.
-
해결됨Next.js 시작하기(feat. 지도 서비스 개발)
스토어 json 가져올 때, '.default' 를 하는 이유?
const stores = (await import('../public/stores.json')).default;라고 next api routes로 변경전에 json 파일을 가져오는데, '.default' 를 붙이는 이유가 있을까요?정확히 무슨 의미인지 알고 싶습니다.
-
미해결
인프라 구축 엔지니어(서버 구축 및 운영)는 어떤 업무와 할 수 있고, 어떤 스킬을 가진 개발자인가요?
서버 구축할 때 필요한 개발툴 프로그램과 어떤 업무를 하고, 어떤 스킬을 가진 개발자를 가리키는지 궁금하네요.#개발 #서버구축 #인프라구축
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
두번째 프로젝트 오류 질문드립니다
페이지구현 - 홈(/) 강의 53:08쯤에 slice(0, 25)를 붙이면 이렇게 오류나고, props가 udifined로 넘어오는게 문제인것같긴한데 왜 이렇게 오류가 났는지 전혀 모르겠어서 해결을 못하고있습니다ㅠㅠ 이럴때는 어떻게 해야할까요?이번에는 샌드박스 프로텍트 푼다고 풀어봤는데 잘 된건지 잘 모르겠네요
-
미해결자바스크립트 : 기초부터 실전까지 올인원
깃허브 오류
깃헙 강의 도중 push과정에서 오류가 생긴것같은데 혼자 구글링으로 해결하다보니 또 다른 부분에서 오류가 생겨나서 점점 엉키는 것 같아 여쭤봅니다 ㅠㅠ
-
미해결FreeRTOS 프로그래밍
태스크 별 주기 주는 방법
안녕하세요 task 1, task 1, task 1 이 있다고 가정할때 각각 100 200 500ms마다 한번씩 해야한다고 가정할 경우 어떻게 주기를 관리하나요? 예를 들어 단순하게 osdelay(100); 한다면 단순히 0.1초만 보장하기 때문에 나중에는 누적되어서 오차가 생길거라고 생각되어집니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리 테스트 케이스 작성 강의 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]afterEach() 함수를 적어두지 않으면 멤버가 중첩되어 에러가 발생한다고 강의 내에서 말씀하셨는데, 해당 함수를 적기 전에도 에러가 발생하지 않았기 때문에 질문드립니다. 코드 내용은 강의 내에서 작성하신 코드와 같은데, 어째서일까요?
-
미해결스프링 핵심 원리 - 기본편
실무에서 RequiredArgsConstructor를 사용할 때의 Annotation 사용 유무
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. Lombok의 RequiredArgsConstructor를 https://www.inflearn.com/questions/71872/requiredargsconstructor%EA%B3%BC-qualifier%EC%A7%88%EB%AC%B8저와 비슷한 질문이 있을까봐 질문 게시판을 찾다가 위의 글을 익어보았습니다. 실무에서도 저렇게 Lombok 설정을 바꾼 다음에 Primary, Qualifier, 혹은 사용자 정의 Annotation을 필드 앞에 적는 방식을 주로 사용하나요? 저러면 개발 팀 전체의 Lombok 설정이 바뀌는 것인데, 보통 저걸 합의하고 저렇게 바꾸는지 여쭤보고 싶습니다.아니면 실무에서는 Primary, Qualifier, 혹은 사용자 정의 Annotation을 사용하지 않고Discountpolicy rateDiscountPolicy;위와 같이 필드명(패러미터명)을 바꿔서 사용하는 방식이 일반적인지 여쭤보고 싶습니다. 강의에서는 위와 같은 방식을 별로 강조하지 않으셔서, 의문점이 남습니다. 또한 제가 생각하기에도 바람직한 방법은 아닌 것 같은게, package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component @RequiredArgsConstructor public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy rateDiscountPolicy; @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = rateDiscountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } }위와 같이 rateDiscountPolicy를 필드명으로 선언하면 createOrder에서도 rateDiscountPolicy로 사용해야 하는 불상사가 일어나지 않나요? 긴 글 읽어봐주셔서 감사합니다.
-
해결됨구글 애널리틱스 GA4 완전 정복 실무 마스터 클래스
GTM 연동 관련
GTM 추가 연동 시,기존에 추가했던 GA4 스크립트 (gtag.js) 는 삭제를 해야 하는건가요?아님 유지한 상태로 GTM 태그를 추가로 적용해야 하는건가요?