본문 바로가기

자바의 봄(Spring)/자바와 스프링 공부하기23

[JAVA] JAVA의 인터페이스란? 인터페이스란 간단하게 말해서 서로 간에 지키는 약속이라고 말 할 수 있겠다. 두 사람이 대화를 나누는데 한명은 한국사람이고 다른 한명은 미국 사람이면 서로 언어가 달라서 이해하기 어렵다. 그렇기 때문에 우리가 어떤 규칙을 정해놓고 이야기를 하자는 것이 인터페이스라고 할 수 있겠다. 조금 더 구체적으로 설명하자면 인터페이스에 정해져있는 메소드를 통해서만 통신을 하겠다 라고 보면 되겠다. 그렇다면 인터페이스는 어떤 특징을 가지고 있을까? 1. 인터페이스는 추상 메서드와 상수만을 가질 수 있다. 다른 클래스에서 인터페이스를 통해 메서드를 구현하여 사용한다. (상속이 아닌 구현 Implements) 추상 클래스는 멤버 변수나 일반 메서드 , 추상 메서드 등을 가질 수 있지만 인터페이스는 오로지 추상 메서드와 상.. 2022. 12. 8.
[JPA] 지연로딩과 즉시로딩 1. 지연 로딩 LAZY 상황은 이렇게 된다. Member와 Team이 같이 엮여있는 상황이고 Member를 조회하게 되면 Team도 같이 조회하게 된다. 그런데 사정상 Member는 사용할 일이 많은데 Team은 그렇지 않다. 그런데 사용하지도 않는 Team을 계속 조회하게 되면 컴퓨터의 자원을 낭비하는게 된다. 그래서 지.연.로.딩 전략을 사용하게 된다. 짧게 말하자면 지연로딩은 해당 데이터에 접근하게 될 경우에만 쿼리를 날려서 조회하는것을 말한다. 그러면 연관관계로 엮여있어도 조회를 하지 않기 때문에 성능 상의 낭비를 줄일 수 있게 된다. 실무에서는 지연로딩으로 모든 어노테이션을 바르는 것을 권장한다고 말씀 2. 즉시로딩 EAGER 즉시 로딩은 Join쿼리를 통해서 Member와 Team을 모두 한.. 2022. 12. 6.
[자바] toString을 재정의 하라 항상 객체에서 Sysout을 통해서 객체를 나타낼 때마다 16진수의 헥사 코드로 나오면 다시 돌아가서 내가 나타내고 싶은 내용을 표시하곤 했는데 문득 왜 그런지 자세하게 알아보고 싶었다. 찾아보니 아래 주소에 잘 정리 해놓은 분이 계셨다. public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 위와 같은 모습을 띄는데 , 이것을 오버라이드 하여 우리가 객체의 내용을 보기 편하도록 작성하는 것이다. 한줄요약로 요약하자면 이펙티브 자바 3판 아이템 12 - toString 메소드를 항상 재정의 하라 https://hudi.blog/java-correct-purpose-of-tostring/ 2022. 12. 4.