Chaeyeon0 / GreenDay_Study

여은개의 공부 일지
0 stars 0 forks source link

[20240521] 깃 문제 및 히스토리 DB 외래키 제약조건 문제 해결 #17

Open Chaeyeon0 opened 1 month ago

Chaeyeon0 commented 1 month ago

네 일단 어제 적었어야 할 내용들과 + 오늘 추가 내용을 합쳐서 적어보겠습니다

깃 문제

스크린샷 2024-05-20 002345

그리고 여러분한테도 알립니다 ! 먼저 깃 충돌이 일어났을 때 인텔리제이에서 어떻게 뜨게 되냐면

<<<<<<< HEAD
spring.application.name=green_day_history
spring.datasource.url=jdbc:mysql://greenday.cn84e8kaqjsg.ap-northeast-2.rds.amazonaws.com:3306/greenday_history
spring.jpa.hibernate.ddl-auto=update
spring.profiles.include=aws
=======
spring.application.name=greenday_diary
spring.datasource.url=jdbc:mysql://greenday.cn84e8kaqjsg.ap-northeast-2.rds.amazonaws.com:3306/greenday_diary
spring.jpa.hibernate.ddl-auto=update
spring.profiles.include=aws
>>>>>>> branch-to-be-merged

### IntelliJ IDEA ###
application-aws.properties

>>>>>>> b02efa320ff3f50ba56f7b38c106fab476e42990

이런 식으로 뜨는데 먼저 충돌이 일어나면 파일을 열고 충돌 부분을 확인합니다:

<<<<<<< HEAD와 ======= 사이의 부분은 현재 브랜치(HEAD)의 내용이고 =======와 >>>>>>> branch-to-be-merged 사이의 부분은 병합하려는 브랜치(branch-to-be-merged)의 내용 !!

사실 이거에 대한 문제는 대부분 수동으로 수정하면 돼요.. 충돌을 해결하기 위해 두 개의 변경 사항 중 하나를 선택하거나, 둘을 합쳐서 최종 결과를 만들어 나가면 됩니다

일단 히스토리 기능 (기본 세팅)이 현재 사용될게 아니라 사진 처럼 히스토리를 서브로 파일을 뺐습니다. 이 부분에 대해서 충돌이 일어나지 않으려면 아마 남은 기능 구현도 이거를 고려해서 프로젝트 구조를 재구성 해보는게 좋을 것 같네요

그리고 마지막으로 있던 문제 스크린샷 2024-05-20 174725

자바 파일이 빨갛게 뜨는 부분이였는데요 (이외에 부분은 이전 설명으로 해결되었음) 그냥 머지가 안되어서 그런거였습니다 (커밋을 안 해서) 무서워서 안 하고 있었는데 데스크탑에서 알려주는대로 오류 고쳐나가고 제외 시킬 파일들을 제외를 하니 빌드도 되고 문제 없이 커밋 할 수 있었습니다.

최종적으로 일기 기능은 메인에 머지 했어요 하지만 제가 히스토리를 구현할 때 일기 내용을 외래키로 가져오는 과정에서 일기 기능 코드를 수정할 수도 있게 될 것 같습니다. 이후 문제 없도록 할게요 ..!!

히스토리 DB

일기 내용을 히스토리 외래키로 가져오는 문제를 해결했습니다 (엔티티와 dto 코드는 써놓은 상태)

외래키 제약 조건에 대한 인덱스 없는게 문제였음 !

해결 방안은

  1. 참조하는 열에 인덱스 추가: 외래 키가 참조하는 열에 대해 인덱스를 추가하여 참조된 열에 대한 검색을 빠르게 할 수 있도록 함. 이를 위해 'diary' 테이블에서 'diary_content' 열에 인덱스를 추가

  2. 외래 키 제약 조건 명시적으로 정의: . 'history' 테이블에서 'diary_content_id' 열에 대한 인덱스를 명시적으로 추가하여 문제를 해결

-> 전 1번을 선택하여 해결해씁니다 !!