📚FOS Study
홈카테고리
홈카테고리
📚FOS Study

개발 학습 기록을 정리하는 블로그입니다.

바로가기

  • 홈
  • 카테고리

소셜

  • GitHub
  • Source Repository

© 2025 FOS Study. Built with Next.js & Tailwind CSS

목록으로 돌아가기
☕java/ 더_자바_코드를_조작하는_다양한_방법

2부. 바이트코드 조작

약 1분
GitHub에서 보기

2부. 바이트코드 조작

5. 모자에서 토끼를 꺼내는 마술

  • 바이트 코드 조작 => 막강한 기능
  • 아무것도 없는 Moja에서 Rabiit을 꺼내는 마술
Moja.java

public class Moja {

    public String pullOut() {
        return "";
    }
}

Masulsa.java

public class Masulsa {

    public static void main(String[] args) {
        System.out.prinlnt(new Moja().pullOut());
    }
}
  • 바이트코드를 조작하는 라이브러리
  • ASM => visitor, adapter pattern을 잘 알고 있어야 쓸 수 있다
  • Javassist
  • ByteBuddy => byte code 구조를 몰라도 쉽게 사용해볼 수 있다
public class Masulsa {

    public static void main(String[] args) {
        try {
             new ByteBuddy.redefine(Moja.class)
                .method(named("pullOut)).intercept(FixedValue.value("Rabiit!))
                .make().saveIn(new File("/Users/gimbyoungtae/workspace/thejava/target/classes/));
        } catch (IOExpcetion e) {
            e.printStackTrace();
        }

        System.out.prinlnt(new Moja().pullOut());
    }
}
  • 바이트 코드를 바꿔버리면
  • 모자에서 토끼가 나오게 된다!
java 카테고리의 다른 글 보기수정 제안하기
목차
  • 2부. 바이트코드 조작
  • 5. 모자에서 토끼를 꺼내는 마술