묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨두고두고 써먹는 유니티 VR
이미 있는 씬에 VR 환경 얹어서 세팅
안녕하세요지금 VR을 구현하려는 유니티 내의 씬(3d모델)이 있고, 모델 속에서 걸어다니는 것처럼 VR을 구현하려고 하고 있습니다.VR환경 세팅 후에 따로 prefab으로 설정해서 씬 위에 얹는 방식을 해보려고 했는데, 이 방식이 안되서 .. 혹시 어떤 방식이 있는지 여쭤볼 수 있을까요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
컴포넌트 리랜더
리액트를 이용하는 이유가 virtual dom으로 dom트리를 변경하였을 때의 성능 향상 이점이 있어서 사용한다고 하셨는데 여러 컴포넌트를 만들고 하나의 컴포넌트의 자식으로 넣고 리랜더하면 성능향상은 그렇게 없지 않나요?
-
미해결홍정모의 따라하며 배우는 C++
화면좌측 숫자 보이기
강사님 프로그램을 보면 좌측에 숫자가 나오는데, 어떻게 해야 보이게 할 수 있나요??
-
미해결홍정모의 따라하며 배우는 C++
화면 좌측 숫자 보이기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
실습시 docker desktop 대신 할 프로그램
안녕하세요 docker 설치를 진행했더니, 사내PC에 라이센스 관련 이슈로 설치가 불가하다고 합니다.혹시 해당 프로그램 대신 다른 프로그램으로 대체가 가능한지 문의드립니다.
-
미해결
수강연장 문의드립니다
코드바나나님 안녕하세요.최근 회사일이 바빠 수강을 못하고 있었는데 이제 제대로 마저 수강하려고 합니다. 수강 연장 부탁드립니다. 감사합니다.
-
미해결디지털포렌식전문가 2급 필기 핵심 요약집[전자책]
리뉴얼 고생하셨습니다
목빠져라 기다렸네요 고생많으셨습니다 ㅎㅎ 합격해서 꼭 승전보 알리겠습니다
-
해결됨오브젝트 - 설계 원칙편
7-3 상속을 이용한 중복 제거 질문 있습니다!
7-3. 의존성 역전 원칙 - 추상화와 세부사항 13:43~수업을 듣던 도중 추상 클래스를 인터페이스와 함께 사용한 이유가 궁금해 질문드립니다.상속이 코드 재사용을 위해 그다지 좋은 방법이 아니라는(+ 자세한 내용은 뒤에서 더 자세히 살펴봄) 언급을 해주셨지만, 우선 여기서는 왜 이렇게 코드를 짰는지 궁금해 고민한 부분을 여쭤보고자 합니다. 인터페이스와 추상 클래스를 함께 사용하는 이유 1. 협력을 위해 제공하는 메시지를 확인하기 용이하기 때문인가요?해당 강의를 듣고나서 맨 처음 들었던 생각은, "추상 클래스로만 추상화를 한 뒤, 상위 수준 객체가 인터페이스 대신 추상 클래스를 의존하면 안될까?" 였습니다. 추상클래스를 사용하더라도 read()만 public이고 readLines()나 parse() 는 각각 private, protected 이므로 외부에 노출되지 않아서 괜찮지 않을까 생각했습니다.더 고민해 보았는데, 인터페이스를 사용한다면 코드를 유지보수하는 과정에서 다음과 같은 이점을 얻을 수 있어서 그런가? 라는 생각이 들어 질문드립니다. 상위 수준의 객체가 인터페이스에 의존하면 역할을 한 눈에 파악하기 쉽다.Reader 는 read()라는 메서드 시그니처로 "특정 데이터소스로부터 읽어오는 작업"을 수행한다. 라는 것을 인터페이스를 통해 명시한다. 즉, "명세" 역할을 한다.이는 유지보수 과정에서 해당 인터페이스만 읽고 구현체가 제공하는(또는 해야하는) 기능(public 메서드)들을 확인하기 용이하다. 즉, 역할을 한 눈에 파악하기 쉽다. 추상 클래스에 의존하면 역할을 한 눈에 파악하기 어렵다.AbstractReader는 메서드 시그니처 뿐만 아니라 중복 로직의 경우 구현 내용까지 포함하고 있고, 여러 메서드들 중 외부에서 협력하기 위해 pubilc으로 노출시켜 제공하는 기능을 한 눈에 파악하기 어렵다.위 두 가지 내용이 인터페이스를 추상클래스와 함께 사용하는 이유가 될 수 있을까요? 2. 두 public 메서드 중 하나는 중복 로직, 하나는 각 구현체마다 다르게 구현하는 경우에도 인터페이스와 추상클래스를 함께 사용하는 것이 좋을까요?1번에서 인터페이스와 추상클래스를 함께 사용한 이유로 언급했던 "역할을 한 눈에 파악하기 쉽다"는 장점이 있다면, 두 메서드 모두 public일 때에도 추상클래스로만 구현하기 보다는 인터페이스와 추상클래스를 함께 사용하는 것이 좋을까요? 2번 질문은 예시 코드를 드리자면 Spring Boot 개발환경에서 작업한 코드로 CaptchaHashProcessor 인터페이스에는 public 메서드인 hash() , verify() 두 메서드가 있습니다. 해당 인터페이스를 구현한 두 구현체에서 verify() 메서드가 중복되는 상황입니다. 기존 코드두 public 메서드를 제공하는 인터페이스public interface CaptchaHashProcessor { HashResult hash(Long captchaId); Long verify(String hashedCode, Long userId); }구현체 1 - hash는 다르게 구현하나 verify는 구현체 2와 내용 동일public class RandomCaptchaHashProcessor implements CaptchaHashProcessor { private static final SecureRandom RANDOM = new SecureRandom(); private final Encryption encryption; private final CaptchaLogPort captchaLogPort; private final EncryptionProperties properties; @Override public HashResult hash(Long captchaId) { // 구현체마다 다름... } @Override public Long verify(String encryptedCode, Long userId) { // 중복 로직 ... } }구현체 2- hash는 다르게 구현하나 verify는 구현체 1과 내용 동일public class FixedCaptchaHashProcessor implements CaptchaHashProcessor { private static final String FIXED_IV = Base64.getEncoder().encodeToString(new byte[16]); private final Encryption encryption; private final CaptchaLogPort captchaLogPort; @Override public HashResult hash(Long captchaId) { // 구현체마다 다름... } @Override public Long verify(String hashedCode, Long userId) { // 중복 로직 ... } } 추상클래스 사용여기서 추상클래스로 verify 중복 로직을 이동시키면서 인터페이스를 사용한다면인터페이스를 구현한 추상클래스 public abstract class AbstractCaptchaHashProcessor implements CaptchaHashProcessor { protected final Encryption encryption; private final CaptchaLogPort captchaLogPort; @Override public Long verify(String hashedCode, Long userId) { // 추상 클래스로 이동한 중복 로직 ... } }구현체 1public class RandomCaptchaHashProcessor extends AbstractCaptchaHashProcessor { private static final SecureRandom RANDOM = new SecureRandom(); private final EncryptionProperties properties; public RandomCaptchaHashProcessor(Encryption encryption, CaptchaLogPort captchaLogPort, EncryptionProperties properties) { super(encryption, captchaLogPort); this.properties = properties; } @Override public HashResult hash(Long captchaId) { // 구현체마다 다름 ... } }구현체 2public class FixedCaptchaHashProcessor extends AbstractCaptchaHashProcessor { private static final String FIXED_IV = Base64.getEncoder().encodeToString(new byte[16]); public FixedCaptchaHashProcessor(Encryption encryption, CaptchaLogPort captchaLogPort) { super(encryption, captchaLogPort); } @Override public HashResult hash(Long captchaId) { // 구현체마다 다름 ... } }이렇게 구현할 수 있을텐데, 인터페이스를 사용하지 않는다면 hash 메서드까지 추상 클래스의 추상 메서드로 명시해서 상위 수준 클래스가 추상 클래스에 의존해도 될 것 같아서 고민이 됩니다! 이 질문을 작성하면서 다른 생각도 떠올랐는데요, CaptchaHashProcessor는 캡챠 코드를 암호화(hash)하고 캡챠 코드를 검증(verify)한다는 두 가지 책임을 가진 것 같아서 어쩌면 암호화 책임은 인터페이스와 그 구현체들로 제공하고, 검증 책임은 또다른 클래스에서 구현하는 것이 적절한가? 하는 생각도 듭니다... 좋은 강의를 제공해주시고 긴 질문 읽어주셔서 감사합니다.질문은 타인이 저에게 소중한 시간을 소비하는 것이라 생각해 강사님의 시간 낭비가 되지 않도록 영양가 있는 질문을 잘 하고싶습니다. 혹시나 질문의 내용 구성이나 태도, 질문을 이끌어낸 사고과정 등에서 부족한 부분이 보였다면 어떻게 개선하면 좋을지 말씀해주시면 감사하겠습니다!
-
해결됨실전! Django 입문 [최신 5.2 버전]
form 분리 시 form action
안녕하세요!강의 2분 35초에 post_list.html에서 post_create.html로 폼 분리하고 path 따로 만들었는데 form action은 그대로 'posts'라고 둬도 되는건가요,,? 저는 'post_create'로 변경해줘야 올바르게 연결이 되는데 혹시 제가 놓친 부분이 있나 해서 질문 드립니다.
-
해결됨회로설계 입문자를 위한 디지털, 아날로그 설계와 실무 Project
Active Load Differential amp 설계해보기 18:20 질문
삼코치님 안녕하십니까 설계를 해보면서 뭔가 다르게 나오는 부분이 있어 질문드립니다.이전까지는 어느정도 비슷하게 나오다가 18:20초에서 왼쪽 위 PMOS load의 L값을 1u에서 2u로 늘리는 과정에서 저는 오히려 Voltage가 늘어나고, gain 보시면 갑자기 9db로 확 줄어버리는데, 왜 그런지 모르겠습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
틀린문제(못 푼 문제) & 직장인 공부 방법 질문드립니다.
안녕하세요현재 1주차를 3주째 보고있는 직장인 수강생입니다..코테가 거의 초보수준이다보니 1주차 문제도 절반도 채 스스로 못 풀고 강의로 문제풀이를 보고있습니다.우선 틀린, 못 푼 문제들을 따로 기록은 해두었는데 복습은 어떤식으로 진행하면 좋을지 모르겠습니다. ( ex. 매 주차 강의 다 끝내고 다시 풀기 or 다음날 다시풀기 등등.. ) 그리고 매 주차 안에 반드시 할당된 강의를 소화해야만 의미가 있는걸까요? 일이 바쁜지라 쉽지않아서 고민입니다 🥲
-
미해결노코드 자동화 입문부터 실전까지: n8n 완전정복 (한국 최초 n8n 앰버서더 직강)
유스케이스 실습이 전혀 되지 않네요.
저만 문제가 있나요?기본적인 설정에 문제가 있어서 그런지 처음부터 실행이 되지 않고 있습니다. 로컬 구성과 레일웨이에서 시도를 해 보았지만 다 실패하고 있습니다. json으로 올린 노드들 어떤 노드는 검색이 되지 않는 노드도 있더군요. 해결책을 알려주시면 고맙겠습니다. 수강료를 결제했는데 이 상황이면 많이 후회하는 상황이 발생할 것 같습니다.
-
해결됨[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
리밸런스 onPartitionRevoked이 필요한 상황
안녕하세요.onPartitionRevoked() 메서드에 대한 아래 설명을 보고 몇 가지 의문이 생겨 질문드립니다."리밸런스가 시작되기 직전에 호출되는 메서드이다. 마지막으로 처리한 레코드를 기준으로 커밋을 하기 위해서는 리밸런스가 시작하기 직전에 커밋을 하면 되므로 onPartitionRevoked() 메서드에 커밋을 구현하여 처리할 수 있다."수동 커밋 모드(manual commit)의 경우, "마지막으로 처리한 레코드를 기준으로 커밋"한다는 의미를 어떻게 이해해야 할까요?리밸런싱이 발생하더라도 이미 poll()로 받아온 레코드는 그대로 처리할 수 있으니, 레코드 처리 및 커밋은 정상적으로 동작하지 않을까요?그럼에도 불구하고 onPartitionRevoked()에서 커밋하지 않으면 '커밋을 구현하여 처리할 수 있다'는 어떤 의미인지 궁금합니다.오토 커밋 모드(auto commit)의 경우에는 onPartitionRevoked()가 어떤 상황에서 필요하게 되는지도 잘 감이 오지 않습니다.이 경우에도 별도의 처리를 하지 않으면 유실이나 중복이 발생할 수 있다는 의미인지, 혹은 다른 목적이 있는지 궁금합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
화면 안보임
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 2장 섹션 기본 ui 학습 : 목소리는 나오나 화면이 아무것도 안보임 - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
utf-8, char
utf-8로 지정해서 IO 작업을 하더라도,utf-16인 (char)로 형 변환이 가능한 이유가 궁금합니다. char는 ascii와 호환이 안되지않나요..?StringBuilder content = new StringBuilder(); FileReader fr = new FileReader(FILE_NAME, UTF_8); int ch; while ((ch = fr.read()) != -1) { content.append((char) ch); } fr.close();
-
미해결바로쓰는 CI/CD on K8S
렌즈에서 config파일 불러올 떄 오류납니다.
질문이 있으시다면 주저하지 마시고 물어보세요윈도우에서 git bash로 작업햇습니다포트포워딩이 문제인지... 방화벽이문제인지.. 머가 문제인지 모르겠습니다... 멀해도 해결이안되네요... 아님 처음부터 다시 설치하는게 나을까요..
-
미해결노코드 자동화 입문부터 실전까지: n8n 완전정복 (한국 최초 n8n 앰버서더 직강)
여권사진 검중 json 파일 처음부터 오류 납니다.
-
해결됨코틀린 코루틴 완전 정복
Job() 생성후 complete을 불러 주어야 하는 경우가 헷깔립니다.
- 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요.Job() 생성시에 어떤 경우는 compete을 호출해 주어야 하고 어떤 경우는 아닌 것 같은데 그 상황이 헷깔려서 문의 드립니다. 강의에서는 다음과 같이 설명 합니다.launch나 async 함수를 통해 생성한 job객체는 모든 코드가 실행 되면 자동 완료 되지만 job 생성 함수를 통해 생성한 job 객체는 자동으로 실행 완료 되지 않습니다. 아래 코드에서는 launch 안에서 생성함수를 통해 생성한 job 객체는 자동 완료 되지 않는 것으로 보입니다.fun main() = runBlocking<Unit> { launch(CoroutineName("Coroutine1")) { launch(CoroutineName("Coroutine2") + Job(parent = this.coroutineContext[Job])) { delay(100L) println("[${Thread.currentThread().name}] 코루틴 실행") } } } 하지만 아래 코드에서는 똑같이 생성함수를 통해 생성된 job 객체인데도 자동 완료 되는 이유는 무엇인가요? fun main() = runBlocking<Unit> { launch(CoroutineName("Coroutine1")) { val newJob = Job() launch(CoroutineName("Coroutine2") + newJob) { delay(100L) println("[${Thread.currentThread().name}] 코루틴 실행") } } }
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
가비지컬렉션 관련 질문있습니다.
ULCUserFacingExperience::CreateHostingRequest 함수를 설명하시면서 코드블럭 내에 NewObject로 선언한 객체가 GC의 대상이 된다고 하셨는데 언리얼의 NewObject함수는 템플릿 내의 자료형을 힙영역에 할당하는 방식이 아닌건가요?물론 코드블럭을 벗어나면 스택에 올라가있는 NewObject로 받은 지역변수 포인터는 사라지겠지만 객체 자체가 스택에 남아있어 GC에게 감시되는 방식인지 궁금합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
HackerRank 진행 도와주세요
오늘 처음 강좌를 수강하는데벌써 막히네요... 해커랭크에 회원가입을 했는데 그 다음은 어떻게 하나요? 영상과 전혀 다르게 화면이 나옵니다