[Spring Data JPA] JPA Entity 클래스에 기본 생성자가 필요한 이유
·
Spring Data JPA
JPA 기본 생성자가 필요한 이유@PersistenceContextprivate EntityManager entityManager;public User getUser(Long userId) { User user = entityManager.find(User.class, userId); return user; // JPA가 내부적으로 기본 생성자를 호출하여 객체를 생성하고, 리플렉션을 통해 필드 값을 설정}해당 과정을 살펴 보면 entityManager.find 즉, 조회 과정에서 User.class 타입을 인자로 받고 있다.이 User.class 이 클래스 정보로 내부에 애너테이션이나 필드 생성자 등의 정보를 리플렉션을 통해 얻을 수 있게 된다.그러면 이 정보를 가지고 DB에 데이터를 조회할..
[Java] Annotation 이란? ( 애노테이션 )
·
Java
(1) Annotation(애노테이션) 이란?1. Annotation 이란?- 번역기를 통해 변역을 해보면 Annotation은 "주석"이라는 의미를 뜻한다. 2. Java 에서 Annotation이란?- Java에서 Annotation은 메타데이터를 코드에 추가하기 위한 방법으로 쓰인다.- 애너테이션은 클래스, 메서드, 변수, 매개변수 등 다양한 요소에 대한 추가적인 정보를 제공하며, 이러한 정보를 컴파일러나 런타임 환경에서 활용할 수 있도록 하기 위해 사용이 된다. 3. 메타데이터란?- 코드에 부가적인 정보를 제공해주는 데이터를 메타데이터 라고 한다.- 코드에 부가적인 정보를 제공하기 위해선 애너테이션을 붙히게 되는데 애너테이션이 즉, 메타데이터이다.예시를 들면, 도서관의 책이 있고, 해당 책은 데이..
[Java] JVM 동작 원리
·
Java
IDE는 자바 프로그램의 실행 명령어들을 대신 입력을 해주어 명령어를 몰라도 코드를 실행 할 수 있게 해준다. 이러한 추상화 덕분에 편리하지만 이러한 지식 없이 자바를 공부한다면 공부의 효율성이 떨어질 수 있다는 단점이 있다. JVM(Java Virtual Machine) 동작 원리JVM은 "java ClassName" 명령어를 통해 실행을 시킬 수 있게 된다. ClassName은 반드시 main 메서드가 들어있는 주 클래스여야 한다. JVM이 실행이 된 후 JVM의 부트스트랩 클래스 로더가 필요한 클래스 파일인 java.lang 패키지의 클래스 파일들을 먼저 로드 해준다. 이후, 애플리케이션 클래스 로더가 main 메서드 주 클래스를 로드를 해주게 된다. 이러한 과정이 다 끝나면, JVM은 main 메..
[Spring Framework] (2) - IoC & DI 개념 이해 하기
·
Spring Framework
1. IoC (Inversion of Control)Inversion of Control의 뜻은 "제어의 역전"이다. 여기서 말하는 제어는, 객체를 직접 생성하거나 찾는 방식에서 벗어나 Spring Framework의 IoC 컨테이너 에게 제어의 권한을 넘김으로써, IoC 컨테이너가 필요할 때 알아서 객체를 생성하고 필요한 의존성을 알아서 주입을 해주는 방식을 의미한다.- 객체의 제어를 외부에서 담당하게 한다는 폭 넓은 개념- IoC Container에게 제어 권한을 넘긴다는 개념 * IoC Container : Spring Framework가 의존성 주입을 자동을 해주기 위한 "Bean"들의 집합과 "Bean"들을 관리해주는 공간이다.* Bean : Spring Framework가 관리하는 객체들을 "..
[Spring Framework] (1) - Spring & Spring Framework 차이
·
Spring Framework
개요Spring과 Spring Framework 단어에 대해 명확한 차이를 알고 있어야 Spring Framework를 더욱 쉽게 이해를 할 수 있을 것이다. 단어의 뜻은 정확하게 해석을 해놔야 나중에 헷갈리지 않는다.  1. Spring 이란?Spring의 처음은 Spring Framework라는 이름으로 시작을 했지만, 시간이 지남에 따라 Spring Framework 기반 위에 다른 프로젝트들이 추가 되면서 Spring은 Spring Framework 및 다른 프로젝트들을 다 포괄하는 단어가 되었다.- Spring은 Spring Framework 기반으로 구축이 된 프로젝트들을 일컫는다.- Spring은 오픈소스이며, Spring 내의 모든 프로젝트 또한 오픈소스이다.  2. Framework 란?..
내일배움캠프 35일차 TIL - Enum
·
내일배움캠프 Spring 5기
240605오늘의 학습     ●  1. Enum    ●  2. 팀 프로젝트 게시글 기능 구현 Enum( 열거타입 )자바 1.5버전부터 새롭게 추가된 기능이며, 자바에서 Enum은 한정된 값들의 집합상수들의 집합을 의미한다.Enum은 Enumeration의 약자이며, Enumeration은 열거형이라고 부르며 목록, 알림표와 같은 의미를 가지고 있다.Enum은 열거타입이며, 열거타입은 데이터 중에 한정된 값을 갖는 데이터를 열거타입이라고 한다.즉, 한정된 값은 상수를 의미하며, 한정되어 있으므로 데이터의 변경이 있어서는 안된다는 규칙이 존재한다.ex) 월, 화, 수, 목, 금, 토, 일 ( 7개 ) / 봄, 여름, 가을, 겨울 ( 4개 ) Enum 열거형열거타입은 참조 타입이므로 null값으로 초기화가..
내일배움캠프 15일차 TIL - 과제 피드백(Calculator)
·
내일배움캠프 Spring 5기
240503오늘의 학습     ●  1. 자바 변수, 클래스, 메서드 네이밍    ●  2. 과제 한번 더 풀면서 복습하기( 다형성 및 예외 ) 과제 피드백(개선 사항)# 문제점 및 해결1. 변수 네이밍의 문제while문을 통해 반복을 진행하고 빠져나가는 조건으로 변수하나를 선언을 했지만 변수명이 직관적이지 못한점 수정2. 쓸때없는 구문 제거if문의 쓸때없는 else문 제거 if문으로 끝나는 경우 else가 필요없는 경우 제외하는 것이 오히려 보기 좋다.3. 메서드의 분리를 통해 가독성 + 클린코드 실천하나의 메서드의 하나의 기능만을 클린코드를 목표로 과제를 수정하였다. 훨씬 가독성이 좋아졌다.밑의 코드에서 두개의 메서드가 기존에는 while문 안에 전부다 들어가있었다. 지금은 두개의 메서드로 분리시켜서..
내일배움캠프 13일차 TIL - 확장&상속(Extends)
·
내일배움캠프 Spring 5기
240501# 오늘 꼭 기억 해야 할 것!1. 상속과 다형성오늘의 학습     ●  1. 상속    ●  2. 다형성    ●  3. 깃허브 해보기 확장(Extends) == 상속(Inheritance)자바에서 확장(상속)은 클래스와 클래스간의 관계를 의미하며 상속은 부모 클래스가 자식클래스에게 메서드나 필드를물려 주는것을 의미한다. ( 상속을 하는 쪽의 클래스를 부모클래스, 상속을 받는 클래스를 자식클래스라고 말한다. ) 자바에서 상속보다는 확장이라는 표현을 하는 것이 더 올바른 표현이다.이유는 부모클래스가 진짜 부모로 만들어진 객체 클래스 자식클래스가 진짜 자식으로 만든 객체 클래스로 가정을 해보자부모의 역할을 상속받는다고 자식클래스가 부모가 될 순 없다. 이 말은 상속이라는 것은 올바르지 않은 표현..
[Java] 상속 ( Extends )
·
Java
확장(Extends) == 상속(Inheritance)자바에서 확장(상속)은 클래스와 클래스간의 관계를 의미하며 상속은 부모 클래스가 자식클래스에게 메서드나 필드를물려 주는것을 의미한다. ( 상속을 하는 쪽의 클래스를 부모클래스, 상속을 받는 클래스를 자식클래스라고 말한다. ) 자바에서 상속보다는 확장이라는 표현을 하는 것이 더 올바른 표현이다.이유는 부모클래스가 진짜 부모로 만들어진 객체 클래스 자식클래스가 진짜 자식으로 만든 객체 클래스로 가정을 해보자부모의 역할을 상속받는다고 자식클래스가 부모가 될 순 없다. 이 말은 상속이라는 것은 올바르지 않은 표현이며, 확장이라는 표현이 올바른 표현이 된다. 확장은 부모클래스에게 받은 것들을 자식클래스에서 확장하여 이용할 수 있는 것이다.  # 상속을 알기에 ..
[Java] 예외 ( Exception )
·
Java
목차   ●  1. Error & Exception.    ●  2. 예외(Exception)    ●  3. 예외처리(1) try & catch    ●  4. 예외처리(2) try & catch    ●  5. 예외 처리 catch문 유용한 메서드    ●  6. 예외 종류( CheckedException & UnCheckedException )    ●  7. final구문   ●  8. throws구문  1. Error & Exception자바에서는 문제를 크게 Error, Exception 두 가지로 구분을 한다. 1. Error개발자가 직접 처리할 수 없는 문제를 의미한다. ( 메모리, 운영체제, 하드웨어, 외부적인 요인으로 생기는 문제 )즉, 작업을 하는 환경의 문제가 생긴 것을 의미하며 ..