-
다대일(@ManyToOne)과 일대다(@OneToMany)
객체 관계에서 한 쪽만 참조하는 것이 단방향 관계이고, 양쪽이 서로 참조하는 것을 양방향 관계임. -
@JoinColumn
다대일이나 일대다의 다 쪽(@ManyToOne)에 외래 키 매핑. -
JpaRepository
매우 간단히 데이터를 검색 할 수 있도록 도와주는 인터페이스. -
@Query
JPA에 정의된 키워드를 조합하여 원하는 데이터를 가지고 오게 해줌. -
JPA native query
개발자가 직접 쿼리를 정의하는 것으로, @Query 속성안에서 nativeQuery 속성을 true로 설정하지 않았따면 기본적으로 JPQL 문법으로 동작이 된다.
하지만, 다양한 이유로 JPQL을 사용할 수 없을 때, JPA는 SQL을 직접 사용할 수 있는 기능을 제공하는데, 이것을 네이티브 쿼리라 한다. -
@DataJpaTest @SpringBootTest
스프링을 테스트 할 때 사용하는 어노테이션들.
@SpringBootTest full application config를 로드하여 통합 테스트를 진행하기 위한 어노테이션.
@DataJpaTest JPA 테스트와 연관된 config만 적용하고 @Component를 테스트하지 않는 어노테이션. -
롬복 @Builder
Builder 패턴을 직접 작성하지 않고, Lombok이 구현해놓은 패턴을 사용. -
자바8 스트림
Stream은 컬렉션, 배열등에 대해 저장되어있는 요소들을 하나씩 참조하며 반복적인 처리를 가능케하는 기능이다.
이러한 Stream을 이용한다면 불필요한 for문과 그 안에서 이루어지는 if문등의 분기처리를 쓰지않고도 깔끔하고 직관적인 코드로 변형할 수 있다. -
자바8 스트림 map
for문의 역할을 대신하여 데이터를 리스트 형태로 반환. -
자바8 스트림 collect
Stream의 데이터를 변형 등의 처리를 하고 원하는 자료형으로 변환하여 모아두는 기능을 하는 메소드. -
@JsonProperty
JSON 직렬화 시 설정할 수 있는 이름을 지정하는 어노테이션. -
부트스트랩5 Card
부트스트랩5에서 제공하는 카드모양의 콘텐츠박스. -
부트스트랩5 Form
부트스트랩5에서 제공하는 입력을 받는 폼. -
HTML form input type = "hidden"
숨겨진 입력 필드를 설정한다. 폼 제출 시 사용자가 변경해서는 안 되는 데이터를 함께 보낼 때 사용. -
JavaScript addEventListener click
사용자가 컨텐츠를 클릭하는 이벤트가 발생할 경우 특정함수를 호출하게 해준다. -
JavaScript querySelector
선택자를 받아서 선택자와 일치하는 문서 안의 첫번째 요소 반환.
document.querySelector('#id') // id라는 id 값을 검색 후 반환
document.querySelector('.class') // class라는 class 값 검색 후 반환
document.querySelector('a'); // a 태그를 검색 후 반환
document.querySelector('.abc > nobr'); // abc 클래스의 nobr태그 검색 후 반환
-
JavaScript querySelectorAll
선택자를 받아서 선택자와 일치하는 문서 안의 모든 요소 반환, 여러 요소 한번에 가져올 수 있음.
document.querySelectorAll('#id') // id라는 id 값을 검색 후 반환
document.querySelectorAll('.class') // class라는 class 값 검색 후 반환
document.querySelectorAll('a'); // a 태그를 검색 후 반환
document.querySelectorAll('.abc > nobr'); // abc 클래스의 nobr태그 검색 후 반환
document.querySelectorAll('.abc, #def'); // abc 클래스와 def라는 id 값을 검색후 반환
-
JavaScript 객체 리터럴
객체 리터럴 방식은 객체 생성 방식 중 가장 일반적이고 간단한 방법으로, 컨텐츠를 그대로 대입하는 방법임. -
JavaScript console log()
콘솔창에 괄호 안의 값이 출력. -
JavaScript fetch
JavaScript에서 서버로 네트워크 요청을 보내고 응답을 받을 수 있도록 해주는 메소드. -
JavaScript alert
사용자에게 중요한 내용이나 경고창을 띄워줄 때 주로 사용하는 메소드. -
JavaScript Location.reload()
Location.reload() 메서드는 새로고침 버튼처럼 현재 리소스를 다시 불러오는 메소드. -
JavaScript forEach 사용법
// Input
const arr = ['apple', 'kiwi', 'grape', 'orange'];
arr.forEach((item) => {
console.log(item);
});
/* output
apple
kiwi
grape
orange
*/
-
JavaScript Template Literals (ES6)
자바스크립트에서 문자열을 입력하는 방식.
var language = 'Javascript';
var expression = `I love ${language}!`;
console.log(expression); // I love Javascript!
-
JavaScript Remove
선택한 HTML 요소를 DOM 트리에서 삭제한다. 이때 삭제되는 요소와 연관된 jQuery 데이터나 이벤트도 모두 함께 삭제된다. -
PostgreSQL 장점
오픈소스, 무료 라이센스, 뛰어난 확장성, 지속중인 업데이트. -
JPA 초기화 전략
DB 환경을 보다 원활하게 할수 있도록 어플리케이션 시작할때 DB를 초기화함. -
JPA ddl-auto 설정
spring.jpa.hibernate.ddl-auto로 좀 더 상세한 데이터베이스 초기화 설정을 할 수 있다.
none : 사용하지 않음
create : 기존 테이블 삭제 후 테이블 생성
create-drop : 기존 테이블 삭제 후 테이블 생성, 종료 시점에 테이블 삭제
update : 변경된 스키마 적용
validate : 엔티티와 테이블 정상 매핑 확인 -
JPA 방언 설정
JPA가 직접 SQL을 작성하고 실행하여 DB의 종류(ANSI SQL, Oracle, MySQL, MS-SQL, PostgreSQL 등)마다 조금씩 다른 문법을 방언(Dialect)설정으로 해결 가능(JPA가 DBMS에 맞는 쿼리를 생성) .