49,500원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨더 자바, 코드를 조작하는 다양한 방법
크리스마스 정주행 시작합니다!
기선님 좋은 강의 만들어 주셔서 항상 감사합니다!
- 미해결더 자바, 코드를 조작하는 다양한 방법
JIT 컴파일러와 인터프리터에 대한 질문..
안녕하세요 기선님, 질문 하나만 드리겠습니다 ㅠ.ㅠ 제가 이해하기로는, 또한 인터넷에서 찾아본 결과로는 자바는 JIT 컴파일러를 default로 사용한다고 하길래, JIT 컴파일러가 인터프리터 역할까지 한다고 생각을 하는데, 강의 내용에서는 (제가 잘못들은 것 일 수 있지만) JIT 컴파일러가 먼저 캐싱만 해두고, 그 이후에 인터프리터를 사용하는 것처럼 보이는데 어떤게 맞는건지 알수 있을까요?? 또한 기선님이 주신 참고자료에서 보았을 때, JIT 컴파일러가 최적화를 위해서 블록단위로 코드를 컴파일하여 최적화를 한다는 내용도있는데, 어떤 내용이 맞는건지 궁금합니다.
- 미해결더 자바, 코드를 조작하는 다양한 방법
인스턴스 관련해서 질문이 있습니다.
안녕하세요. 우선 매번 좋은 강의 올려주셔서 정말 감사합니다^^ 질문이 있는데 클래스 로딩이 끝나고 나서 heap 영역에 인스턴스 관련 정보가 들어가 있고 Class<Book> bookClass = Book.class 를 통해 인스턴스를 가져올 수 있다고 했는데 그러면 이 인스턴스는 new Book() 으로 생성된 인스턴스와는 다른 건가요? 실제 멤버변수의 값을 가져오기 위해서는 왜 new Book() 으로 인스턴스를 생성해야 하는지 궁금합니다. 그리고 Book.class 로 가져오는 인스턴스와 new Book() 으로 생성된 인스턴스가 다르다면 어떻게 다른지도 알 수 있을까요?
- 해결됨더 자바, 코드를 조작하는 다양한 방법
안녕하세요 바이트버디 관련해서 질문드립니다.
안녕하세요 바이트버디 관련해서 질문드립니다. 바이트버디 코드와 System.out.println(new Moja().pullOut()); 이 코드를 동시에 쓸 수 없다는게,, Masulsa를 실행하면 Masulsa.class, Moja.class로 컴파일되고 그 클래스 파일들이 로딩되고 실행되기 때문에, 그 이후에 바이트버디를 통해서 class 파일을 조작해도 이미 로딩된 클래스 정보 (메소드 영역에 있는) 를 보고 있기 때문에 적용이 안된다는 의미인거죠? 강의는 이전에 다 봤는데,, 혼자 좀 복습하다가 갑자기 좀 혼동이 되서 질문드립니다 ㅎㅎ
- 미해결더 자바, 코드를 조작하는 다양한 방법
활용
이런 리플렉션 API를 활용하면 어떤곳에 활용할 수 있을까요?
- 해결됨더 자바, 코드를 조작하는 다양한 방법
JaCoCo 웹페이지에 측정 결과가 반영이 안될 때
안녕하세요. 코드 커버리지 강의 보면서 JaCoCo 설치 과정을 그대로 따라했는데 무엇이 문제인지 JaCoCo의 index.html을 실행하면 코드 커버리지 측정 결과가 반영이 안됩니다. 테스트를 실행하고 빌드해도 아무런 에러도 없고, index.html 페이지에서는 테스트 실행이 0%이며 빨간색으로만 표시됩니다. ㅠㅠ 인텔리제이에 있는 코드커버리지 기능은 제대로 작동이 되는데 어디서부터 확인하면 좋을까요. ㅠㅠ 항상 좋은 강의 감사합니다.
- 미해결더 자바, 코드를 조작하는 다양한 방법
BookService 클래스 위치 - 테스트코드 관련
안녕하세요 기선님 ~ 재밌는 강의 감사합니다. bookRepository와 bookService를 왜 테스트코드 쪽에서 생성하는지 이유가 궁금하여 질문 드립니다. 강의 내용 중(4:41) BookRepository를 생성하여 반환하려다 소스코드는 테스트코드를 참조하지 못하여 리플렉션으로 인스턴스 생성하는 부분에서,저라면 편의를 위해 ContainerService에서 간단히 인스턴스를 반환하기 위해 BookService를 애초에 소스코드 쪽에 작성했을 것 같다는 생각이 드는데, 테스트 코드 쪽에 작성하신 이유는 단순 해당 코드의 목적이 테스트이기 때문인가요? 다른 이유가 있는지 궁금합니다. 감사합니다.
- 해결됨더 자바, 코드를 조작하는 다양한 방법
메서드 invoke 시 3 dot 인수(int ... ints) 타입설정 는 어떻게 처리하는지요?
안녕하세요 기선님!강의 도중에 웃으실때마다 저도 덩달아 웃게됩니다ㅎ미리 짜보고 애러나면 같은 애러를 같이 내어주셔서 그때그때 잡아주시거든요 ㅎㅎㅎ당연 의도하신거라 믿고 열심히 응용하고있어요^^그래서 저의 의문점은요..ㅎ "3 dot parameter method invoke" 문장으로구글링으로 로 찾아보긴 했지만 맘에드는 결과물이 없더라구요.. 다중인수 메서드를 invoke 할 경우 // Book 클래스 public int sum(int ... ints) { return Arrays.stream(ints).sum(); } // App.main() // 이부분에서 '잘못된 인자 개수 예외' 가 나더라구요.. bookClass.getDeclaredMethod("sum", int[].class); sum.invoke(book, 1, 2, 3, 4, 5 ) // 예외 핵심구문 Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments 그래서 메서드 파라미터가 3 dot 인수의 경우는 int[].class 가 아니고 어떻게 지정해야 할까요? 읽어주셔서 감사합니다.
- 미해결더 자바, 코드를 조작하는 다양한 방법
스트림 관련 질문
안녕하세요 자바8 강의를 듣다가 궁금한게 있어서 질문드립니다. list.forEach()와 list.stream().forEach()의 차이가 있나요? 결과값은 같은데 예제 코드를 따라하다가 저는 list.forEach()로 하고 있었는데 강의를 보니까 list.stream().forEach()를 사용하셔서요
- 미해결더 자바, 코드를 조작하는 다양한 방법
오타 발견하였습니다.
문서 5페이지의 바이크 코드로 되어있는데 확인 요청드려요~
- 해결됨더 자바, 코드를 조작하는 다양한 방법
오타수정 요청드립니다.
메모리 설명에서 메모스 영역 → 메소드 영역 으로 수정해주시면 감사하겠습니다! 강의 잘 듣고 있습니다. 감사합니다.
- 미해결더 자바, 코드를 조작하는 다양한 방법
에노테이션 프로세서 이용중 문의드립니다.
안녕하세요 좋은 강의 잘 들었습니다. 최근 애노테이션 프로세서를 이용해서 실습하는데 저는 메서드에 애노테이션을 붙여서 사용하는 연습을 했습니다. 해당 클래스의 클래스명을 받아오기 위해 '((Symbol.MethodSymbol) element).owner.name.toString()'로 클래스 명을 가져오는 것을 호출하려고 하는데 IDE상에서는 아무런 문제가 없는데 maven install 할 때 `package com.sun.tools.javac.code does not exist` 에러가 떠서 계속 빌드가 안되네요. 아 참고로 java8을 사용 중이고 adoptopenJDK를 사용중입니다. 분명히 tools.jar에 있는 패키지이고 분명 포함돼있는데 왜 빌드가 안되는지 모르겠습니다. 혹시 어떻게 해결하면 좋을까요?
- 미해결더 자바, 코드를 조작하는 다양한 방법
Junit test를 활용한 코드 커버리지를 측정하는데 테스트 하는 메서드 내용을 바꿀 수 있나요?
안녕하세요 최근 기존의 코드들에 대한 Test Code들을 작성하고 있습니다. 커버리지를 올려야 하는데 public void ff() { aaa a1 = new aaa(); bbb b1 = a1.working(); b1.working(); } 이런 식의 코드들이 존재합니다. 문제는 a1.working()이 exception처리되고 null을 return하여 b1.working이 동작하지 않는 상황입니다. 기존 코드를 건드리지 않고 테스트 코드에서 기존 코드를 동적으로 조작하여서 제가 만든 새로운 aaa(2)를 기존 aaa객체 대신 주입하여 커버리지를 올릴 수 있는 방법이 있나요??? 이 질문을 테스트 강의에 올려야 할지 여기에 올려야 할지 모르겠어서 여기에 질문 하나만 올립니다. 부탁드립니다
- 해결됨더 자바, 코드를 조작하는 다양한 방법
classloader를 실행하는 주체
classloader 시스템에서 일어나는 로딩 과정, 링크과정, 초기화 과정은 interpreter에 의해 수행되는 건가요? java 프로그램을 실행하게 되면 최초에 인터프리터가 바이트코드를 읽어 들이고 클래스로더시스템의 각 과정들을 수행하며 데이터들을 메모리 영역에 쌓아둔다고 보면 될까요?
- 미해결더 자바, 코드를 조작하는 다양한 방법
generated-source 참조 관련하여 질문드립니다.
query DSL 사용할 때, 컴파일시 generated-source/java에 엔티티에 대한 코드가 생성되는 것을 볼 수 있는데요.(ex. QMojaEntity) 이 경우에는 모듈에 별다른 설정 없이도 레퍼런스가 가능하던데, 이유가 무엇인지 아시나요?
- 미해결더 자바, 코드를 조작하는 다양한 방법
애노테이션 프로세서 강의 질문 관련입니다!
질문이 다소 엉뚱할 수 있고, 전달하고자 하는 의도를 잘 전달할지 의문입니다. 다름이 아니라, 애노테이션 프로세서 관련 강의를 해주실 때, 2개의 프로젝트를 만들어 한 쪽에 App.java 를 지우고 MagicAnnotationProcesser.java 만든 프로젝트, 그리고 앞에 말한 프로세서를 쓰는 클라이언트 총 2개의 프로젝트. 여기서 궁금한게, 어떻게 한 쪽에서 mvn clean install 을 했는데, 다른 한쪽에서 이를 pom.xml 에 선언해 바로 쓸 수 있는건가요? 다소 애노테이션프로세서 범위를 벗어나는 질문이긴 하지만, 어떻게 바로 import(?) 가 되는지 신기하더라구요. 또한, Client가 gradle을 사용할 경우에는 어떻게 import 해야되는지 궁금합니다! 감사합니다 : )
- 미해결더 자바, 코드를 조작하는 다양한 방법
jar생성시 문제
윈도우환경에서 pom.xml에 똑같은 의존성 추가하고 패키지 경로도 맞춰서 작성했습니다. maven-jar-plugin artifactId에 위내용을 넣었는데도, 콘솔창에서는 WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/C:/Users/사용자명/.m2/repository/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar) to field java.util.Properties.defaults WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 빨간 Warning 메시지와 함께, maven-war-plugin:2.2:war (default-war) @ MasulsaAgent가 실행되고 snapshot이 .war확장자로 생성되네요 ㅠㅠ 이걸로 ,VM옵션주면 class로드할 수 없다고 뜨네요.
- 미해결더 자바, 코드를 조작하는 다양한 방법
JVM Memory 메서드 영역과 metadata space 의 차이점
안녕하세요 새해복 많이 받으세요:) 더자바 완강 후 메모리구조에 대해 다시 스터디하고 있습니다. 그러던 중 java8 부터 바뀐 metadata space 에 대해 알게 되었는데요, 힙 영역과 분리되어있고 메타데이터(클래스 이름, 메서드 정보 등)을 담고 있는 걸로 확인했습니다. 더자바 강의에서 메모리의 메서드 영역에 클래스 수준의 정보(풀패키기 경로, 메서드 이름, 변수 명 등)를 담는걸로 학습했던 기억이 있어 두 개념의 차이점을 알고 싶어 질문 남깁니다. 좋은 강의 올려주셔서 감사합니다!
- 미해결더 자바, 코드를 조작하는 다양한 방법
강의자료에서 링크의 Resolve 내용에 대한 질문입니다.
현재 링크의 Resolve 설명에서 `심볼릭 메모리 레퍼런스를 메소드 영역에 있는 실제 레퍼런스로 교체한다.`라고 명시되어 있습니다. 메소드 영역은 클래스 정보만을 저장하는 영역이라 알고 있어서 메소드 영역이 아니고 힙 영역이라고 맞다고 생각이 드는데, 이것이 맞는지 궁금합니다.
- 미해결더 자바, 코드를 조작하는 다양한 방법
제네릭을 쓰는 클래스 생성방법은 없나요?
안녕하세요. 강좌 잘 보고 있습니다. 강좌를 보고 실습하고 있는데요. 제가 좀 변태적인 취향인지라... 제네릭한 클래스를 newInstance 를 이용해서 생성하려고 하는데요. 어떻게 해야할지 도통 감이 안잡히네요.