자바의 특징 Write once, run anywhere. (한 번 작성하면 어디서든 실행된다.) 1. JVM: Java Virtual Machine JVM이란 Java 프로그램을 실행하는 가상 환경이다. 자바 가상 머신을 사용하여 자바 바이트 코드를 실행할 수 있다. JVM은 운영체제 위에서 작동하면서, 자바 컴파일러에 의해 생성된 바이트 코드를 운영체제가 이해할 수 있는 기계어로 바꿔 실행한다. 덕분에 자바 프로그램은 특정 운영체제에 종속되지 않고, 다양한 운영체제에서 동일하게 사용할 수 있다. ex) 소스 코드가 담긴 Person.java 파일이 자바 컴파일러에 의해 컴파일되면 Person.class 파일이 생성된다. 이 .class 파일에는 바이트코드가 포함되어 있고, JVM이 바이트코드를 기계어..
1. 오류 원인Kotlin은 컴파일 시에 자바 바이트코드(.class)로 변환되기 때문에 다른 자바 파일과 호환이 되고 JVM에 의해 실행된다. 오류 메시지를 보면 JVM 시그니처가 충돌했음을 알 수 있다. 아래 코드를 보면 4개의 프로퍼티(email, password, nickName, authorities)가 존재한다. 코틀린 컴파일러는 프로퍼티에 대해서 자동으로 getter와 setter를 생성한다. 따라서 password와 authroties 프로퍼티에 대해서도 자동으로 getter가 생성된다. 여기서 한 가지 문제점이 발생하는데 현재 코드에는 UserDetails을 상속하면서 getPassword(), getAuthorities()를 오버라이딩하고 있다. 코틀린 컴파일러에 의해 자바 바이트 코드..