묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
OCP, DIP과 @Qualifier 어노테이션에 대해서 질문합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 좋은 강의 재미있게 잘 듣고 있습니다. 특별히 오류가 발생한 것은 아니고 강의를 수강하다가 한 가지 궁금한 점이 생겨 질문 남기게 되었습니다.강의 앞 부분에서 OCP, DIP 같은 객체 지향 설계 원칙에 기반해서 DiscountPolicy 같은 것들은 인터페이스를 두고 실제 구현 객체를 구현하고, 그 구현 객체를 빈 객체로 등록하여 의존성을 주입 받으면서 코드를 작성해왔는데, 결국 @Qualifier 어노테이션을 통해 2개 이상의 구현 객체 중 한 가지를 지정하게 되면 인터페이스에 의존하는 것이 아닌 실제 구현 객체에 의존하게 되면서 OCP, DIP 같은 원칙에 위반되는 것이 아닌가? 이런 궁금증이 생겨서 질문합니다!
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
멀티스레드
람다와 스트림이 순수 함수를 강제하지 않는데멀티스레드 환경에 안전하다는 게 어떻게 안전한건지 궁금합니다.
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
성능 오버헤드
런타임에 객체의 타입을 확인하는 과정에서의성능 오버헤드는 어느정도?? 라고 생각해야되나요신경을 써야되는 수준인지 궁금합니다.
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
volatile에 대해 질문 있습니다.
volatile 관련해서 자료를 보다 보니, 일부 자료에서는“CPU 캐시를 우회하는 것이 아니라 happens-before 관계와 메모리 배리어를 통해 가시성과 재정렬 제한을 보장한다”고 설명하더라고요.골드 답변의 내용과 정반대되는 내용이라 혼란스러워서 어떻게 이해하면 좋을지 질문드립니다.
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
Mark and Sweep
Mark and Sweep 알고리즘을 통해 참조가 되고 있는 객체만 Survivor 0 또는Survivor 1 Generation 으로 옮깁니다. 라고 하였는데Mark and Sweep 이 아닌 Copying아닌가요?
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
GC 알고리즘
Java에서 Mark and Sweep 말고도 다른 알고리즘을 조합해서 사용한다고 하는데요.이렇게 Mark and Sweep만 키워드로 가져가도 괜찮을까요??
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
용어 질문
GC Root가 아닌 Root Space라는 용어를 더 많이 사용하나요?
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
호출횟수 질문입니다.
메서드 호출 횟수가 약2,000회 / 약15,000회로 적어주셨는데 이 횟수는 버전마다 크게 차이가 없는걸까요? 이렇게 약 2천 약 1만5천 이라고 확정지어 알고 있어도 되는건지 궁금합니다.
-
해결됨채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편
실행과정 질문입니다.
첫째와 둘째에서프로그램 실행은 .java 파일이 컴파일러에 의해 .class로 변환 된 후에 되어야 하는게 아닌가요? 첫째에서 프로그램이 실행되면~~둘째에서 컴파일러 변환~~ 이라고 나와서 컴파일보다 프로그램 실행이 먼저라는 느낌이 드네요.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
UserDataManager 클래스 hasSaveError 처리
public void SaveUserData() { bool hasSaveError = false; for (int i = 0; i < UserDataList.Count; i++) { bool isSaveSuccess = UserDataList[i].SaveData(); if(!isSaveSuccess) { hasSaveError = true; } } if(!hasSaveError) { ExistsSavedData = true; PlayerPrefs.SetInt("ExistsSavedData", 1); PlayerPrefs.Save(); } }여기로직에서 hasSaveError가 실패로 발생하면 개발자 입장에서는 어떻게 버그를 알 수 있을까요?그리고 개발자는 어떻게 대처를 해야 될까요??
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
제공해주신 자료에 스크립트들이 빠져있습니다
Scripts폴더에 InGame폴더가 빈 폴더입니다 확인부탁드립니다
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
싱글턴패턴
Init 함수에서 m_Instance가 null이 아니면 왜 gameobject를 Destroy하나요? OnDestroy 함수 호출되면 m_Instance 을 null로 만드는데 그럼 문제가 되지않은 객체도 m_Instance가 null이니 사용못하는거 아닌가요?using UnityEngine; public class SingletonBehaviour<T> : MonoBehaviour where T : SingletonBehaviour<T> { //씬 전환 시 삭제할지 여부 protected bool m_IsDestroyOnLoad = false; //이 클래스의 스태틱 인스턴스 변수 protected static T m_Instance; public static T Instance { get { return m_Instance; } } private void Awake() { Init(); } protected virtual void Init() { if(m_Instance == null) { m_Instance = (T)this; if(!m_IsDestroyOnLoad) { DontDestroyOnLoad(this); } } else { Destroy(gameObject); } } //삭제 시 실행되는 함수 protected virtual void OnDestroy() { Dispose(); } //삭제 시 추가로 처리해 주어야할 작업을 여기서 처리 protected virtual void Dispose() { m_Instance = null; } }
-
해결됨C++로 만드는 게임 엔진 프레임워크 (소코반과 슈팅 게임으로 배우는 엔진 구조)
Singleton 관련 질문입니다.
안녕하세요. 먼저는 기억하기 어려울 수도 있는 부분을 잘 정리하시고 전달해주셔서 감사합니다. 명쾌한 설명과 구조 정리 덕분에 명쾌하게 이해할 수 있는 것 같습니다. 구조와 테스트 면에서 제가 잘 몰라서 궁금한 부분에 대해 여쭤보고 싶습니다.Singleton 구현을 보다가 문득 생각이 드는 부분이 있었습니다.GameEngine을 만들 때 생성자를 public으로 만드셨는데 이 부분에서API를 가져다 쓰는 입장을 생각하면 생성자를 private으로 만들고 Get만 공개하는 것이 더 안전하지 않았을까 하는 생각이 들었습니다. 두 번째로는 이런 전역 객체는 어떻게 테스트 하는가 입니다.테스트도 마땅히 들어가야 할 것으로 알고 있는데 이 부분은 뒤에 나오겠지요?
-
미해결스프링 핵심 원리 - 기본편
코드 자료
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 자바 코드 자료는 따로없을까요?
-
미해결김영한의 실전 자바 - 기본편
질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]수업을듣다가 헷갈리는부분이 있습니다.참조형, 객체지향 과정 수업을 듣고나서부터 void를 써야할지 return값을받는것이 좋을지 헷갈립니다.풀이과정을 보면서 따라해보고 다시 생각해보는데요이러한 생각이 배우는과정이라고 생각해도되는건가요?아니면 제대로 판단이 될정도로 공부하고 넘어가야되나요?
-
미해결김영한의 실전 자바 - 기본편
1번 문제 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이런식으로 풀어봤는데요 객체지향적으로 만들어진건지 확인부탁드립니다!
-
미해결김영한의 실전 자바 - 기본편
음악플레이어 문제 중 코드질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]음악 플레이어 끄기 코드중에isOn = false; 이거는 왜쓰는지 잘이해가안돼서요어차피 사용되지않아서 System.out.println("음악 플레이어를 종료합니다."); 만 으로도 결과가 같은데써야하는 이유가있나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제와 풀이4 문제점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]현재 숫자로 입력 옵션을 처리하는 것은 문제가 있습니다. 만일, 실수로 문자를 입력 할 경우 에러가 발생하여 팅겨버리게 됩니다. 이것은 버그라고 판단 될 수 있습니다. 또한, "올바른 옵션을 선택해 주세요"를 처리하지 못하게 됩니다. 따라서 문자로 처리해야 아무런 문제가 없이 정상적으로 해당 프로그램이 작동합니다. 이점을 참고하여 주세요.package scanner.ex4; import java.util.Scanner; public class ScannerEx2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int totalCost = 0; while (true){ System.out.print("1: 상품 입력, 2: 결재, 3: 프로그램 종료 : "); String option = input.nextLine(); if(option.equals("1")){ System.out.print("상품명을 입력하세요 : "); String name = input.nextLine(); System.out.print("상품의 가격을 입력하세요 : "); int price = input.nextInt(); System.out.print("구매 수량을 입력하세요 : "); int count = input.nextInt(); input.nextLine(); totalCost += price count; System.out.println("상품명:" + name + ", " + "가격:" + price + "원, " + "수량:" + count + ", " + "소계:" + (price count) + "원"); System.out.println("=================================================="); } else if (option.equals("2")) { System.out.println("총 비용 : " + totalCost + "원"); totalCost = 0; } else if (option.equals("3")) { System.out.println("프로그램을 종료합니다."); break; } else { System.out.println("올바른 옵션을 선택해 주세요."); } } } }
-
미해결김영한의 실전 자바 - 중급 1편
문제와 풀이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.문제를 풀긴 풀었는데 이런 방법으로 해도 같은 의도로 했다고 볼 수 있나요? ImmutableMyDatepackage lang.immutable.test; public class ImmutableMyDate { private final int year; private final int month; private final int day; public ImmutableMyDate(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public int getMonth() { return month; } public int getDay() { return day; } @Override public String toString() { return year + "-" + month + "-" + day; } } ImmutableMyDateMainpackage lang.immutable.test; public class ImmutableMyDateMain { static void main(String[] args) { ImmutableMyDate date1 = new ImmutableMyDate(2024,1,1); ImmutableMyDate date2 = date1; System.out.println("date1 = " + date1); System.out.println("date2 = " + date2); System.out.println("date1 -> 2025"); date1 = new ImmutableMyDate(2025,1,1); System.out.println("date1 = " +date1); System.out.println("date2 = " +date2); } }
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제풀이 시간마다 방향성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]입문단원 듣는 중입니다. 스캐너,배열 넘어가면서 부터 문제와 예제시간에 항상 먼저 주석으로 구조를 적고나서 코드를 입력하려고 하는데 구상해놨던 구조를 막상 코드로 타이핑 해보려고하니까 막힙니다. 머리가 안좋은건지.. 이게 정상인건지 ㅜㅜ 어떤식으로 문제를 해결하면좋을까요. 스캐너 이후로 혼자 문제를 완벽하게 풀어본적이 없네요. 그냥 단순히 강의 영상처럼 해보고 막히면 따라입력해보고 다지우고 입력해보고 넘어가는게 최선일까요?