개발

    [Java] 리플렉션 (reflection) 개념 이해하기

    리플렉션 들어가며 자바를 처음 배우던 시절 생각해 보면 리플렉션이라는 단어조차 들어 본 적이 없었습니다. 자바를 점점 학습하면서 종종 들어봤지만 그때 당시 '리플렉션을 모르면 사용하지 말아라', '면접에서 안다고 얘기했다가 까였다.' 등의 글을 읽으며 핑계 삼아 공부를 미뤘습니다. 백기선님의 자바 라이브 스터디 시절 어노테이션을 공부하다가 리플렉션이라는 키워드를 다시 만나게 되었고 이때 간단하게 학습했습니다. 그리고 스프링 AOP를 공부하면서 다이나믹 프록시를 알게 되고 리플렉션에 대해 이해하게 되었습니다. 저도 한 번에 이해하지 못 한 개념이고 어노테이션, aop 등 공부하다 보면 리플렉션에 대한 퍼즐 조각이 자연스럽게 맞춰질 수도 있습니다. (제가 그랬어요.) 자바의 리플렉션이 익숙하지 않다면 조금이..

    [Java] Record

    [Java] Record

    Record Intro. 자바 14 이전에는 단순히 데이터를 저장시키고 조회하는 클래스를 만들려면 필드와 메서드가 포함된 클래스를 만들어야 했고 이는 개발자의 잦은 실수와 반복되는 작업을 일으켰다. 자바 14부터 record를 사용하여 이러한 문제를 해결할 수 있다. record는 enum처럼 제약을 가진 클래스의 일종으로 간결함을 얻기 위한 용도가 있다. 목적 일반적으로 데이터베이스의 결과, 쿼리 결과, 서비스 정보 같은 단순한 데이터를 가진 클래스를 작성한다. 많은 경우 데이터를 불변하게 생성하는데 이 과정에서 private, final, getter, constructor, equals and hashcode, toString을 작성하게 된다. 이것은 많은 getter 메서드를 필요로 하고 클래스의..