[TIL] Stream 활용하기, CI/CD 파이프라인 개발, 엔티티 개발 협업
·
TIL
오늘 한 일팀원간 작업 현황 파악 및 목표 재설정Stream을 활용한 엔티티 연결, DTO 객채로 변환CI/CD 파이프라인 개발Index공부작업 내용팀원간 작업 현황 파악 및 목표 재설정오후4시, 저녁10시마다 팀원간의 작업상황을 수시로 체크하고 다음 날 진행해야 할 개발과정에 대한 진도를 다시 설정했다.나를 제외한 세 분이 I 성향을 갖고 있어서 소통이 항상 조용조용하고 말수가 없는 편이었지만 다들 최선을 다해주고 있는것 같아서 너무 감사하기도했고 조금은 답답한 마음도 들기도했다... ㅋㅋㅋㅋㅋㅋ 하지만 반대로 생각해보면 아직 개발을 많이 안해본 분들도 계시고 각자의 생각에 정리할 시간이 필요하기도하니 조금만 서로를 이해하면 다 그럴수 있다는 생각이 들었다.이렇게 각자 업무를 다시 분담하고 지금도 수시..
[CS -DB] Index 상식, JPA에서 자동생성하는 Index, Index가 많아지면 생기는 문제
·
면접 준비
데이터베이스 인덱스(Index)란? 인덱스가 많아지면 생기는 문제데이터베이스를 다루다 보면 '인덱스(Index)'라는 개념을 자주 접하게 된다. 인덱스는 데이터 검색 속도를 향상시키는 핵심적인 요소지만, 무분별하게 생성하면 오히려 성능 저하를 초래할 수 있다. 이번 글에서는 인덱스의 의미와 사용해야 하는 경우, 그리고 인덱스가 많아질 때 발생하는 문제까지 논리적으로 정리해 보겠다.1. 인덱스(Index)란?인덱스(Index)는 데이터베이스 테이블에서 특정 컬럼의 값을 빠르게 찾을 수 있도록 도와주는 자료구조이다. 책의 목차와 비슷한 역할을 하며, 특정 데이터를 검색할 때 테이블 전체를 탐색하는 것이 아니라, 인덱스를 통해 빠르게 원하는 데이터를 찾을 수 있다.인덱스의 기본 개념과 종류1) B-Tree (..
[TIL] Filter예외 처리, 서버 배포
·
TIL
오늘 한 일Entity 연관관계 설정서버 배포 준비Filter 로직 수정작업 내용Entity 연관관계 설정각 팀원들이 생성한 Entity를 전체적으로 검토하고 잘못된 엔티티나 필드명이 있는지 점검하는 시간을 가졌다.이 과정 또한 PR을 통해 코멘트를 달고 해결하는 과정이 이루어졌다. 그 과정에서 UUID, ID라는 변수명이 각 타입에 맞지 않게 생성되어있는 것을 발견하고 추가로 컨벤션을 작성하였다.서버 배포 준비Docker와 GitActoins를 사용한 배포 방식과 Code Deploy와 Docker를 사용한 배포 방식을 고민하게 됐다.이전에는 Docker와 GitActions를 사용해봐서 새로운 방식으로 배포방식을 사용해볼까 고민했었다. 하지만 Code Deploy는 AWS중심의 배포 방식이라 이후에 ..
[TIL] 팀원간 코드 리뷰 진행 및 인덱스가 많아지면 생기는 문제, JPA의 flush 발생하는 조건
·
TIL
## 오늘 한 일- 팀원 간 코드 리뷰- 튜터님과 상담- 이전에 진행중이던 프로젝트 리팩토링- 블로그 스터디 ## 진행 내용 ### 팀원 간 코드 리뷰팀장으로써 무게는 아주 무거웠다... 테이블 명세와 API명세를 수시로 업데이트해야하고 프로젝트의 전반적인 내용을 모두 숙지하고 있어야 하기에 엔티티의 연관관계를 팀원들이 확실히 인지하고 있을 수 있도록 도식화해서 이해하셨을진 모르겠지만? 열심히 업데이트를 해주었다.코드에서 문제점을 찾고 전체적으로 회의할 부분은 별도의 회의시간을 통해 수정할 내용을 공유했으며, 문법이나 예외가 발생할만한 상황들을 서로 코멘트를 남기고 수정할 수 있도록 request했다.  오늘안에 팀원들이 모두 pr을 해줘야 전체적인 체크 후 엔티티 결합 및 서비스 로직을 시작할텐데 매우..
[TIL] SoftDelete 개발 방식, 서브 모듈 설정, PR 및 Postman으로 API문서 공유하기
·
TIL
오늘 한 일SoftDelete 코드 개선서브 모듈 설정팀원들과 PR 후 코드 리뷰Postman TeamworkSpace 개설 및 Auth, User API 테스트작업 내용SoftDeleteSoftDelete방식으로 개발을 하다보니 이 방식에 대해서 여러 방법이 있다는 것을 알게되었다. @SoftDelete를 적용하고 @SQLRestriction을 사용하여 삭제되지 않은 유저를 가져오는 방식, @SQLDELETE로 직접 생성한 필드를 관리하는 방법(@SQLRestriction방법은 동일) 등 다양한 전략이 존재했다.나는 @SQLDELETE 방식을 사용했으나 자식 엔티티를 자동으로 함께 SOFTDELETE하는 방법을 고려한다면 @SoftDelete 방식으로 바꿔서 사용해보는게 좋을까 생각했다.그 외에 번거로..
[JPA] Soft Delete 개발 방법(Hard Delete과의 차이)
·
Spring/JPA
Soft Delete란?이름 그대로 부드러운 삭제이다. Hard Delete는 데이터베이스 내의 데이터를 실제로(물리적) 삭제를 해버린다.Soft Delete는 논리적으로 삭제를 표기하는 방법이다. 현업에서는 데이터를 몇 년간 보존해야 하는 규정이 존재할수도 있기에 몇 년간 데이터를 보관해두다가 Batch 작업을 통해 일괄적으로 데이터를 처리하기도 한다.또한 잘못 삭제했을 경우 백업이 가능하기에 사용하기도 한다.Soft Delete의 단점?데이터베이스에 계속해서 데이터가 쌓이므로 데이터베이스의 용량이 커질 수 밖에 없다. 이후 배치작업을 통해 데이터를 삭제하는 과정이 필요하다.SELECT조회 시 불필요한 검색 조건을 추가해야 한다.Where을 통한 필터링이 꼭 추가되어야 한다.기존의 Soft Delete..