묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
collision 발생 조건
안녕하세요! 강의 잘 보고 있습니다다름이 아니라 2.18 적군 구현하기 3 - 플레이어 피격 실습하면서 Enemy gameObject와 Player gameObject를 충돌시키려고 할 때, 두 gameObject 모두 Kinematic일 경우 충돌 이벤트 자체가 발생하지 않더라구요 Rigidbody의 Body Type별로 충돌 이벤트가 다른식으로 발생하는거 같은데, Rigbody의 body type이 왜 둘다 Kinematic이면 충돌이벤트가 발생하지 않는지Collider와 Rigidbody는 어떤식으로 상호작용하는지답변이 가능할까요? 강의에서 다루는 내용에서 크게 벗어난다면 키워드만 알려주시면 검색해서 공부해보겠습니다..! 새해 복 많이 받으시고, 즐거운 한 해 되세요!
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
HTTP 메서드 #1. 질문있습니다.
4분 30초에 왜 post 메소드인데 상태코드가 201이 아닌 200인가요?
-
미해결따라하며 배우는 NestJS
회원가입 기능 구현
#7-2 회원가입 기능구현에서 강의 내용 전체 작성 후 회원가입 진행하였는데, username과 password가 컨트롤러에서 console.log(authCredentialDto)를 찍으니 빈 객체만 내뱉고 있고 db에 정상적으로 저장이 되지 않았습니다. 이리저리 코드를 수정해보니.dto 구성 단게에서 validator import 후에 정상적으로 출력이 됩니다. 강의 영상에서는 문제 없이 되던데 왜 이렇게 되는지 궁금합니다.
-
해결됨코어 자바스크립트
Object.prototype.constructor의 [[prototype]] ?
강의에서 설명해 주신객체(인스턴스) 와, 그것의 생성자 함수, 그리고 객체의 프로토타입 이 3가지의 구조에 대해서는 이해했습니다. 그렇게 되면, 어떤 객체를 프로토타입 체인을 타고 올라가도결국 Object.prototype 에 도달하게 되는 것이고,Object.prototype 또한 constructor를 가지고 있을 것입니다. 그렇다면 그 constructor는 함수이므로,Function.prototype 을 상속 받을 것이고,Fuction.prototype의 constructor는역시 함수이므로 Function.prototype을 상속 받게 됩니다. 크롬 개발자 도구에서 객체를 선언하고 console.dir로 타고타고 올라가면 결국 저 Object.prototype.constructor 가 나오는 시점부터 무한하게 트리를 타고 올라가게 되는데[[prototype]] > constructor > [[prototype]] > constructor > [[prototype]] .... 제가 보기엔 재귀참조형태 같아보이는데 이것이 맞는지 궁금하여 질문 드립니다. 그렇게 되면 Function.prototype.constuctor === Function()Function().[[prototype]] === Function.prototypeFunction.prototype.[[prototype]] === Object.prototypeObject.prototype.constructor === Object()Object().[[prototype]] === Function.prototype 형태가 되어버리는데 이게 맞는 지 궁금합니다..무언갈 놓치고 있는 것인지? 아니면 최상위 Object 객체에선 다르게 동작하는 규칙이 있는 것인지 궁금합니다.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
기본위젯
작업하게 될때 기본위젯 많이 사용하는 편인가여 ?? 코드로 다 칠것같은데 ui 그릴때는 보여주신 영상과 같이 마우스 끌어다가 사용하게 되나여 ?
-
해결됨스프링 핵심 원리 - 기본편
@Configuration과 싱글톤에서 memberRepository1, 2가 값이 달라요.
package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; public class OrderServiceImpl implements OrderService { // final 변수는 생성자를 통해 값이 반드시 할당 되어야 함 private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } }package hello.core.member; public class MemberServiceImpl implements MemberService { // private final MemberRepository memberRepository = new MemoryMemberRepository(); private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } } [ConfigurationSingletonTest]package hello.core.singleton; import hello.core.AppConfig; import hello.core.member.MemberRepository; import hello.core.member.MemberServiceImpl; import hello.core.order.OrderServiceImpl; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.assertj.core.api.Assertions.*; public class ConfigurationSingletonTest { @Test void configurationTest() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); MemberRepository memberRepository1 = memberService.getMemberRepository(); MemberRepository memberRepository2 = orderService.getMemberRepository(); System.out.println("memberService -> memberRepository = " + memberRepository1); System.out.println("orderService -> memberRepository = " + memberRepository2); System.out.println("memberRepository = " + memberRepository); assertThat(memberService.getMemberRepository()).isSameAs(memberRepository); assertThat(orderService.getMemberRepository()).isSameAs(memberRepository); } }클래스는 강의 내용 따라 작성했습니다. 그런데 테스트 결과가 아래와 같이 나옵니다.02:27:22.491 [main] DEBUG org.springframework.context.annotation.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@63355449 02:27:22.499 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor' 02:27:22.560 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerProcessor' 02:27:22.562 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerFactory' 02:27:22.562 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor' 02:27:22.563 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalCommonAnnotationProcessor' 02:27:22.566 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'appConfig' 02:27:22.569 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberService' 02:27:22.572 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberRepository' 02:27:22.572 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'orderService' 02:27:22.573 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'discountPolicy' memberService -> memberRepository = hello.core.member.MemoryMemberRepository@71e693fa orderService -> memberRepository = hello.core.member.MemoryMemberRepository@48793bef memberRepository = hello.core.member.MemoryMemberRepository@7d286fb6강의에서는 memberService와 orderService가 같은 값을 가리켜야한다고 하는데 다른 값이 나와서 오류를 찾고있습니다. 오류를 찾는게 쉽지 않아 질문 드립니다!
-
미해결대세는 쿠버네티스 (초급~중급편)
Longhorn Storage Delete.
kubectl delete storageclasses.storage.k8s.io -n longhorn-system longhornThis command not working. And I also tried "kubectl delete storageclasses.storage.k8s.io -n longhorn-system longhorn --force=true", but it fails. So I have to change the 'numberOfReplicas' as 2 in the source file and execute "vagrant destroy and vagrant up."
-
미해결Node.js의 모든 것
2023년 버전이 추가되어도 강의 순서에는 변함이 없는지 궁금합니다!
안녕하세요, 우선 2023년도 버전 강의 업데이트에 감사하다는 말씀부터 드리고 싶습니다. 2022년도 버전만큼을 새로 찍어서 올려주시다니... 새해부터 마음이 뜨끈해지네요.다른게 아니라, 언뜻 보기엔 섹션 6(prisma 쿼리 알아보기)이 Prisma에 대한 기본적인 개념을 잡는 섹션으로 보이는데 2023년도 강의 버전이 업데이트되면서 우선 PG실습부터 하는 순서로 변경된 것 같습니다. 이게 강사님께서 의도하시고, 또 추천하시는 수강 순서가 맞는지 궁금합니다!
-
미해결스프링 시큐리티
강의 자료는 어디서 받나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
<th:block> 태그의 존재 이유 관련 질문
<div th:each="user : ${users}"> <div> 사용자 이름1 <span th:text="${user.username}"></span> 사용자 나이1 <span th:text="${user.age}"></span> </div> <div> 요약 <span th:text="${user.username} + ' / ' + ${user.age}"></span> </div> </div><th:block> -> <div>로 바꾼 코드입니다.th:block 태그를 사용하지 않고 div 태그 2개를 반복할 수 있는 방법이 존재할 것 같아서 바꿔본 것인데,가장 바깥 <div> 태그가 출력된다는 점을 제외하면 눈에 보이는 결과물은 동일합니다.제가 아직 경험이 부족해서 <th:block>가 유용하게 사용되는 경우를 모르는 것이겠죠...? ㅠㅠ
-
해결됨디자인 시스템 with 피그마
컬러팔레트 관련 질문드립니다!
안녕하세요! 라이트/다크 모드로 디자인 시스템 작업을 해야되는데 파운데이션 컬러 primary와 secondary를 브랜드 컬러로 하고 thema / black 또는 black, white 라고 이름을 바꿨는데 라이트/다크모드 적용이 되지 않더라고요ㅠㅠ primary, secondary라고 꼭 해줘야 적용이 되는 걸까요?? 그렇다면 primary / dark , primary / light 라고 하면 되는 걸까요?? 개발자분께 전달 드릴 때 primary 컬러로 시작하는 게 많아서 헷갈리거나 그렇지는 않겠지요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오라클 DB연결 bean설정하는 방법 질문합니다.
강의를 듣다가 데이터베이스를 h2 말고 oracle로 사용하고싶어서 변경해봤는데 방법을 잘 모르겠습니다..단순하게 db 연결은 가능합니다. public class JdbcTest01 { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); Class.forName("oracle.jdbc.driver.OracleDriver"); String sql = "select * from member"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); System.out.println(" == 쿼리문 처리 결과 =="); while (rs.next()) { System.out.println("Lprod_id : " + rs.getInt("id")); System.out.println("------------------------------"); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { } finally { if (rs!=null) { try { rs.close(); } catch (SQLException e2) { } } if (stmt!=null) { try { stmt.close(); } catch (SQLException e2) { } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { } } } } } 그런데.. 빈 설정하는 방법을 잘 모르는 것 같습니다 ㅠㅠ (.getConnection에 유저이름과 비밀번호는 제대로 설정했습니다!밑에만 바꿨어요!)public class JdbcMemberRepository implements MemberRepository { private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { // 5. 자원 반납 if (rs!=null) { try { rs.close(); } catch (SQLException e2) { // TODO: handle exception } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { // TODO: handle exception } } } }프로퍼티스spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.username=이름 spring.datasource.password=비밀번호 디펜던시스dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.oracle.ojdbc:ojdbc8:19.3.0.0' implementation 'com.oracle.database.jdbc:ojdbc6:11.2.0.4' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' } @Configuration@Configuration public class SpringConfig { private DataSource dataSource; public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean //스프링빈수동등록 public MemberService memberService() { return new MemberService((MemoryMemberRepository) memberRepository()); } @Bean public MemberRepository memberRepository() { //return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); } } 어떤 부분을 추가하고 수정해야하는지 잘 모르겠습니다 ㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 질문이 있습니다
포인터 값을 증가시키면 해당 포인터 자료형만큼 주소가 이동한다고 했는데요!(ex. int* 면 4byte씩, char* 면 1byte씩)근데 스택프레임에서의 주소 이동은 32bit면 4byte, 64bit면 8byte 단위로 이동하는걸로 알고 있는데, char* 형 이동 단위인 1byte씩 움직이는것도 가능한건가요???ex.char number = 1;char* pointer = &number;pointer += 2;만약 위처럼 코딩이 되어있을 때, 메모리를 까보면 pointer 주소값이 2byte 증가해 있는데, 이렇게 되면 32bit 기반 스택프레임에서 4byte의 절반인 0.5블럭만 갖게 되는 건가요????
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
선행 지식
스프링 강의 선행으로 요구되는 지식이 자바, 관계형 데이터베이스 기초라고 되어 있는데요자바랑 MySQL은 공부했습니다.그런데 JDBC나 JSP, 서블릿, 디자인 패턴 등에 대한 지식이나 웹 개발에 대한 지식은 모른 채로 로드맵 시작해도 상관없나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
싱글 코어와 멀티 코어에 대해 질문드립니다.
안녕하세요. 싱글 코어와 멀티 코어에 대해 궁금한 점에 대해 질문드립니다.1.만약 제가 작성한 프로그램에서 멀티 쓰레드를 사용하더라도 사용하는 컴퓨터의 CPU가 싱글 코어 일 경우쓰레드를 사용할 때 컨텍스트 스위칭이 일어나기 떄문에 멀티 쓰레드를 사용하는 건 의미가 없는 게 맞을까요?2.반대로 멀티 코어인 컴퓨터에 단일 스레드 환경의 프로그램을 만들었을 경우 여러 코어를 사용하는 게 아닌 하나의 코어만 사용하게 되어 CPU의 성능을 제대로 활용 못하는 게 맞을까요? 실제 운영체제 환경에서는 제가 만든 프로그램 외 에도 백그라운드로 실행되는 프로그램들이 있어서 코어 하나만 사용하진 않겠지만 개념적으로 봤을 때 멀티 코어일 때 단일 쓰레드 환경의 프로그램이면 CPU 성능을 제대로 활용 못 하는 게 맞는 건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:text=${}에서 변수에 데이터가 없는 경우 관련 질문
<span th:text="${data}">html data</span>Model에 data가 있는 경우, 키가 data인 값이 'html data'를 대체합니다.그런데, Model에 data가 없는 경우, 소스코드 보기로 확인해보니 <span></span>으로 출력되었습니다. 그렇다면 'html data'는 도대체 왜 작성하는 것인가요..??
-
미해결앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정)
질문은 슬랙채널에 올려주세요.
질문은 부트캠프 슬랙채널에 올려주세요. 인프런으로 답변을 드리지 않습니다. (답변 채널을 통일하기 위함이기도 하고, 자주하는 질문들을 이미 정리해 놓았기 때문에, 질문이 흩어지면 관리가 안되는 문제가 있습니다. 양해 부탁드립니다.)
-
미해결오픈 소스 자바스크립트 React 프로그래밍 입문 Part.1
GitHub extension 이 확장프로그램 목록에 노출되지 않습니다.
강의 48분 정도에 GitHub Extension 이 확장프로그램 목록에 노출되지 않는데 어떻게 해야 할까요 ?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
dispose에서 timer를 직접적으로 cancel 해줘야 하는지 궁금합니다.
안녕하세요. 강의 잘 듣고 있습니다! dispose되어서 State 객체가 사라지면 그 member인 timer도 GC에 의해 함께 메모리 해제 되는 것이 아닌지 궁금합니다.혹시 timer를 관리하는 또 다른 객체가 포인팅하고 있어서 그런건가요?
-
미해결
JPA 식별관계 사용에 대해서...
Jpa를 사용할 때 테이블 관리를 쉽게 하기 위해서 비식별 관계로 테이블을 설계하라고 들었는데 그러면 실무에서 jpa쓸 때 식별관계를 안쓰나요?