글/개발

[개발/Spring] Soft delete vs Hard delete에 대한 나의 생각

현업에서 개발을 하면서 깨달은 사실은 사소해 보이는 데이터 또한 소중한 자산이라는 점입니다. 따라서 추후에 다시는 사용하지 않거나 데이터 분석이 필요 없는 데이터들을 제외하고는 보통 DB에 남겨놓는 편인데요. 여기서 Soft delete(논리삭제)와 Hard delete(물리삭제)가 등장합니다. 이번 포스팅에서는 Soft delete, Hard delete에 대해서 살펴보고 제 생각을 간단하게 정리해보려고 합니다. 0. Soft delete(논리 삭제), Hard delete(물리 삭제) 란? 말 그대로 논리적으로만 삭제하는 방법입니다. 논리삭제를 해도 물리적인 데이터는 DB에 그대로 남아있게 됩니다. 먼저 물리 삭제 예시를 들어보겠습니다. 일반적인 삭제 Delete 쿼리는 아래와 같습니다. 쿼리를 실행..

2023.03.29 게시됨

글/개발

[개발] Pass By Value vs Pass By Reference 란?

최근 첫 기술면접을 봤습니다. 면접은 무조건 여러 번을 봐야 한다는 말을 새삼 느끼게 되더군요. 면접 질문 중에 Pass by value, Pass by reference에 대해서 아시나요? 가 있었습니다. 이번 기회에 대해 제대로 알아보려고 합니다. 0. 자바스크립트(Javascript)에서의 Primitive Type(원시 타입) vs Reference Type (참조 타입) 각 언어마다 변수를 넘겨주는 방법은 다양합니다. 먼저 자바스크립트에서는 원시 타입과 참조 타입이라는 두가지 자료형이 있습니다. 원시 타입은 숫자(Number), 불린(Boolean), undefined, 문자열(String), null 이렇게 5가지가 있습니다. 참조 타입에는 객체(Object), 배열(Array), 함수(Fun..

2022.02.28 게시됨

글/개발

[Git] Git rebase, Git squash로 커밋 정리하기

최근에 회사에서 다른 프로젝트팀을 도와 translation작업을 한 적이 있습니다. branch를 새로 만들어서 git rebase 후, 작업을 해서 pull request를 올렸습니다. 당연히 이전에 제가 하지 않은 작업의 커밋까지 모두 올라갔고, 뭔가 정리를 해서 올려야겠다 라는 생각을 한 그 순간, 다른 팀원 분이 1분도 채 지나지 않고 comment를 달아주셨습니다. Squash and merge? git에 익숙하지 않은 저에게는 생소한 명령어였지만, 아 커밋을 정리해주는 명령어구나 라는 사실은 단 번에 알 수 있었습니다. 그래서 오늘은! Git Squash에 대해서 알아보려고 합니다. Git Squash 를 왜 써야 할까요? 협업을 진행하거나, 회사에서 소스코드를 수정할 때 보통 브랜치를 만듭..

2021.11.30 게시됨

글/개발

[개발]TDD / 테스트코드 란?

최근에 개발을 하면서 TDD, 테스트 케이스 등의 단어를 자주 접했다. 코드를 짜면서 점점 테스트 코드의 중요성을 알게 되었고 테스트 코드, 테스트 케이스 등 테스트를 이용한 개발이 무엇인지, 왜 중요한지에 대해서 정리해보려고 한다. TDD란 무엇인가? TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 테스트 주도 개발은 말그대로 테스트 코드를 먼저 작성하는 것부터 시작하면 되고 순서는 아래와 같다. 먼저, 항상 실패하는 테스트를 먼저 작성하고 테스트를 통과 시키기 위한 실제 코드를 작성한다. 다음으로 테스트가 통과하면 중..

2021.08.10 게시됨