inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

9장 상속 문제와 풀이 질문

미해결

김영한의 실전 자바 - 기본편

@Override public void print() { super.print(); System.out.println("- 저자: " + author + ", isbn:" + isbn); } 다름이 아니고 @Override를 하는 이유가 부모에서 사용하는 메서드를 자식에서 재사용을 위해서 사용하신다고 했는데 궁금한 게 강의 내용 중에 객체를 생성하고 메서드를 사용할 경우 먼저 자식을 보고 그다음에 없으면 부모를 보신다고 하셨는데 그러면 이미 자식에는 print가 있으니까 저렇게 super.print();를 붙이면 굳이 @Override를 안 붙여도 상관없지 않나요? 관례가 있어서 많은 개발자분들께서 붙인다고 하셨는데 저 경우에는 재사용이 아니고 바로 자식 쪽에서 메서드가 있으니까 굳이 부모까지는 갈 필요가 없지 않나요??

  • java
  • 객체지향
탕면이 댓글 1 좋아요 0 조회수 93

BaseUI, UIManager

해결됨

유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

BaseUI, UIManager에 처리에 대한 구분이 제가 명확하게 이해가 잘안되고 헷갈려 질문드립니다. 1. BaseUI에서 처리하는 함수 및 기능에 대한 기준이 무엇인가? 2.UIManager에서 처리하는 함수 및 기능에 대한 기준이 무엇인가? OpenUI를 할때는 SetParent를 BaeUI안의 Init함수에서 하고 CloseUI를 할때는SetParent UIManager에서 하는데 어떤 기준이나 지향점으로 하신건가 궁금합니다. CloseUI에서도 부모의 설정을 매니저에서 해줬으니 OpenUI도 매니저에서 설정해주면 통일성이 있지 않을까? 그런데 강사님은 어떤기준으로 하셨을까 궁금합니다. var siblingIndex = UICanvasTrs.childCount; ui.Init(UICanvasTrs); ui.transform.SetParent(UICanvasTrs); // 이런식? ui.transform.SetSiblingIndex(siblingIndex); ui.gameObject.SetActive(true); ui.SetInfo(uiData); ui.ShowUI(); 마지막으로 코드가 이해가 잘 안되는게 BaseUI에서의 CloseUI함수에서는 UIManager.Instance.CloseUI(this); 호출하는데 BaseUI에서의 ShowUI는 매지저 호출에 처리가 없어서 이것도한 2개가 달라 많이 헷갈리네요. ㅠ 코드가 작성되는 방식은 여러가지겠지만 강사님의 코드의 작성의 의도와 목적을 잘 이해하고 싶어서 질문드립니다. ~

  • C#
  • unity
  • 객체지향
  • game-programming
CodeKimbap 댓글 3 좋아요 0 조회수 138

프로젝트 완성본 문의

해결됨

【2025年版】Unity×C#入門|2Dタワーディフェンスゲーム開発|クラッシュ・ロワイヤル風バトルシステムの作り方

안녕하세요 프로젝트 완성본 파일은 받는 곳이 어디있나요? 소스코드만 올라와 있길래 문의드립니다. 감사합니다.

  • C#
  • unity
  • 객체지향
  • 콘텐츠-제작
  • game-programming
qiulong Xin 댓글 2 좋아요 0 조회수 107

섹션 2 퀴즈 9번

미해결

김영한의 실전 자바 - 중급 1편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 9번에 ==연산자와 equals 메서스 둘다 물리적 동일성 이라고 해야 맞는거아닌가요? 오버라이딩 되지 않은 기본 equals 는 ==으로 비교하고 논리적 동등성은 String 변수.equals 한정 아닌가요??

  • java
  • 객체지향
wxd8339 댓글 2 좋아요 0 조회수 82

질문 디스코드 관련

해결됨

일정 관리 앱 만들기 챌린지 - 3기

오티 강좌에 질문 디스코드가 있다고 하셨는데 링크 받을 수 있을까요??

  • 객체지향
  • 알고리즘
  • data-structure
LIMC 댓글 1 좋아요 0 조회수 82

강의 자료에 사소한 오타가 있습니다.

미해결

김영한의 실전 자바 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] '2. 기본형과 참조형.pdf' 파일 13페이지에 사소한 오타가 있습니다.

  • java
  • 객체지향
i2mi 댓글 2 좋아요 0 조회수 111

다형성 개념 문의

미해결

30분안에 끝내는 객체지향의 본질

안녕하세요, 요즘 이직 준비하면서 CS 인사이드나 좀 얻고자 해당 강의를 무료로 수강 중인데요. 우선 영상 만드시는데 수고하신 것 같습니다만 이해가 안되는 부분들(다형성)이 있어서 문의드립니다. 2강 '객체지향은 어떻게 동작하는가?' 6:08 해당 주제명과 코드는 추상화 라고 해야 적합할 듯한데요. OCP는 추상화에 관련 있기도 하고요 6:26 다형성의 핵심은 부모타입으로 다루는 것(구현이 아닌 추상에 의존한다) 이 말씀이 무슨 말씀인지 이해가 잘 안되는데, 공부하셨던 자료 출처가 있을까요? 결론적으로 문의를 요약하면 다형성 개념을 오버로딩/오버라이딩 개념보단 추상화 개념으로 보는 것 같은 데 다형성과 추상화과 어떤 관련이 있는 지 궁금하며 공부하신 자료 출처를 남겨 놔주시면 다른 이들도 함께 공부하는 기회가 될 것 같습니다 :))

  • 객체지향
  • 면접
  • 소프트웨어-설계
  • solid
  • 소프트웨어-공학
jlim 댓글 3 좋아요 1 조회수 134

compareTo를 사용하는 이유가 뭔가요?

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

String은 equals 함수를 기본적으로 제공하는데 compareTo를 이용하는 이유가 궁금합니다. 강의에서 말씀하신 동등성을 표현하려면 equals를 사용하는게 오히려 맞는거 아닐까요??

  • java
  • 객체지향
  • jvm
  • data-structure
Troy 댓글 2 좋아요 0 조회수 116

불변성을 지키며 수정 삭제를 할때도 Map이 유리한가요?

해결됨

프론트엔드 마스터클래스

안녕하세요 31. 히든클래스와 성능저하모드 강의를 듣고 질문남깁니다. 해당 강의를 react에 적용해보고 있습니다. 기존에는 useState를 사용해서 상태관리를할때 object와 Map은 수정 삭제시 대부분의 경우 불변성을 지키며 setState를 하고 있었습니다. 매번 Map과 object를 재생성할때 Map이 좀더 메모리를 많이 차지한다고 들어서 비번한 수정/삭제가 일어날때는 Map대신 object를 사용해서 상태관리를 하고 있었는데 Map 강의듣고나니 일반적인 수정삭제일때는 Map이 좋은걸로 이해했는데 불변성을 지켜야할 때는 기존에 제가 가지고 있던 생각이 맞는지 의문이 생겼습니다. 불변성을 반드시 지켜야하는건 아니지만 그래도 지켜야 하다 가정하고 수정삭제가 1초에 1번정도 난다고 해도 Map이 유리한가요?

  • javascript
  • react
  • 함수형-프로그래밍
  • 객체지향
  • next.js
grs0412 댓글 1 좋아요 0 조회수 141

RequestHandler 버전 간 process() 파라미터 차이 질문

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 강의 자료의 버전 별 파라미터 차이에 관해 질문드립니다. HttpRequestHandlerV2는 process()에 Socket 파라미터를 받지 않고 멤버 변수를 쓰는데, HttpServerV1과 V3부터 최종 버전까지는 process()에 Socket을 받는 것으로 강의 자료에 나와 있습니다. 어떤 스타일을 따르는 게 맞을까요?

  • java
  • 네트워크
  • 객체지향
sjahn 댓글 2 좋아요 0 조회수 145

자료 한번에 다운로드 받을 수 있게 좀 해주세요.

해결됨

오브젝트 - 기초편

자료 한번에 다운로드 받을 수 있도록 압축해서 하나로 묶어주세요. 일일이 다운받는게 번거롭네요.

  • 객체지향
  • 소프트웨어-설계
aanicall 댓글 2 좋아요 1 조회수 117

강의노트 내용이 이해가 되지 않아서 문의드립니다.

미해결

김영한의 실전 자바 - 중급 1편

[질문 내용] 여기에 질문 내용을 남겨주세요. b의 주소값을 서울에서 부산으로 변경할 의도라는게 이해가 되지 않습니다. b의 주소값은 Address 인스턴스를 가르키고 있는데 음.. b의 주소에 저장되어 있는 값을 부산으로 변경하려는 의미인건지 궁금합니다.

  • java
  • 객체지향
조성경 댓글 1 좋아요 0 조회수 116

피라미드 문제 풀이

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

피라미드 문제 풀이를 참고의 print() 때문에 뭔가 이중반복문일것 같은데 도저히 생각이 안나서 String을 활용해서 풀었는데요, 어느 코드가 더 좋은 코드인지 코드 짤 때 판단이 어렵습니다 ㅠㅠ package loop.ex; public class LoopEx5 { public static void main(String[] args) { int rows = 50; int i = 1; String star = "*"; while (i <= rows) { System.out.println(star); star = star + "*"; i++; } } }

  • java
  • 객체지향
cndaks19 댓글 1 좋아요 0 조회수 140

30강 Map 자막이 이상합니다.

해결됨

프론트엔드 마스터클래스

4:16초 부터만 스크립트가 나옵니다.

  • javascript
  • react
  • 함수형-프로그래밍
  • 객체지향
  • next.js
ohh0203 댓글 1 좋아요 0 조회수 87

ScannerWhile3 예제 코드 질문

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] ScannerWhile3 예제 코드 문의 안녕하세요. 출력 결과는 똑같이 나오는데 강사님이 작성한 코드랑 제가 작성한 코드가 좀 다르더라구요.. 모든 정수의 합을 출력하는 부분의 코드가 서로 위치가 다른데 이 경우 제가 작성한 코드는 틀렸다고 볼 수 있을까요? [강사님의 코드] [제가 작성한 코드]

  • java
  • 객체지향
dbsdbs21 댓글 1 좋아요 0 조회수 122

짝수 출력 문제 질문

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 짝수 출력 문제 안녕하세요. 답은 동일하게 나오는데 저는 아래와 같이 풀어봤습니다.. 이렇게 풀면 정답이 안되는 건지 문의 드립니다. [WhileEx2.java] [ ForEx2.java ]

  • java
  • 객체지향
dbsdbs21 댓글 1 좋아요 0 조회수 112

tryMove(..) 메서드 ArrayIndexOutOfBoundsException 제보

해결됨

오브젝트 - 설계 원칙편

안녕하세요 3-2. 조합 메서드로 리팩터링하기 의 11분 08초에 예제 코드 보면서 리팩터링을 해보고 있는데 예외가 발생했습니다. java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6 moveNorth() 실행시 y가 -1이 입력되는데 else 부분에 y를 한번 더 더해주다보니 문제가 발생한것으로 보입니다. private void moveNorth() { tryMove(0, -1); } // before private void tryMove(int incX, int incY) { if(y + incY < 0 || y + incY >= height || x + incX >= width || x + incX < 0 || roomAt(x + incX, y + incY) == null) { showBlocked(); } else { this.x += incX; this.y += y + incY; // 💩 y = -1일때 -1 + (-1)이 됨 showRoom(); } } // after private void tryMove(int incX, int incY) { if(y + incY < 0 || y + incY >= height || x + incX >= width || x + incX < 0 || roomAt(x + incX, y + incY) == null) { showBlocked(); } else { this.x += incX; this.y += incY; // ✅ showRoom(); } }

  • 객체지향
  • 소프트웨어-테스트
  • 소프트웨어-설계
이진우 댓글 2 좋아요 1 조회수 121

[실습] MyString에 복사 생성자 추가

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

import java.lang.reflect.Field; class MyString { private byte[] sdata = null; MyString(MyString s) { this.sdata = s.sdata; } // 생성자 1: 문자열을 받을 때 MyString(String param) { this.setString(param); } // 생성자 2: 정수를 받을 때 MyString(int param) { setString(String.format("%d", param)); } // 데이터를 문자열로 반환 (null 체크 포함) public String getString() { if (sdata == null || sdata.length <= 0) { return "(null)"; } return new String(sdata); } // 데이터를 안전하게 복사해서 저장 (Deep Copy) public void setString(String param) { sdata = param.getBytes(); } } public class Main { public static void main(String[] args) throws Exception { MyString src = new MyString("Hello"); MyString dst = new MyString(src); Field field = MyString.class.getDeclaredField("sdata"); field.setAccessible(true); byte[] srcSdata = (byte[]) field.get(src); byte[] dstSdata = (byte[]) field.get(dst); System.out.println("src.sdata 주소: " + System.identityHashCode(srcSdata)); System.out.println("dst.sdata 주소: " + System.identityHashCode(dstSdata)); // 둘이 같은 숫자 → 같은 배열 가리킴 (얕은 복사 증명!) src.setString("world"); byte[] srcSdata2 = (byte[]) field.get(src); byte[] dstSdata2 = (byte[]) field.get(dst); System.out.println("--- setString 후 ---"); System.out.println("src.sdata 주소: " + System.identityHashCode(srcSdata2)); System.out.println("dst.sdata 주소: " + System.identityHashCode(dstSdata2)); // src는 새 주소, dst는 그대로 → 분리됨 확인! } } 원래 의도가 얕은 복사를 먼저 해봄으로서 사이드 이팩트 문제를 일으킨 다음, 깊은 복사를 시도해볼려고 했는데 위 코드를 실행해보시면 깊은 복사가 되는 것 처럼보이더군요. 그런데 알고보니, 의도대로 dst.sdata 배열의 주소값이 src.sdata 배열의 주소값으로 얕은 복사가 이뤄졌으며, getBytes() 함수 자체가 원래 String 객체의 데이터를 byte 배열로 새로 만들어서 해당 배열에 대한 주소값을 반환하는 함수다 보니, src.sdata 변수의 대상 인스턴스 주소 값이 새로운 바이트 배열에대한 주소값으로 바뀌어 버렸고, 기존 배열은 원래 gc에 의해 사라져야하는게 맞는데, dst.sdata에 src.sdata 배열의 주소값이 얕은 복사가 이뤄졌다보니, 기존 참조된 배열은 계속 참조되어 메모리 상에 남아있더라구요. 그렇다보니, src.sdata가 참조한 실질 배열 데이터는 dst.sdata에 얕은 복사해버리고, src.sdata 배열 본인은 새로운 배열 데이터로 갈아타다보니, 실질적으로는 src 객체의 문자열을 바뀌었다기 보단, 참조한 대상 자체가 바뀌다 보닌까 실질적으로는 처음 의도한 얕은 복사로 인한 사이트 이팩트 문제는 애초부터 발생하지 않는다 라는게 결론입니다. 따라서 주어진 실습 예제가 적절한지에 대해 한 번 고민해보았습니다. 혹시라도 제가 부족하거나 다르게 이해한 부분이 있을 시 지적해주시면 감사하겠습니다.

  • java
  • 객체지향
  • jvm
  • data-structure
sjn0125 댓글 2 좋아요 0 조회수 119

제네릭 타입 매개변수 제한과 관련한 문의입니다.

미해결

김영한의 실전 자바 - 중급 2편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 영한님, 안녕하세요. 강의를 들으며 부족하다고 느껴졌던 기본기를 덕분에 잘 습득하고 있습니다! 타입 매개변수 제한 강의를 듣고 나서 궁금한 점이 생겨 Q&A를 남기게 되었습니다. 제네릭을 도입하고 타입 매개변수를 제한함으로써, 1. 코드의 재사용성 증가 2. 타입 안정성 보장 위 두 가지의 강력한 장점을 가진다는 부분을 잘 이해했습니다. 다만, 클라이언트 코드에서 인스턴스를 생성하는 과정에 타입 매개변수를 아래와 같이 Animal로 지정하게 된다면 개발자의 실수가 발생할 수 있는 부분이 있다고 생각합니다. AnimalHospitalV3<Animal> animalHospital = new AnimalHospitalV3<>(); animalHospital.set(new Dog("dog", 100)); Dog biggerAnimal = (Dog) animalHospital.bigger(new Cat("cat", 100)); 위와 같은 코드는 다형성만을 사용하여 개션한 코드와 같이 Java 컴파일러가 잡아주지 못하고, 런타임 시점에 오류가 발생하게 됩니다. (Animal 클래스를 추상 클래스, interface로 선언해도 타입 인자로 지정하는 것을 막지 못합니다.) 이런 상황일 때, 개발자의 실수를 최대한 방지할 수 있는 방법이 어떤 것이 있을지 궁금합니다. 항상 좋은 강의 만들어주셔서 감사합니다. 덕분에 잘 배우며 기본기를 다져가고 있습니다!

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
서규환 댓글 3 좋아요 0 조회수 171

강의가 좀 버겁다 느껴질 때 학습방법 문의

미해결

김영한의 실전 자바 - 중급 2편

기본기 부족한 n년차 개발자 입니다. 입문, 기본, 중급1까지 완강했고, 현재 중급2 수강중입니다. (최종목표는 자바, 스프링, 데이터베이스 대부분의 강의를 로드맵 따라 익혀가는 것입니다.) 컬렉션 프레임워크(ArrayList) 부분부터 좀 버거운 느낌이 있는데, 강의를 어설프게 이해하며 따라가고 있는 것 같아 문의드립니다. (사실 잘 이해 못하고 있는 걸지도...) 우선 강의 듣는 자세는 다음과 같습니다. 하나하나 따라치며 강의를 듣기에는 오래 걸리고 하다가 지쳐서 중도포기 할 것 같아 강의를 쭉 돌려본다는 생각으로 학습하고 있습니다. (1배속) IDE에서 소스코드 열고 강의 들으면서 중간중간 눈으로 이해하며 넘어가고 있음 (부분적으로만 아조 조금씩 따라 치고 있음) 강의자료 설명 부분은 어느정도 이해가 가는데 코드 작성 부분에서는 조금 버겁게 느껴짐 즉, 과연 내가 이 코드들을 작성할 수 있을까, 다음 강의들을 잘 따라갈 수 있을까 걱정되는 부분이 있음 어떻게 해야 잘 습득해갈 수 있을까요? 강의는 더할 나위 없이 만족하고 있습니다

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
아기곰 댓글 4 좋아요 1 조회수 353

인기 태그

인프런 TOP Writers

주간 인기글