[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요, 접근제어자 관련 질문드립니다. 1) AccessData와 AccessInnerMain 내용에서, 외부인 AccessInnerMain에서 AccessData의 innerAccess()가 호출 될 수 있는 것은 public이기 때문입니다. 내부 호출인 inneerAccess()의 내용이 표시될 수 있는 것은 innerAccess()의 필드가 private int privateField라 하여도 public이기 때문에 가능한 것인가요? 또한 강의 자료 중 , innerAccess()메서드는 자신의 private 필드와 메서드에 모두 접근 할 수 있다고 되어 있는데, 여기서 private 필드와 메서드가 무엇을 의미하는 것인지 정확히 모르겠습니다. private int privateField와 privateMethod를 의미하는 것일까요? 아니면 innerAccess()메서드는 자신의 필드가 없고 지역변수가 있는 것인가요? 추가적으로, 아래 코드의 경우, public void innerAccess (){ System. out .println( "내부 호출" ) ; publicField = 100 ; defaultField = 200 ; privateField = 300 ; publicMethod() ; defaultMethod() ; privateMethod() ; } privateField, publicField나 defaultField를 innerAccess의 지역변수라 말해야 할지, AccessData 클래스의 필드라 할지 잘 모르겠습니다. 2) AccessOuterMain에서 import access.a.AccessData;를 해주어도 defaultField,defaultMethod나 privateField,privateMethod가 실행이 안되는 것은 private, default 접근 제어자 그 자체의 정의에 의해서 안되는 것인가요? 이 사례에서 import는 AccessData클래스와 access.a 패키지에 접근하게 해주지만, 관련 클래스 및 패키지의 필드와 메서드가 private이나 default로 되어 있는 이상 접근하지 못하는 것으로 이해하였는데, 맞는지 확인 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. private static class NetworkMessage {...} 이 정적 중첩 클래스에서 static 을 제거하면 private class NetworkMessage {...} 내부 클래스가 되는건가요? 근데 뒤에 강의를 보면 내부 클래스는 아닌거 같은데, 정적이 아닌 그냥 중첩 클래스인 건가요?
[오타 제보 내용] 3. 컬렉션 프레임워크 - ArrayList 교안 pdf 직접 구현하는 배열 리스트2 - 동적 배열 배열의 크기를 초과할 때 (5) 이렇게 증가된 배열에 데이터를 추가하면 된다. 물론 데이터가 추가되었으므로 size 도 하나 증가시킨다. 기존 배열( x001 )은 더는 참조하는 곳이 없으므로 GC의 대상이 된다. 그림에서는 x100으로 나와있는데, 교안에는 기존 배열의 주소를 x001로 표시하고 있습니다. 기존 배열의 주소값 확인 부탁드립니다. 직접 구현하는 배열 리스트3 - 기능 추가 주제 내용 맨 첫 부분에 나오는 add(Index, 데이터) 와 remove(Index) 의 파라미터가 Index 라고 I가 대문자로 나와 있습니다. i(소문자) 확인 부탁드립니다. 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예) [질문 내용] 안녕하세요. 저는 지금 강의를 보고 있는 비전공자 학생입니다. 다름이 아니라 강의 시간 기준 약 8분대에 println("a = " + a + ", b = " + b)라는 코드가 있습니다. 이 때 +a+가 의미하는 것이 무엇인지 또 " " 안에 ,를 넣고 b를 넣었는지에 대해 물어보고 싶습니다. 감사합니다 .
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 수동으로 빈을 등록할 때 AppConfig 클래스에 붙은 @Configuration이 빈의 싱글톤을 보장한다면, 컴포넌트 스캔으로 빈을 등록할 때 AutoAppConfig에 붙은 @Configuration은 AutoApppConfig 클래스를 스캔 범위로 포함시키는 것 외에 무슨 역할을 하나요?
안녕하세요 우빈님! 이 강의 오픈 소식을 볼려고 6월 내내 인프런 알림을 얼마나 눌렀는지 아시나요? ㅠㅠㅋㅋㅋ 어제 오픈해주시자마자 열심히 듣는 중입니다! 좋은 강의 감사드립니다 ㅎㅎ 질문 제목처럼 setter 와 관련한 질문이 있습니다. 실무에서 코틀린을 사용하신다고 하셨는데, var 로 프로퍼티를 만들게 되면 외부에서 접근해서 setter 처럼 바로 값을 변경할 수 있는게 문제가 되지 않을까 늘 고민이 많이 됐습니다. 접근 제어자를 private 으로 만들어주고 해당 프로퍼티의 값을 업데이트해주는 내부 메서드를 만드는 식으로 해야되나 이런 고민도 해봤구요. 아니면 팀원들과 잘 약속해서 써야하나? 이런 고민도 해봤습니다. (물론 저는 지금 취준생이지만요 ㅎㅎ) getter 도 처음에는 자제하는게 좋다고 하셨는데, 이러면 val 도 사용을 자제해야되는 것일까요..? var, val 둘 다 되게 편하고 좋은 거 같은데 이런 걸 아예 사용 안 하는 것은 코틀린을 쓰는 의미가 크게 반감되는 거 같기도 해서, 뭔가 다른 더 좋은 방법이 있을 것 같기도 합니다. 우빈님 같은 경우에는 이런 문제를 어떻게 해결하시는 지 궁금합니다! 감사합니다.
[질문 내용] 다형성 : 하나의 타입으로 여러개의 객체를 다룰 수 있는 것 OCP : 변경에는 닫혀있고, 확장엔 열려있는것 따라서 클라이언트 기존의 코드는 변경하지 않고 확장을 통해 기능을 추가하고 변경할 수 있다 DIP : 클라이언트와 구현체는 추상화에 의존해야된다는 것 따라서 클라이언트가 구현 객체에 의존하는 것이 아닌 클라이언트와 구현객체 사이에 인터페이스를 두고 클라이언트와 구현객체가 인터페이스에 의존하여 구현객체를 변경해도 클라이언트에 영향이 없음을 의미한다 전 아무리 생각해도 다형성, OCP, DIP 이 세가지가 결국엔 추상화에 의존해서 클라이언트의 코드 변경없이 기능을 확장시킨다를 의미하고 있고, 다형성, OCP, DIP 이 세가지가 말만다르지 다 똑같아 보이는데 ,, 명확한 차이점이 있을까요? 그리고 예를들어 OCP를 위반해도 DIP는 지켜지는 그런 상황도 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 자료에는 따로 완성된 코드를 볼 수 있는 자료가 없던데 제공되지 않는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 바로 전에 AnonymousOuter 참고해가며 이렇게 해봤는데 출력 결과는 동일하게 나오는데 혹시 잘못된 부분있거나 부족한 부분있으면 조언 부탁드립니다. package nested.anonymous.ex; import java.util.Random; public class Ex1Main { public void hello(String str) { System.out.println("프로그램 시작"); Process process = new Process() { @Override public void run() { if (str.equals("DICE")) { // 코드 조각 시작 int randomValue = new Random().nextInt(6) + 1; System.out.println("주사위 = " + randomValue); // 코드 조각 종료 } else if (str.equals("SUM")) { // 코드 조각 시작 for (int i = 0; i < 3; i++) { System.out.println("i = " + i); } // 코드 조각 종료 } } }; process.run(); System.out.println("프로그램 종료"); } public static void main(String[] args) { Ex1Main ex1Main = new Ex1Main(); ex1Main.hello("DICE"); ex1Main.hello("SUM"); } }
강사님 안녕하세요. 우선, 좋은 강의 감사합니다. 19강.코틀린의 이모저모 학습 중 이해되지 않는 부분이 있어서 질문드립니다. takeIf 을 설명하실 때 getNumberOrNull 함수와 getNumberOrNullV2 함수가 동일한 코드라고 설명해주셨는데요. 강의에서 takeIf 확장 함수는 주어진 조건을 만족하면 그 값을, 만족하지 않는다면 null 을 반환한다고 설명해주셨는데, 그러면 getNumberOrNull 함수의 반환 값이 반대로 된 것이 아닌가요? 오히려 getNumberOrNull 함수는 takeUnless 를 사용하는 getNumberOrNullV3 함수와 동일하다고 생각됩니다. 저는 아래와 같이 이해했는데.. 혹시 제가 잘못 이해한건지, 아니면 강의자료에 오타가 있으신건지 궁금합니다~~ // takeIf 구현 fun getNumberOrNull(): Int? { return if (number <= 0) number // 해당 조건이 맞으면 해당 값을 반환 else null // 아니면 Null을 반환 }
안녕하십니까 깊은 내용 쉽게 가르쳐 주셔서 정말 감사합니다. 질문이 있습니다. public static void main(String[] args) { OuterClassV2 outerClassV2 = new OuterClassV2(); Printer innerPrinter = outerClassV2.process(1); innerPrinter.print(); Field[] fields = innerPrinter.getClass().getDeclaredFields(); System.out.println(fields.length); for (Field field: fields) { System.out.println(field.getName()); } } 위 메서드 실행시에 public Printer process(final int paramVal) { int localVal = 2; // 여기 class InnerPrinter implements Printer{ private final int val = 3; @Override public void print() { System.out.println("val = " + val); System.out.println("localVal = " + localVal); System.out.println("paramVal = " + paramVal); System.out.println("outerClassVal = " + outerClassVal); } } return new InnerPrinter(); } 위와 같이 int localVal = 2 처럼 암묵적 final을 이용하면 지역 클래스에 캡쳐되는게 확인 됩니다 하지만 final int localVal = 2 처럼 명시적으로 하면 지역클래스가 캡쳐되지 못하는데 이유가 무엇일까요? 크게 중요한 문제는 아니지만 궁금하였습니다. 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 8분 10 초에서 AutoAppConfigTest 에서 basicSacan Test 할 때 왜 OrderServiceImpl 생성자가 호출이 되는건가요..? ㅠㅠ
orderApp order 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. order 부분 오류가 났는데 toString연결 부분인데 왜 오류가 난건지 모르겠어요..
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] AutoAppConfig와 같은 설정 클래스를 만들지 않아도 @SpringBootApplication에 @ComponentScan이 있기 때문에, CoreApplication 클래스가 위치한 hello.core가 스캔 시작 범위가 되고, 하위의 모든 패키지에 존재하는 @Component를 인식하여 빈으로 등록하는 건가요? AutoAppConfig와 같은 설정 클래스를 만들지 않아도 @SpringBootApplication의 @ComponentScan에 의해 빈을 등록하지만, AutoAppConfig를 만드는 이유는, ComponentScan 범위를 지정하고, Filter를 사용하기 위함인가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. core코드 전체: https://drive.google.com/drive/folders/1AI5Fsayi4Exge6nyVABAneWwkaY10HHs?usp=drive_link 분명 잘 따라한 것 같은데 log-demo페이지에 접속했을 때 404 에러가 뜹니다. 스프링 3버전을 사용해서 javax가 아닌 jakarta를 사용하고 있는데, 이부분이 문제가 될 수도 있나요?