JPA - 상속관계매핑
·
Spring/JPA
상속관계 매핑 객체는 상속관계가 존재하지만, 관계형 DB에는 상속 관계가 없다. 상속관계 매핑이라는 것은 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것 슈퍼타입과 서브타입 논리 모델 → 물리모델로 구현하는 방법 3가지 방법이 존재한다. JPA가 이 3가지 방법과 매핑하려면 @Inheritence(strategy=InheritanceType.XXX)의 strategy를 설정해주면 된다. XXX = ‘JOINED’,’SINGLE_TABLE’,’TABLE_PER_CLASS’로 구성되어 있다. @DiscriminatorColumn(name=”DTYPE”) 부모 클래스에서 선언, 하위 클래스를 구분하는 용도의 컬럼을 생성 관례는 default=DTYPE @DiscriminatorValue(”XX..
자바(java) - Optional이란?
·
JAVA-기초/JAVA기본
Optional이란? Java8에서부터 지원하는 기능 java.util의 하위 클래스 NPE를 방지할 수 있도록 도와준다. null이 올 수 있는 값을 Wrapper클래스로 감싸준다. NPE란? NullPointerException 가장 많이 발생하는 예외중 하나 null 여부를 검사함으로써 예외가 터지는것을 방지할 수 있다. 검증하는 코드는 복잡하고 번거롭다. NPE 예시 코드 @Test public void test01() { String name = null; System.out.println(name.charAt(0)); // name은 null이기 때문에 NPE가 발생한다. if (name == null) { name = "userA"; //null을 체크해서 값이 없는 경우 새로운 값을 삽입하..
[Design Pattern] - Adapter 패턴
·
JAVA-기초/Design Pattern
아래 글은 제가 노션에서 작성한 글을 가져온것입니다. 아래 게시물을 참고하여 게시물을 작성할 경우 댓글 부탁드려요. Adapter 📌이미 제공된 코드를 그대로 사용할 수 없을 때, 필요한 형태로 변환후 이용하는 것 📌 이미 제공된 것과 필요한 것 사이의 차이를 메우는 디자인 📌Wrapper 패턴이라고 불리기도 한다. 📌두 종류가 잇다. 클래스에 의한 Adpater패턴(상속을 사용한 패턴 📌인스턴스에 의한 Adapter패턴(위임을 사용한 패턴) ⏬만들어 볼 클래스 📌Hello라는 주어진 문자열을 다음과 같이 표시하는 프로그램 (Hello), >>>Hello
[Java] 객체지향개념(OOP) 캡슐화와 정보은닉
·
JAVA-기초/JAVA기본
🟰Index 캡슐화 String 클래스의 캡슐화 정보 은닉(OOP의 핵심) 객체의 타입 은닉(업 캐스팅) 더욱 객체를 은닉(디자인 패턴) 객체의 필드 , 메서드 은닉(캡슐화) 구현 은닉(인터페이스) 캡슐화(Encapsulation) 내부를 가리는 캡슐화, 정보 은닉 개념중 하나 객체의 속성과 행위를 하나로 묶고, 외부로부터 내부를 감싸 숨겨 은닉한다. 외부의 잘못된 접근으로 값이 변하는 의도치 않는 동작을 방지하는 보효 효과도 가능하다. 대표적으로 **protected, default, private**의 접근제어자를 통해 구현 가능 유효하지 않은 숫자로 직접 변수를 변경하려는 시도를 내부에서 유효성 체크 로직을 통해 거를 수 있다. [ ] String클래스의 캡슐화String클래스는 final로 선언되..
JavaScript - toDoList(할일 목록 만들기)
·
JavaScript
⏬ HTML 준비 코드 /* 할 일을 적을 입력칸*/ /* 적은 입력이 저장되는 출력칸*/ ⏬JS 코드 🔆각 요소 값 변수에 저장 및 입력한 값을 담을 배열 생성 //입력 폼 const toDoForm = document.querySelector('#todo-form') //입력 const toDoInput = toDoForm.querySelector('input') //출력할 ul요소 const toDoList = document.querySelector('#todo-list') /**localstorage에는 오직 text만 저장 가능하다. */ let toDos = []; /*자주 사용하는 단어(상수)는 오타를 치지 않도록 변수에 담아서 사용한다.*/ const TODOS_KEY = "todos";..
[Java] Design Pattern - Iterator ,For 반복문의 차이
·
JAVA-기초/Design Pattern
🟰Iterator 패턴? 📌어떠한 객체의 집합, 값의 집합을 하나씩 지정해서 순서대로 처리하는 패턴 📌반복하는 의미를 갖고 있다. ⏬이해를 돕기 위한 예시 코드 ✅Book 객체(책장에 넣을 객체) package bookshelf; public class Book { private String name; public Book(String name) { this.name = name; } public String getName() { return name; } } ✅ Iterator 역할을 구현할 인터페이스 package bookshelf; import java.util.Iterator; /*** * Iterator 역할을 만들어내는 인터페이스 */ public interface Aggregate { pub..