나를 기록하다
article thumbnail
[TIL-4 / 230618] Java - 인터페이스
TIL 2023. 6. 19. 10:15

인터페이스(Interface) 기능: 추상 메서드들의 집합. 인터페이스를 사용하기 위해서는 추상메서드의 집합인 인터페이스를 구현하는 클래스가 존재하여야 한다. 상속: 클래스와 달리 인터페이스는 다중상속을 허용 → 이유: 클래스는 복잡하지만 상대적으로 인터페이스는 단순한 추상메서드들의 집합 구현: 인터페이스들을 구현하는 클래스 입장에서는 인터페이스의 계층 구조를 따져서 그 인터페이스의 모든 부모 인터페이스에 존재하는 추상 메서드까지 클래스가 다 구현을 해주어야 한다. 하나의 인터페이스는 여러 인터페이스를 구현할 수 있다. 결론: 인터페이스를 구현하는 클래스는 자신이 구현하는 모든 인터페이스, 그리고 그 인터페이스의 부모 인터페이스까지 다 따져서 그 전체에 포함된 모든 추상 메서드를 다 오버라이딩해서 구현해..

article thumbnail
[TIL-3 / 230614] 다형성, JPA의 기본키 매핑
TIL 2023. 6. 14. 23:40

다형성(polymorphism) 의미: 외부에서 보았을 땐 하나이나, 외부의 상황에 따라 여러 가지 형태를 가질 수 있는 능력 기능: 하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것. 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것이 다형성 예시: 오버로딩, 레퍼런스 형변환 규칙 부모의 레퍼런스는 자식의 인스턴스를 가리킬 수 있다. 역은 성립하지 않는다. 이유: 부모 클래스와 자식 클래스가 있을 때, 개념적으로 부모 클래스가 더 크기 때문 참조변수의 형변환 서로 상속관계에 있는 타입간의 형변환만 가능 자손 타입에서 조상타입으로 형변환하는 경우, 형변환 생략가능 자손타입 → 조상타입(Up-casting) : 형변환 생략가능 / 언제나 가능 자손타입 ← 조상타입(Down-casting) :..

article thumbnail
[TIL-2 / 230613] Java의 제어자, JPA 엔티티 매핑
TIL 2023. 6. 13. 23:55

클래스패스(classpath) 설정 java -cp {~/Desktop/DEV.PRAO/eclipse-workspace/out/production/eclipse-workspace} fullPathName import문 사용할 클래스가 속한 패키지를 지정하는데 사용 import문을 사용하면 클래스를 사용할 때 패키지명을 생략할 수 있다. import문을 생략 가능한 경우 java.lang 패키지는 자동으로 import 된다 → java.lang패키지의 클래스는 Import하지 않고도 사용할 수 있다. 나랑 같은 패키지에 속한 클래스는 import문 생략 가능 부모 패키지만 import하면 자식 패키지도 사용 가능할까? → 아니다. 자식 패키지는 따로 import 하여야 한다. import 패키지명.클래스명..

article thumbnail
[TIL-1 / 230612] JPA 영속성 컨텍스트
TIL 2023. 6. 12. 22:46

영속성 컨텍스트란 무엇인가? JPA를 이해하는데 가장 중요한 용어이다. 뜻: 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); → 영속성 컨텍스트를 이용해서 DB에 저장하는 것이 아니라 영속성 컨텍스트라는 곳에 저장하는 것 영속성 컨텍스트는 논리적인 개념으로, 눈에 보이지 않는다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. 엔티티의 생명주기 비영속(new/transient): 객체를 생성한 상태(영속성 컨텍스트와 관계 x) 영속(managed): 객체를 저장한 상태(영속성 컨텍스트에 관리되는 상태) 준영속(detached): 영속성 컨텍스트에 저장되었다가 분리도니 상태 삭제(removed): 삭제된 상태 [예시] 1차 캐시에서 조회 package hellojpa..

profile on loading

Loading...