더 자바, 코드를 조작하는 다양한 방법
더 자바, 코드를 조작하는 다양한 방법
수강정보
(79개의 수강평)
1462명의 수강생
49,500원
지식공유자 : 백기선
24회 수업 · 총 4시간 36분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급
HappyJay 프로필

인스턴스 관련해서 질문이 있습니다. HappyJay 4일 전
안녕하세요. 우선 매번 좋은 강의 올려주셔서 정말 감사합니다^^ 질문이 있는데 클래스 로딩이 끝나고 나서 heap 영역에 인스턴스 관련 정보가 들어가 있고 Class<Book> bookClass = Book.class 를 통해 인스턴스를 가져올 수 있다고 했는데 그러면 이 인스턴스는 new Book() 으로 생성된 인스턴스와는 다른 건가요? 실제 멤버변수의 값을 가져오기 위해서는 왜 new Book() 으로 인스턴스를 생성해야 하는지 궁금합니다. 그리고 Book.class 로 가져오는 인스턴스와 new Book() 으로 생성된 인스턴스가 다르다면 어떻게 다른지도 알 수 있을까요?

1
킴앀 프로필

안녕하세요 바이트버디 관련해서 질문드립니다. 킴앀 11일 전
안녕하세요 바이트버디 관련해서 질문드립니다. 바이트버디 코드와 System.out.println(new Moja().pullOut());  이 코드를 동시에 쓸 수 없다는게,, Masulsa를 실행하면 Masulsa.class, Moja.class로 컴파일되고 그 클래스 파일들이 로딩되고 실행되기 때문에, 그 이후에 바이트버디를 통해서 class 파일을 조작해도 이미 로딩된 클래스 정보 (메소드 영역에 있는) 를 보고 있기 때문에  적용이 안된다는 의미인거죠? 강의는 이전에 다 봤는데,, 혼자 좀 복습하다가 갑자기 좀 혼동이 되서 질문드립니다 ㅎㅎ

2
조승현 프로필

활용 조승현 17일 전
이런 리플렉션 API를 활용하면 어떤곳에 활용할 수 있을까요?

1
sombrero 104 프로필

JaCoCo 웹페이지에 측정 결과가 반영이 안될 때 sombrero 104 22일 전
안녕하세요. 코드 커버리지 강의 보면서 JaCoCo 설치 과정을 그대로 따라했는데 무엇이 문제인지 JaCoCo의 index.html을 실행하면 코드 커버리지 측정 결과가 반영이 안됩니다.  테스트를 실행하고 빌드해도 아무런 에러도 없고, index.html 페이지에서는 테스트 실행이 0%이며 빨간색으로만 표시됩니다. ㅠㅠ 인텔리제이에 있는 코드커버리지 기능은 제대로 작동이 되는데  어디서부터 확인하면 좋을까요. ㅠㅠ 항상 좋은 강의 감사합니다.

4
eunji 프로필

BookService 클래스 위치 - 테스트코드 관련 eunji 1달 전
안녕하세요 기선님 ~ 재밌는 강의 감사합니다. bookRepository와 bookService를 왜 테스트코드 쪽에서 생성하는지 이유가 궁금하여 질문 드립니다. 강의 내용 중(4:41)  BookRepository를 생성하여 반환하려다 소스코드는 테스트코드를 참조하지 못하여 리플렉션으로 인스턴스 생성하는 부분에서,저라면 편의를 위해 ContainerService에서 간단히 인스턴스를 반환하기 위해 BookService를 애초에 소스코드 쪽에 작성했을 것 같다는 생각이 드는데, 테스트 코드 쪽에 작성하신 이유는 단순 해당 코드의 목적이 테스트이기 때문인가요? 다른 이유가 있는지 궁금합니다.  감사합니다.

1
Truestar 프로필

메서드 invoke 시 3 dot 인수(int ... ints) 타입설정 는 어떻게 처리하는지요? Truestar 1달 전
안녕하세요 기선님!강의 도중에 웃으실때마다 저도 덩달아 웃게됩니다ㅎ미리 짜보고 애러나면 같은 애러를 같이 내어주셔서 그때그때 잡아주시거든요 ㅎㅎㅎ당연 의도하신거라 믿고 열심히 응용하고있어요^^그래서 저의 의문점은요..ㅎ "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 가 아니고 어떻게 지정해야 할까요? 읽어주셔서 감사합니다.

2
sanghyun Kim 프로필

스트림 관련 질문 sanghyun Kim 1달 전
안녕하세요 자바8 강의를 듣다가 궁금한게 있어서 질문드립니다. list.forEach()와 list.stream().forEach()의 차이가 있나요? 결과값은 같은데 예제 코드를 따라하다가 저는 list.forEach()로 하고 있었는데 강의를 보니까 list.stream().forEach()를 사용하셔서요

1
Jun Yu 프로필

오타 발견하였습니다. Jun Yu 2달 전
문서 5페이지의 바이크 코드로 되어있는데 확인 요청드려요~

1
김선동 프로필

오타수정 요청드립니다. 김선동 2달 전
메모리 설명에서 메모스 영역 → 메소드 영역 으로 수정해주시면 감사하겠습니다! 강의 잘 듣고 있습니다. 감사합니다.

1
쫀쫀박 프로필

에노테이션 프로세서 이용중 문의드립니다. 쫀쫀박 3달 전
 안녕하세요 좋은 강의 잘 들었습니다. 최근 애노테이션 프로세서를 이용해서 실습하는데 저는 메서드에 애노테이션을 붙여서 사용하는 연습을 했습니다. 해당 클래스의  클래스명을 받아오기 위해 '((Symbol.MethodSymbol) element).owner.name.toString()'로 클래스 명을 가져오는 것을 호출하려고 하는데 IDE상에서는 아무런 문제가 없는데 maven install 할 때 `package com.sun.tools.javac.code does not exist` 에러가 떠서 계속 빌드가 안되네요. 아 참고로 java8을 사용 중이고 adoptopenJDK를 사용중입니다. 분명히 tools.jar에 있는 패키지이고 분명 포함돼있는데 왜 빌드가 안되는지 모르겠습니다. 혹시 어떻게 해결하면 좋을까요?

3
칼치치 프로필

Junit test를 활용한 코드 커버리지를 측정하는데 테스트 하는 메서드 내용을 바꿀 수 있나요? 칼치치 3달 전
안녕하세요 최근 기존의 코드들에 대한 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객체 대신 주입하여 커버리지를 올릴 수 있는 방법이 있나요??? 이 질문을 테스트 강의에 올려야 할지 여기에 올려야 할지 모르겠어서 여기에 질문 하나만 올립니다. 부탁드립니다

2
daffodil 프로필

classloader를 실행하는 주체 daffodil 5달 전
classloader 시스템에서 일어나는 로딩 과정, 링크과정, 초기화 과정은 interpreter에 의해 수행되는 건가요? java 프로그램을 실행하게 되면 최초에 인터프리터가 바이트코드를 읽어 들이고 클래스로더시스템의 각 과정들을 수행하며 데이터들을 메모리 영역에 쌓아둔다고 보면 될까요?

1
Woomin Park 프로필

generated-source 참조 관련하여 질문드립니다. Woomin Park 7달 전
query DSL 사용할 때, 컴파일시 generated-source/java에 엔티티에 대한 코드가 생성되는 것을 볼 수 있는데요.(ex. QMojaEntity) 이 경우에는 모듈에 별다른 설정 없이도 레퍼런스가 가능하던데, 이유가 무엇인지 아시나요?

3
김정규 프로필

애노테이션 프로세서 강의 질문 관련입니다! 김정규 7달 전
질문이 다소 엉뚱할 수 있고, 전달하고자 하는 의도를 잘 전달할지 의문입니다. 다름이 아니라, 애노테이션 프로세서 관련 강의를 해주실 때, 2개의 프로젝트를 만들어 한 쪽에 App.java 를 지우고 MagicAnnotationProcesser.java 만든 프로젝트, 그리고 앞에 말한 프로세서를 쓰는 클라이언트 총 2개의 프로젝트. 여기서 궁금한게, 어떻게 한 쪽에서 mvn clean install 을 했는데, 다른 한쪽에서 이를 pom.xml 에 선언해 바로 쓸 수 있는건가요? 다소  애노테이션프로세서 범위를 벗어나는 질문이긴 하지만, 어떻게 바로 import(?) 가 되는지 신기하더라구요. 또한, Client가 gradle을  사용할 경우에는 어떻게 import 해야되는지 궁금합니다! 감사합니다 : )

1
Accidently Woo 프로필

jar생성시 문제 Accidently Woo 8달 전
윈도우환경에서 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로드할 수 없다고 뜨네요.

2
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스