[JPA] Soft Delete 개발 방법(Hard Delete과의 차이)
·
Spring/JPA
Soft Delete란?이름 그대로 부드러운 삭제이다. Hard Delete는 데이터베이스 내의 데이터를 실제로(물리적) 삭제를 해버린다.Soft Delete는 논리적으로 삭제를 표기하는 방법이다. 현업에서는 데이터를 몇 년간 보존해야 하는 규정이 존재할수도 있기에 몇 년간 데이터를 보관해두다가 Batch 작업을 통해 일괄적으로 데이터를 처리하기도 한다.또한 잘못 삭제했을 경우 백업이 가능하기에 사용하기도 한다.Soft Delete의 단점?데이터베이스에 계속해서 데이터가 쌓이므로 데이터베이스의 용량이 커질 수 밖에 없다. 이후 배치작업을 통해 데이터를 삭제하는 과정이 필요하다.SELECT조회 시 불필요한 검색 조건을 추가해야 한다.Where을 통한 필터링이 꼭 추가되어야 한다.기존의 Soft Delete..
[Github] Yml파일 서브모듈에서 불러와서 안전하게 사용하기
·
Spring
yml파일을 사용하게 되면 팀원들과 함께 사용할 데이터들을 정보로 저장해둬야 하지만 예민한 정보들이 함께 들어있는경우 섣불리 Github에 push할 순 없다. private 레포지터리라면 상관없지만 public이라면 더더욱 그렇다. 그렇다면 어떻게 yml파일을 github에 올리지 않고 사용할 수 있을까?다양한 방법들중 오늘 소개할 방법은 Submodule 이라는 개념을 사용해서 기존 레포지터리의 하위 레포지터리를 연결해 가져오는 방식을 사용하려고 한다.서브모듈의 장점환경 설정의 중앙 집중화여러 프로젝트에서 동일한 설정을 하게 될 경우, 별도의 서브모듈로 yml파일을 가져오기 때문에 한 곳에서만 yml파일을 생성하고 기록해두면 된다.이 개념은 MSA환경의 Config서버와 동일한 방식으로 봐도 될 것 ..
[TIL] Spring Security 예외 설정 , S3 설정, JWT 구현, JPA Auditawre
·
TIL
오늘 한 일Convention정리Spring Security 환경 설정 및 필터 구현S3 이미지 컴포넌트 개발JWT 파싱 및 유효성 검사 기능 개발JPA AuditAware 컴포넌트 개발작업 내용Security 환경 구현Security의 인증 부분을 항상 구현해왔으나 이전 구현과정에서 항상 막혔던 것이 예외 발생시 처리 방법이였다.기존의 GlobalExceptoinHandler로 예외내용에 대해 전파가 되지 않아 애를 먹었는데 드디어 해결방법을 찾아냈다.이 또한 별도의 포스팅으로 남길것이나 여기에 간단히 이미지와 코드를 남겨두려고 한다.이미지처럼 Filter는 DispatcherServlet의 이전에 요청을 감지하고 filterChain에 의해 순차적으로 수행된다.이 과정에서 인증/인가 작업을 수행하거나..
[TIL] 패키지 전략 및 토큰과 세션 개념 정리, 서비스와서비스끼리 의존관계를 갖게 하지 않는 이유
·
TIL
오늘 한 일 (회의 및 튜터님 조언 중심)패키지 구성 방식: 도메인 중심MSA에서는 계층형을 더 자주 사용 (관련 공부 필요)참고 자료: https://zkdlu.tistory.com/2다국어 설정 논의예외 메시지를 한국어로 제한할지 여부결론: 영어로 설정이후 다국어 지원 추가 예정예외 커스텀 방식모든 예외 메시지 커스텀 → ✅도메인별 예외 메시지 분리 → ✅보안 및 인증Spring Security + JWT 적용 필요JWT는 회원 및 API에서 인증된 유저인지 확인하는 어노테이션에서 사용즉시 작업 필요 → 회원 및 보안 담당 팀원 진행Jira 도입도입 여부: ✅이유: 티켓별로 개발 진행 상황 및 이슈 공유 가능🚀 프로젝트 진행 플로우 (튜터님 조언)1️⃣ 전역 설정 (팀장 진행)GlobalExcept..
[TIL] API Document 피드백 수렴 및 기술, 컨벤션 회의
·
TIL
오늘 한 일API Document , Table Document 피드백 수렴기술 스택 선정Git Commit, Branch Convention 설정1차 회의록 작성작업 내용블로그 포스팅을 통해 Restful API에 대해 별도로 기록하였다.API Document 수정 과정API 문서를 하루동안 정신없이 작업하다보니 실수도 많았고 수정해야 할 부분이 중간중간 많이 보였다.크게 수정 내용을 구분해보면 다음과 같았다.Role 분배자원 표현 수정Method 수정첫 번째로 Role의 분배는 참으로 모호했다. Manager라는 역할을 어떤 역할로 가정하고, 어떤 상황까지 가정해서 부여해야 할지 고민끝에 매장에 대한 등록, 삭제는 불가능하지만 영업 시간, 메뉴 등록,추가,수정,삭제등 가게의 전반적인 운영을 할 수 있..
[Restful API] Restful한 API 문서 작성법, REST API 성숙도 모델
·
Spring
스파르타의 자바 단기심화 훈련에서 첫 번째 프로젝트를 시작했다.첫 프로젝트의 리더를 맡았고 첫 번째 날 과제는 API Document, Table Document, ERD 작성, System Architecture를 작성하는 것이었다. 거즘 20시간밖에 남지 않았고 팀원분들은 일정이 있어 요구사항을 전반적으로 혼자 봐야하는 상황이 생겼다.이 과정에서 내가 튜터님에게 듣고 공부한 것들을 정리해볼텐데 오늘은 Restful API를 어떻게 작성하는가를 실제 현업자 튜터님들에게 들은 내용과 이론 기반으로 정리하려고 한다.Restful란?REST(Representational State Transfer)는 클라이언트와 서버 사이에서 HTTP 프로토콜을 활용하여 웹의 장점을 활용할 수 있는 하나의 프로토콜이다.자원..