1. 메서드 이름 위에 @Query 가 안 붙으면 이것만 보고 추론을 해서 쿼리를 만드는 것이고, 컴파일 에러를 잡아주진 않지만, 실행할 때 이 쿼리를 만든 다음에 시작하기 때문에 그래도 애플리케이션이 동작하면서보단 켜자마자 에러가 발생하는 게 나으니까, 이런 면에서 더 좋다. 2. Optional 은 원하는 걸 주거나 예외를 터뜨리거나 (매번 헷갈리는 내용...) 3. Timestamp 와 setStamp 등록시간과 수정시간이 중요한 경우가 있고, 등록자와 수정자가 중요한 경우가 있고, 어떤 건 다 중요한 경우가 있다. 즉, 어떤 테이블은 필요가 없을 수도 있다는 말이다. 더 많이 쓰는 것을 부모 클래스로 빼서 처리하자. 4. DB 설계에서 연관관계를 맺으면 여러 제약조건이 생기므로 지양하기도 한다. ..
예제 공부를 하다가, private boolean open; 과 private Boolean open; 이 나와서 chat GPT 를 통해 차이점을 찾아보았다. 관련된 개념적 내용은 다음과 같다. private boolean open; vs private Boolean open; Java에서 서로 다른 데이터 유형을 나타낸다. 1. private boolean open; 이것은 기본 데이터 유형인 boolean을 사용하는 변수를 선언한다. boolean은 두 가지 값 중 하나인 true 또는 false만을 가질 수 있는 원시 데이터 유형 따라서 open 변수는 true 또는 false 중 하나의 값을 가질 수 있다. 2. private Boolean open; 이것은 래퍼 클래스인 Boolean을 사용하..
.orElseThrow는 누구의 메서드인가? 예를 들면 코드에서 Item item = itemRepository.findById(orderDto.getItemId()) .orElseThrow(EntityNotFoundException::new); 이렇게 나와있다고 하면, 앞에서부터 itemRepository.findById(orderDto.getItemId()) 여기에 .을 찍으면 어떤 메서드가 나온다. 그리고 나서 .을 또 찍는 것이기 때문에 이 메서드의 리턴과 관련이 있다. 즉 findById의 리턴과 관련이 있다. findById는 일단 나는 id를 넘기는 것이고, 메서드는 item을 찾아준다. 즉 findItemById인 셈이다. 그런데 범용적으로 jpa가 제공하는 메서드를 쓰기 위해 형식에 맞춰..
예제 1. 객체에 대한 참조값을 요소로 가지는 객체 배열을 생성하는 코드를 구현하시오. 반복문을 사용하여 객체를 생성하시오. class Person01 { // Field private String name; private int age; // Constructor Person01() { } Person01( String name, int age ) { this.name = name; this.age = age; } // Method public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(in..

프로그램, 프로세스, 쓰레드 프로그램(Program) : 컴퓨터에서 실행 가능한 명령어들의 집합. - 보통 하드디스크나 USB 등의 저장 장치에 파일 형태로 저장되며, 이를 실행하면 컴퓨터의 메모리에 로드되어 실행된다. 프로세스(Process) : 실행 중인 프로그램. 실행 중인 프로그램의 인스턴스(instance)라고 할 수 있음. - 컴퓨터 메모리에서 실행 중인 프로그램의 코드와 데이터를 저장하는 메모리 영역을 할당받으며, 실행 중인 프로그램의 상태를 유지하고 프로그램의 실행 흐름을 제어한다. 쓰레드(Thread) : 프로세스 내에서 실행되는 실행 단위를 의미. - 한 프로세스는 여러 개의 쓰레드를 가질 수 있으며, 각각의 쓰레드는 독립적으로 실행될 수 있다. - 하나의 프로세스 내에서 각 쓰레드는 ..
toString() : 객체를 문자열로 표현하는 메소드. toString() 메소드를 호출하면 객체의 내용을 문자열로 반환한다. - 이 메소드는 모든 Java 객체에 대해 기본적으로 구현되어 있으며, Object 클래스에서 상속받음. 따라서 모든 Java 클래스에서 toString() 메소드를 사용할 수 있다. 기본 동작 - 해당 객체의 클래스 이름, '@' 기호, 그리고 객체의 해시 코드를 문자열로 반환함. 그러나 대부분의 경우, 객체의 실제 내용을 더 유용한 방식으로 표현하기 위해 이 메소드를 재정의(override)한다. 예시 String 클래스에서 toString() 메소드는 해당 문자열 값을 그대로 반환하도록 재정의되어 있다. 이렇게 하면 String 객체를 출력할 때 문자열 값이 출력된다. 다..