묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
주소록 실습 3단계에서 막혔어서 조언을 구하려고 질문 드립니다.
안녕하세요. 개발자님. 주소록 3단계에 너무 막히고 시간이 끌려서 어찌해야할까 하고 조언을 얻으려고 질문 드립니다. 정답을 보니내용을 너무 어렵게 생각했다 라는 생각이 드는 것이 먼저이고 이러한 실습을 많이 해보지 못한 개발자이고, 경험을 많이 쌓아봐야 숙달이 되는 것은 인지는 하고 있지만... 그래도 새로운 것을 시도해보라고 하면 처음이 무슨 소리인지 모르고 적용을 어떻게 할 지 몰라서 막막합니다. (하루 이틀이 지나야 번뜩 떠오릅니다) 그래서 이러한 문제를 어떤 것을 참고 삼아서 공부를 해야 할 지 조언을 얻고 싶습니다. 많이 해보는 것만이 답인지 반복 숙달이 답인지 개개인마다 다른지 ...
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
파이어베이스 관련 질문입니다.
안녕하세요. 강의 잘 듣고 있습니다. 파이어베이스 로그인 기능중에 구글과 애플 로그인을 구현해주셨었는데요. 파이어베이스에 익명 로그인 기능도 있더라구요. 게임 시작은 익명 로그인을 시킨 후 게임 중간에 구글이나 애플 로그인을 통해 전환하는 방법도 궁금합니다. 전환시키는 코드도 궁금하지만 전환 시킬 경우 익명 로그인 했던 ID 는 그대로 남고 새로운 구글, 애플 로그인 ID가 생성되는 방식인지 아닌지도 궁금합니다. 이상입니다. 감사합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
소스코드 실행이 안돼요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]소스코드 실행하려고 하면 아래와 같이 뜹니다..
-
해결됨고도 엔진(Godot Engine)을 통한 게임 개발 박치기!! - 기본 개념부터 실전 게임 제작까지 한방에!
31강 질문
31강에서 리소스를 상속받은 스크립트 작성시, @export var level : int @export var damage : int @export var texture : Texture2D위와 같이 작성되었습니다.공식문서를 보니 sprite2D 노드에서 사용할 수 있는 리소스가 Texture2D에 해당한다고 되어 있는데요. 리소스는 이름만 보고서는 어디서 어떻게 사용하는 것인지 바로 알기가 어렵네요 ㅠ각각의 리소스가 어떤 노드에서 사용할 수 있는지 정리된 사이트 같은게 있을지 문의드립니다~
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
업적/미션 Pt.3에서 OnClickClaimBtn 호출 시 Sort 부분 호출 동작
public void OnClickClaimBtn() { if(!m_AchievementItemData.IsAchieved || m_AchievementItemData.IsRewardClaimed) { return; } var userAchievementData = UserDataManager.Instance.GetUserData<UserAchievementData>(); if(userAchievementData == null) { Logger.LogError("UserAchievementData does not exist."); return; } var achievementData = DataTableManager.Instance.GetAchievementData(m_AchievementItemData.AchievementType); if(achievementData == null) { Logger.LogError("AchievementData does not exist."); return; } var userAchievedData = userAchievementData.GetUserAchievementProgressData(m_AchievementItemData.AchievementType); if(userAchievedData != null) { var userGoodsData = UserDataManager.Instance.GetUserData<UserGoodsData>(); if(userGoodsData != null) { userAchievedData.IsRewardClaimed = true; userAchievementData.SaveData(); m_AchievementItemData.IsRewardClaimed = true; switch (achievementData.AchievementRewardType) { case GlobalDefine.RewardType.Gold: userGoodsData.Gold += achievementData.AchievementRewardAmount; var goldUpdateMsg = new GoldUpdateMsg(); goldUpdateMsg.isAdd = true; Messenger.Default.Publish(goldUpdateMsg); userAchievementData.ProgressAchievement(AchievementType.CollectGold, achievementData.AchievementRewardAmount); break; case GlobalDefine.RewardType.Gem: userGoodsData.Gem += achievementData.AchievementRewardAmount; var gemUpdateMsg = new GemUpdateMsg(); gemUpdateMsg.isAdd = true; Messenger.Default.Publish(gemUpdateMsg); break; default: break; } userGoodsData.SaveData(); } } }이 부분에서 8:17초 부분 보시면 보상 받고 바로 UI Sort가 호출되는게 OnAchievementProgressed가 호출 돼서 그런거 같은데 저 OnClickClaimBtn 함수 내에선 찾아봐도 OnAchievementProgressed가 호출 될 수 있는 부분이 안보여서 질문드립니다. 제 동작 역시 보상을 받고 Sort는 일어나지 않습니다.저 userGoodsData.SaveData(); 밑에var achievementProgressMsg = new AchievementProgressMsg(); Messenger.Default.Publish(achievementProgressMsg); 를 호출해야하나요..? 다시 확인해보니 골드업적이 깨지기 전이면 골드 업적 갱신부분에서 Sort가 호출되서 그러는거 같은데 이미 골드 업적을 깬 상태면 Sort가 발생하지 않습니다.
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
사전 등록 관련 재질문
답글이 등록되지 않아 새로 올립니다.말씀해주신대로 내부 테스트, 비공개 테스트, 공개 테스트 등 활성되어있는 부분을 모두 비활성 상태로 변경해봤으나 사전등록시작 버튼은 여전히 비활성화 되어있습니다.사전 체험판도 혹시 몰라서 모두 일시중지 트랙으로 옮겨 놔봤습니다.사전 등록 국가 선택 부분에서 이미 서비스되고 있는 국가는 선택할 수 없게 되어있더라구요.특별한 원인을 찾지 못해 새로운 앱으로 등록 테스트를 진행해봐야 할 것 같고요아래와 같은 질문이 있습니다~강사님께서는 내부 테스트를 진행하셨는지 궁금합니다.현재 프로덕션으로 출시 국가가 있는지 궁금합니다.사전 예약 버튼 출시 국가가 없는 상태에서 활성화 되어있었는지 궁금합니다.비공개 테스트를 진행하셨는지 궁금합니다. (앱을 프로덕션으로 버전 승급을 하려면 14일간 이 테스트를 무조건 진행해야 하더라구요)비공개 테스트를 진행하셨다면 현재는 트랙을 일시 중지 시켜놓은 상태이신지 궁금하니다.강사님께서 현재 앱 상태를 알려주시면 참고가 많이 될 것 같습니다.여러모로 도움 주셔서 너무 감사드립니다~!!
-
해결됨오브젝트 - 기초편
DiscountPolicy의 구현체에 관련 질문 드려요!
영호님 안녕하세요!! [6-5. 설계 평가하기] 강의를 듣던 중 궁금한 부분이 생겨 질문을 드리게 되었습니다! 컴파일 타임 결합에서 런타임 결합으로 변경하는 과정에서 Movie 클래스의 calculateFee메서드와 DiscountPolicy 추상클래스의 getDiscountAmount 메서드가 Screening 객체에 의존하게 되는데- Movie 클래스의 경우에는 Screening 객체를 직접 사용하는 것이 아닌 DiscountPolicy에 전달만 하고 있으며, - DiscountPolicy를 상속받은 AmountDiscountPolicy 클래스의 경우에는 아예 Screening 객체를 사용하지 않고 있는 상황입니다!Q. 혹시 이렇게 직접적으로 사용하지 않더라도, 메서드 파라미터로 정의해도 괜찮은 것인가요??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
오타 제보 드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]IO 기본 2 문자 다루기1 시작 pdf파일,ReaderWriterMainV1 코드에서 마지막에System.out.println("read bytes: " + Arrays.toString(writeBytes)); readBytes가 아닌 writeBytes가 들어가 있습니다
-
해결됨3일 완성! 네카라쿠배당토 백엔드 면접 생존 챌린지
다시보기 서비스도 제공하는지 궁금합니다.
다시보기 서비스도 제공하는지 궁금합니다.
-
해결됨C개발자를 위한 최소한의 C++
소멸자 가상함수 질문
안녕하세요. 57. 소멸자 가상화 강의 보고 질문드립니다.가상함수에서 virtual 예약어를 붙인 메서드는 자기부정을 전제로 파생 클래스에 동일한 이름의 함수가 만들어진다면 기본 클래스에 virtual로 선언된 가상함수는 무시되는 걸로 이해했습니다.그런데 소멸자에 virtual을 붙일 경우에는 왜 파생 소멸자만 불리는게 아니라 기본 클래스 소멸자도 불리는 걸까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
강좌 복습 팁이 있으신 분들 공유해주시면 감사하겠습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.자바 고급편 수준이 저한테 높아서, 느린 배속으로 반복해서 내용을 겨우 이해는 했는데 강의 내용이 자기 것으로 되었다는 느낌이 없고 교안이나 영상 없이는 이론 설명이나 예제 코드 작성이 잘 안 됩니다.강의 내용을 자기 것으로 체화하신 분들은 어떻게 복습하셨나요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
16강 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]package io.buffered; import java.io.FileInputStream; import java.io.IOException; import static io.buffered.BufferedConst.BUFFER_SIZE; import static io.buffered.BufferedConst.FILE_NAME; public class ReadFileV2 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(FILE_NAME); long startTime = System.currentTimeMillis(); byte[] buffer = new byte[BUFFER_SIZE]; int fileSize = 0; int size; while ((size = fis.read(buffer)) != -1) { fileSize += size; } fis.close(); long endTime = System.currentTimeMillis(); System.out.println("File name: " + FILE_NAME); System.out.println("File size: " + fileSize / 1024 / 1024 + "MB"); System.out.println("Time taken: " + (endTime - startTime) + "ms"); } }이 코드를 컴파일했을 때 Time taken이 6ms 언저리로 자꾸 나오는데 컴퓨터마다 다 다르게 찍히는 건가요? 강의에서는 1ms로 나와서 제가 타이핑을 잘못했나 싶어서 여쭤봅니다.
-
미해결스프링 핵심 원리 - 기본편
ai api 선정하기 관련 질문
안녕하세요!!! 제가 영한쌤의 강의를 토대로 백엔드개발을 배우고 팀원들과 프로젝트를 할려고 합니다.사용자들의 대화(텍스트)를 기반으로 여행계획을 짜주는 서비스를 만들려고합니다.사용자끼리 채팅->채팅내용을 ai api에 전송->여행계획출력순인데어떤 api를 사용하는게 좋을까요?제미나이 클로드 지피티 등 종류가 많아서 고민중입니다.
-
해결됨김영한의 실전 자바 - 중급 1편
래퍼클래스 박싱 출력
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요 예[질문 내용]안녕하세요 자바 래퍼클래스 강의를 듣다가 궁금해서 질문 남깁니다. 래퍼클래스 생성 (=박싱)하고나서 변수를 출력을 해보면 생성자에 주었던 값이 출력되게 되는데요.래퍼 클래스는 기본형을 객체화 시킨것이라고 알고 있고, 그렇기 때문에 변수에는 객체기 때문에 참조값이 들어가야한다고 알고있는데 왜 참조값이 아닌, 객체에 들어있는 멤머 변수 값이 출력이될까요?ㅠ
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
구글 플레이 콘솔 사전 예약 등록에 대해.
안녕하세요. 강의 잘 듣고 있습니다. 🙂 일부 특정 국가에 먼저 서비스를 진행중인 상태(프로덕션)이고요 그외 서비스하지 않은 나머지 국가에는 사전등록을 진행해볼려고 합니다. 구글 플레이 콘솔이 업데이트 되어서 그런지 모르겠지만 사전 등록 트랙을 활성화 시키는 방법을 모르겠습니다. 위 스크린샷에서 사전 등록 트랙을 활성화 시켜볼려고 빌드 파일도 올려보고 나라도 선택하고 다른것들도 해 보았으나 트랙 요약이 계속 비활성화 된 상태입니다. 혹시 사전 등록을 어떤 순서로 진행하는건지 알려주시면 감사하겠습니다~!!
-
해결됨고도 엔진(Godot Engine)을 통한 게임 개발 박치기!! - 기본 개념부터 실전 게임 제작까지 한방에!
69번 강의에서 에러 발생 보고
안녕하세요69번 강의에서 HUD를 모두 구성한 뒤 테스트하는 과정에서 발생한 에러에 대해 보고드립니다.강의자님이 테스트하는 과정에서 부스터를 사용한 뒤에 부스터 아이템을 먹으면 정상적으로 부스터 게이지가 충전되는 것으로 확인해 주셨는데요. 게임 시작후에 부스터를 한번도 사용하지 않고, 부스터 아이템을 먹게 되면 boost_tween 부분에 null 에러가 발생하게 됩니다.이를 개선하기 위해 아래와 같이 수정하면 null 에러가 발생하지 않게 되는데요.시간 괜찮으실때 강의에 추가해 주시면 좋을것 같습니다. 'PICK_BP': if boost_tween and boost_tween.is_valid(): boost_tween.stop()
-
해결됨오브젝트 - 기초편
강의 자료 관련 질문입니다! (2-4. 절차에서 객체로)
영호님 안녕하세요 😊 이번에는 2-4강을 듣던 도중 강의 자료와 관련된 질문을 드려요 Q. DiscountCondition을 책임지는 로직을 DiscountPolicy로 이동할 때,DiscountPolicy 클래스에 있는 findDiscountCondition()메서드의 접근 제어자가 private으로 되어있는 부분은 public으로 변경하고ReservationService 클래스의 reserveScreening() 메서드에서 policy.findDiscountCondition(screening, conditions);으로 생각하면 될까요?! 2-4 강의자료 page 10 (강의 02:29) 2-4 강의자료 page 11 (강의 02:42)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================package method.ex; import java.util.Scanner; public class MethodEx4 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int balance = 0; while (true) { System.out.println("---------------------------------"); System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료"); System.out.println("---------------------------------"); int userChoice = scan.nextInt(); System.out.println( "선택: "+ userChoice); if (userChoice == 1) { System.out.print("입금액을 입력하세요: "); int depositAmount = scan.nextInt(); balance = deposit(balance, depositAmount); } else if (userChoice == 2) { System.out.print("출금액을 입력하세요: "); int withdrawAmount = scan.nextInt(); balance = withdraw(balance, withdrawAmount); } else if (userChoice == 3) { System.out.println("현재 잔액: " + balance); } else { System.out.println("시스템을 종료합니다."); break; } } } public static int deposit(int balance, int depositAmount) { balance += depositAmount; System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance + "원"); return balance; } public static int withdraw(int balance, int withdrawAmount) { if (balance >= withdrawAmount) { balance -= withdrawAmount; System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다."); } return balance; } }
-
해결됨오브젝트 - 기초편
도메인 관련 질문이 있습니다!
영호님 안녕하세요! 강의를 보다가 궁금한 부분이 생겨 질문 드려요~Q1. 현재 구조에서 "영화 관람료"라는 객체를 추가하여 상영 객체가 의존하는 방식도 괜찮을까요?Q2. 추가적으로 위의 방식이 나쁘지 않은 방식이라면, 할인 정책을 영화가 아닌 상영과 협력하도록 해도 괜찮을까요?질문들이 강의에서 가르쳐주시려는 포인트에서 벗어나는 질문이지만,,, 현실과 조금 더 밀접하게 연결지어 생각을 하다보니 이런 방식을 생각해보게 되었습니다
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
강의 복습하면서 생긴 질문
태현님 안녕하세요! 해당 강의를 듣던 중 의문점이 있어서 질문을 드릴려고 합니다.public class Person { private final String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } // getter, setter 생략... }위와 같은 예제 코드가 있다고 하면 위와 같은 코드를 코틀린으로 변경하면 강의에서는 아래와 같다고 하셨습니다. class Person( val name: String, val age: Int, )이러면 자동으로 getter/setter를 자동으로 만들어주신다고 하셨는데요. 저는 이것이 자동으로 만들어주는게 아니라 당연하다고 생각합니다. 왜냐하면 프로퍼티 접근 제어자가 public이니까요!자바도 public으로 변경하면 코틀린처럼 필드에 접근해서 사용이 가능하다고 생각이 드는데요. 이런 케이스에 대해서 태현님의 의견을 좀 더 듣고 싶습니다. 또한, 당연히 코틀린에서는 getter를 호출하겠지만 필드 자체를 private으로 두지 않으면 객체지향 원칙중에 하나로 캡슐화가 좋지 못하다는 판단이 들더라구요! 또한 코틀린에서는 접근제어자를 private으로 두면 당현한 이야기지만 강의에서 설명주신 것처럼 접근이 안되서 강제 getter/setter를 만들어야 하는데 이것에 대해도 듣고 싶습니다. 다음 질문으로는 생성자 관련 질문입니다.자바는 아래처럼 생성자를 여러개 만들 수 있습니다.public class Person { private String name; private int age; public Person(String name) { this.name = name; } public Person(String name, int age) { this.name = name; this.age = age; } // getter, setter 생략... }논리적으로 도메인 흐름상 하나의 파라미터만 있는 생성자는 사용되지를 않겠지만 이런 케이스에서 코틀린은 어떻게 처리가 가능할까요? 코틀린에서는 설명해주시기로 부생성자로 만들지만 부생성자는 주생성자를 호출해야 하는 꼴로 가야한다고 답변을 주셔서요! 이에 대해 궁금합니다!