반응형

전체 글 22

[JPA] JPA란?

JPA(Java Persistence API)란?자바 진영의 ORM 기술에 대한 API 표준 명세 (인터페이스 집합체)JPA는 애플리케이션과 JDBC사이에서 동작한다.ORM (Object-relational mapping)이란?이름 그대로 객체와 관계형 데이터베이스를 매핑하는 것 ORM 프레임워크란?ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치를 해결해준다.ORM 프레임워크를 사용하면 객체를 DB에 저장할때 SQL문을 직접 작성하는 것이 아닌 객체를 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 자동으로 SQL문을 생성해서 DB에 저장한다.ORM 프레임워크를 사용하면 CRUD 할때마다 쿼리를 작성해야하는 반복적인 작업을 줄일 수 있고기존의 SQL 중심의 코딩에서 벗어나 객체 중심의..

Java 2021.12.03

[JPA] orphanRemoval

orphanRemoval = 고아객체 제거고아객체부모 엔티티와 연관관계가 끊어진 자식 엔티티PK값이 NULL로 변한 자식객체 orphanRemoval=true- 고아객체를 자동으로 삭제해주는 코드 CascadeType.REMOVE = orphanRemoval=true 차이점?CascadeType.REMOVE : 자식객체 삭제 X (삭제 동작을 할때 작동하기 때문)orphanRemoval=true : 자식객체 삭제 O (자식객체에서 부모객체를 참조로 확인하기 때문)

Java 2021.12.02

[JPA] CASCADE 란?

CASCADE는 JPA 영속성 전이를 의미한다.타입은 Enum이다. 영속성 전이부모 엔티티가 영속화될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 때 자식 엔티티도 삭제되는 등 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 전이되는 것을 의미  CascadeTypeALL → 모든 Cascade 적용PERSIST → 엔티티를 영속화할 때, 연관된 엔티티도 함께 유지MERGE → 엔티티 상태를 병합(Merge)할 때, 연관된 엔티티도 모두 병합REMOVE → 엔티티를 제거할 때, 연관된 엔티티도 모두 제거REFRESH → 상위 엔티티를 새로고침(Refresh)할 때, 연관된 엔티티도 모두 새로고침DETACH → 부모 엔티티를 detach() 수행하면, 연관 엔티티도 det..

Java 2021.12.01

REST API란?

REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다. REST (Representational State Transfer) 란? ✔ 정의 1. 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처 스타일 2. 네트워크상에서 Client와 Server 사이의 통신 방식 중 하나 3. 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미 ✔ 구체적인 개념 HT..

개발지식 2021.11.19

[초보개발자] HashMap 사용하기 (put, get, remove, Entry)

HashMap이란? Map Interface의 한 종류로 Key - Value 값으로 데이터를 묶어 저장할 수 있는 클래스입니다. 해싱 기법을 사용하므로 많은 양의 데이터중에서 원하는 데이터를 빠르게 가져올 수 있습니다. 해싱기법이란? 해시함수(Hash Function)를 이용해서 데이터를 해시테이블(Hash Table)에 저장하고 검색하는 기법입니다. 해시함수는 데이터가 저장되어 있는 곳을 알려주며, 다량의 데이터 중에서 원하는 데이터를 빠르게 찾을 수 있는 특징이 있습니다. HashMap 이외에도 HashSet / HashTable등의 클래스에서 해싱 기법을 사용합니다. HashMap 생성하기 HashMap 생성 시 java.util.HashMap 클래스를 import 해주어야 합니다. 안에는 Key..

Java 2021.07.11

[초보개발자] ArrayList 배열 사용하기

자바의 일반 배열[Array]은 크기를 한번 정하면 변경할 수 없지만 ArrayList 클래스는 크기가 가변적으로 변하기 때문에 자바에서 많이 사용하는 클래스중 하나입니다. ArrayList는 데이터 추가/삭제 시 메모리가 재 할당되기 때문에 속도면에서는 배열보다 느리지만 한번 선언하면 데이터 크기/수 상관없이 사용이 가능하기 때문에 Java 공부시 필수로 익혀야 하는 클래스입니다. ArrayList 기본 사용방법을 설명하겠습니다. ArrayList 생성하기 ArrayList 생성시 java.util.ArrayList를 import 해주어야 하고 안에 원하는 데이터 유형을 넣어주면 됩니다. import java.util.ArrayList; public class ArrayList_Test { public..

Java 2021.07.10

[초보개발자] GitHub 프로젝트 가져오기 [pull, fetch, clone]

깃허브 원격저장소에 있는 프로젝트를 로컬저장소로 가져오는 방법은 3가지가 있다. 1. git push 2. git fetch 3. git clone 나는 학원에 있는 윈도우 컴퓨터로 교육을 받고 교육이 끝난 후 그 날 배운 내용과 프로젝트를 정리하여 깃허브 저장소에 push를 한다. 그리고 집에서 개인 노트북에 학원에서 push 했던 변경사항을 그대로 가져와 공부 환경을 똑같이 맞춰 놓고 복습한다. 이 처럼 한대의 컴퓨터가 아닌 여러 대의 컴퓨터에서 원격저장소의 내용을 그대로 가져오는 방법을 설명하겠다. 아직 깃허브 저장소를 만들지 않은 사람이라면 아래 포스팅을 참고! https://sin0824.tistory.com/8 💣 git pull = git fetch + git merge pull과 fetch..

Git 2021.07.01

[초보개발자] Mac에서 Homebrew로 Git 설치하기

[초보개발자] Mac에서 Homebrew로 Git 설치하기 Mac 으로 개발을 공부하면서 익숙해지기 어려웠던건 터미널(Terminal)을 이용한 소프트웨어 다운로드였다. 비 전공자였던 나는 커맨드창이 익숙치가 않아 공부 초기에 많은 어려움이 있었지만 지금은 대부분의 소프트웨어와 프로그램을 Homebrew를 이용하여 다운받고 있을 정도로 잘 사용하고 있다. Homebrew 란? Homebrew는 소프트웨어 패키지 관리 시스템이다. 보통 웹 프로그램을 다운받을때 사이트에 접속하고 다운로드 페이지로 이동한 후 Zip파일 또는 Dmg파일을 다운받고 압축을 해제하는 방식으로 프로그램을 다운받는다. 과정도 귀찮고 프로그램 삭제 또는 업데이트시 불필요한 데이터가 남아 쌓이게 된다. Homebrew를 이용하면 간단한 ..

Git 2021.06.29
반응형