본문 바로가기
반응형

Develop/Java70

[Java] Built-in Package 개요 우리는 String , Integer , System 같은건 import 없이도 사용할 수 있다. 세 개의 객체 모두 java.lang 에 포함되어 있는데 이런 import 없이 사용 가능한 패키지를 빌트인 패키지라고 한다. 그렇다면 이 빌트인 패키지의 동작 원리가 뭔데? 어떻게 import 없이 사용할 수 있을까? 에 대해서 궁금증이 생겨 포스팅하게 되었다. 패키지란? 관련된 클래스들을 모아 관리할 수 있게 함 네이밍 충돌 회피 클래스나 인터페이스 등의 접근 제어 패키지는 크게 Built-in packages와 User-defined packages로 나뉜다. Built-in packages : Java에서 우리 이미가 갖고 있는 다양한 선행 패키지들 User-defined packages : 사.. 2022. 2. 17.
[Java] toString() 파헤치기 목차 1. 개요 2. toString()의 목적 3. toString()의 구조 4. 코드의 개선 5. 결론 1. 개요 자동차를 나타내는 Car 클래스를 선언했다. Car 클래스에는 name과 position이 존재하고 아래와 같은 문자열로 나타내려고 한다. ex) name = "연로그", position = 3 👉 연로그 : --- 따라서 아래와 같은 객체를 만들고 toString()을 오버라이드 해주었다. public class Car { private final String name; private int position; public Car(String name) { this.name = name; this.position = 0; } public void go() { this.position++.. 2022. 2. 15.
[JPA] Table 'DB.hibernate_sequence' doesn't exist 에러 java.sql.SQLSyntaxErrorException: (conn=602) Table 'DB이름.hibernate_sequence' doesn't exist 에러 Entity의 PK를 @GeneratedValue(strategy = GenerationType.AUTO)로 해두었을 때 발생한 문제이다. hibernate_sequence라는 테이블에서 PK를 조회하는데 해당 테이블이 존재하지 않아서 발생한다. 이 때 선택할 수 있는 방법이 두 가지 있다. DDL 자동생성 설정 하기 GenerationType 변경하기 1의 경우에는 실제 운영 환경에서 쓰기에는 매우 위험하다. DDL을 자동으로 생성한다는 것은 애플리케이션 실행 이후로 DB의 테이블 구조가 막 바뀔 수 있다는 의미이다. 개발 환경이라면 편.. 2022. 1. 14.
[JPA] 프록시와 영속성 전이 이전에 읽으면 좋은 글 JPA란? https://yeonyeon.tistory.com/178 Entity 매핑 https://yeonyeon.tistory.com/179 목차 프록시 영속성 전이 1. Proxy; 프록시 Entity Manager의 .getReference()를 통해 DB 조회를 미루는 가짜(프록시) 엔티티 객체를 조회 실제 클래스를 상속 받아 생성해 겉 모양이 같음 사용자는 진짜 객체인지 프록시 객체인지 구분 X 실제 객체의 참조(target)를 보관 프록시 객체에서 메소드 호출 시, 프록시 객체가 실제 객체의 메소드를 호출 (아래 동작 과정 참고) proxy 동작 과정 Member member = em.getReference(Member.class, “id1”); member.getN.. 2022. 1. 13.
[JPA] Entity 매핑 이전 글: https://yeonyeon.tistory.com/178 예제 코드: https://github.com/yeon-06/inflearnSpring/tree/master/jpa-ex1 목차 1. @Entity란? 2. DB 스키마 자동 생성 3. 필드와 컬럼 매핑 4. 기본 키 매핑 5. 연관 관계 매핑 6. 상속 관계 매핑 7. 공통 매핑 1. @Entity란? JPA가 관리하는 클래스 JPA를 사용해 테이블과 매핑할 클래스 public, protected 기본 생성자 필수 👉 JPA의 구현체(ex: hibernate)가 지원하는 다양한 기능을 사용하기 위함 final, enum, interface, inner 클래스 사용 불가 👉 @Entity로 매핑이 불가능 값을 저장할 필드에 final .. 2022. 1. 10.
[JPA] JPA란? 목차 JPA가 등장한 이유 JPA란? 왜 JPA를 사용해야 하는가? JPA 주의사항 JPA의 중요한 기능 예제 코드: https://github.com/yeon-06/inflearnSpring/tree/master/jpa-ex1 GitHub - yeon-06/inflearnSpring: 🍃Inflearn에서 김영한님 강의를 듣고 정리하는 레포지토리 🍃Inflearn에서 김영한님 강의를 듣고 정리하는 레포지토리. Contribute to yeon-06/inflearnSpring development by creating an account on GitHub. github.com 1. JPA가 등장한 이유 현재 많은 웹과 앱에서 데이터베이스는 관계형 DB를 주로 사용하고 있다. NoSQL과 RDB 중 어떤 .. 2022. 1. 3.
[Java] Enum에 대해 목차 1. Enum이란? 2. 사용 방법 3. 주요 메소드 4. Singleton과 Enum 1. Enum이란? 🤔 enumerance type = 열거형 JDK 1.5부터 생겨난 기능으로 열거체를 정의할 수 있는 클래스 비교 시 실제 값 뿐만 아니라 타입까지 체크 가능 상수값이 재정의 되어도 다시 컴파일 할 필요 X 2. 사용 방법 🤩 enum Color { RED, YELLOW, GREEN, BLUE } 기본적으로 위와 같이 정의하고 Color.RED 와 같이 사용한다. 아래와 같이 특정 값을 저장할 수도 있다. enum Color { RED(3), YELLOW(21), GREEN(5), BLUE(1); private final int value; Color(int value) { this.value.. 2021. 12. 13.
[Java] org.opentest4j.AssertionFailedError: Expected ... to be thrown, but nothing was thrown. 에러 에러: org.opentest4j.AssertionFailedError: Expected java.lang.IllegalArgumentException to be thrown, but nothing was thrown. 📜 에러 설명 Exception 발생이 있을거라 생각을 했는데~ but nothing was thrown... 발생하지 않았다고 한다. 말그대로 Exception이 발생하지 않았기 때문에 발생한 문제라... 다양한 원인과 다양한 해결방법이 존재할 것이다. 🧨 원인 일단 나 같은 경우는 Exception 던진걸 try-catch로 감쌌기 때문에 실패했다.🤯 결론부터 말하자면 이 경우에도 해결 방법이 여러가지 있다. 예외 전파하기 테스트하는 메소드 변경 테스트 코드 변경 🔍 테스트 예제 원본.. 2021. 12. 7.
[Mockito] Mockito란? Mockito란? Java에서의 단위 테스트를 지원하기 위한 Mocking Framework Mock(가짜) 객체를 통해 테스트 코드 작성을 더 원활하게 해줌 설치 방법 Maven jar파일 다운로드 혹은 직접 설치 Gradle repositories { mavenCentral() } dependencies { testImplementation "org.mockito:mockito-core:3.+" } Mock 사용 예제 호출 되었는지 확인하기 import static org.mockito.Mockito.*; class TempTest { @Test void verify1() { List mockedList = mock(List.class); mockedList.add("one"); verify(mock.. 2021. 12. 2.
반응형