묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
섹션3. 11 회원객체 다이어그램
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원 객체 다이어그램에 클라이언트 -> 회원서비스 구현체 -> 회원저장소 이렇게 되어있는데 클라이언트는 구현체는 인터페이스에 의존해야하잖아요?근데 왜 클래스 다이어그램에도 그렇고 객체 다이어그램에도그렇고 클라리언트 -> 회원서비스 구현체 -> 회원 저장소 이렇게 되어있는건가요???
-
미해결스프링 핵심 원리 - 기본편
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); } }