TIL_250220

듀듀·2025년 2월 20일

spring_TIL

목록 보기
8/53

오늘 진도가 많이 나갔다 (도움 받아서)

Soft delete(논리삭제) / Hard delete(물리삭제)

데이터베이스에서 데이터를 삭제하는 방법에는 물리삭제, 논리삭제 2가지가 있다.

우리가 채택한 방법은 soft delete이므로 soft delete에 대해 먼저 알아보자.

soft delete(논리삭제) 는 SQL의 UPDATE 명령어를 사용하여 삭제 여부를 알 수 있는 컬럼에 데이터가 삭제되었다는 값을 넣어서 표현한다. 삭제를 해도 삭제하기 전의 데이터를 보관해야 할 경우에 사용한다.

hard delete(물리삭제) 는 SQL의 DELETE 명령어를 사용하여 직접 데이터를 삭제하는 방법이다. 삭제 대상인 데이터가 추후에 조회할 필요 없을 때 사용한다.


연관관계 매핑

  • One To One : 일대일(1:1)
  • One To Many : 일대다(1:N)
  • Many To One : 다대일(N:1)
  • Many To Many : 다대다(N:M)

@JoinColumn

매핑할 외래키를 설정한다.

@mappedBy

엔티티는 양방향으로 매핑하되 한쪽에게만 외래키를 줘야하는데, 이때 사용되는 속성값이다.
=> 어떤 객체가 주인인지 표시하는 속성


영속성 전이(Cascade)

부모 엔티티가 영속화될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 때 자식 엔티티도 삭제되는 등 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 전이되는 것

Cascade 종류

  • CascadeType.ALL: 모든 Cascade 적용
  • CascadeType.PERSIST: 엔티티를 영속화할 때, 연관된 하위 엔티티도 함께 유지
  • CascadeType.MERGE: 엔티티 상태를 병합할 때, 연관된 하위 엔티티도 모두 병합
  • CascadeType.REMOVE: 엔티티를 제거할 때, 연관된 하위 엔티티도 모두 제거
  • CascadeType.DETACH: 부모 엔티티를 detach() 수행하면, 연관 하위 엔티티도 detach()상태가 되어 변경 상항을 반영하지 않음
  • CascadeType.REFRESH: 상위 엔티티를 새로고침할 때, 연관된 하위 엔티티도 모두 새로고침

여기서 의문
orphanRemoval은 무언인가............

orphanRemoval

CascadeType.Remove와 orphanRemoval = true 둘 다 부모 엔티티가 삭제되면 자식 엔티티도 삭제된다. 두 옵션은 부모 엔티티를 삭제할 때는 동일하게 동작하지만, 부모 엔티티에서 자식 엔티티와의 관계를 제거할 때 차이점을 가진다.
CascadeType.Remove는 부모 엔티티가 자식 엔티티와의 관계를 제거해도 자식 엔티티는 삭제되지 않고 그대로 남아있다.
orphanRemoval = true는 부모 엔티티가 자식 엔티티와의 관계를 제거하면 자식은 사라진다.


Git

Git 명령어를 계속 까먹는다
git init: 새로운 저장소 생성 @@@초기화이므로 프로젝트를 새로 생성할때만 해야 함@@@
git clone 사용자명@호스트:/원격/저장소/경로: 저장소 복제
git add 파일명
git add . : 전체 파일 추가
git commit -m "메시지": 커밋 생성
git status: 파일 상태 확인
git remote add origin [내 깃허브 주소]: github repository랑 내 로컬 프로젝트 연결
git remote -v: 잘 연결되었는지 확인
git branch: 브랜치 목록
git branch 브랜치 이름: 새 브랜치 생성
git checkout -b 브랜치 이름: 브랜치 생성 및 이동
git checkout master: master branch로 되돌아 옴
git branch -d 브랜치 이름: 브랜치 삭제
git push origin 브랜치 이름: 만든 브랜치를 원격 서버에 전송
git push origin master: master 서버에 업로드
git pull: 원격 저장소의 변경 내용이 현재 디렉토리에 가져와서 병합



오늘 진실의 방에서 엄청난 가르침을 받았다.
6일동안 나 혼자 끙끙거리며 코딩한 것보다 오늘의 6시간이 알찼다.
이때까지의 나는 개발자의 '개' 정도였다면 오늘로써 '개ㅂ'정도까지 간 것 같다.
코드 분석도 열!심!히! 해야쓰겄다

0개의 댓글