brunch

You can make anything
by writing

C.S.Lewis

by 김유환 Oct 03. 2019

8. 데이터 수정 및 삭제하기

TablePlus를 이용해 데이터베이스에 있는 데이터 수정 및 삭제!

배경

지난 테이블에 데이터 삽입하기 글에서는 TablePlus를 이용해서 테이블에 데이터를 추가해보았습니다. 이번 글에서는 이렇게 추가된 데이터를 수정하거나 삭제하는 방법에 대해 다루도록 하겠습니다. 오늘은 조금 간단하게 진행할 예정입니다 :)


데이터 수정의 필요성

데이터 수정은 말 그대로 이미 들어가 있는 데이터를 업데이트하는 작업입니다. 잘못 데이터를 입력했을 경우에도 데이터 수정 작업을 진행하지만, 그렇지 않은 경우에도 데이터 업데이트가 필요한 경우가 많이 있습니다. 


지난 시간에 사용했던 users 테이블을 예로 들어봅시다. 사용자의 나이 정보를 age라는 열에 삽입해 두었습니다. 생각해보면, 나이 정보는 해가 지날때마다 1씩 증가해야합니다. 바로 이때, 데이터 수정 작업이 필요합니다. 다른 말로는 데이터 업데이트 작업이라고도 부릅니다.


한해가 지나서 1월 1일이라고 가정해봅시다. 이때에는 한명 사용자의 나이 정보를 업데이트해야하되는 것이 아니라 모든 사용자의 나이를 변경해야합니다. 사실, 나이 변경과 같은 전체 데이터의 업데이트가 필요한 경우는 가급적이면 피하는게 좋습니다. 데이터가 적을때야 문제가 없지만, 사용자 가입수가 굉장히 많아지면 전체 데이터를 업데이트하는것은 매우 큰 비용이 발생하기 때문입니다. 이러한 비용을 최소화하기 위해서 보통 나이와 같이 계속 변경되는 데이터는 주민번호 정보를 기반으로 유추하는것이 일반적이라고 할 수 있습니다.


잠깐! 여기서 이야기하는 비용이 무엇일까요?

홈쇼핑 사이트에서 핫딜을 구매하기 위해 접속했다가 서비스가 너무 느려져서 포기한 경험이 있을 것입니다. 회사 입장에서는 서버가 너무 느려져서 놓치게되는 사용자 한명 한명이 비용입니다. 1월 1일에 데이터베이스에 저장되어있는 모든 사용자의 나이를 1 증가시키는 작업은 컴퓨터를 느리게하는 원인입니다. 마치, 우리가 컴퓨터에 너무 많은 프로그램을 켜면 메모리 부족으로 컴퓨터가 느려지는 것과 동일한 원리입니다. 사용자가 굉장히 많은 서비스에서 1월 1일에 데이터를 업데이트해버리면 새로운 데이터를 추가하는 작업, 즉 회원가입 동작이 매우 느려질 수 있습니다. 이때 놓치게 되는 회원들이 여기에서는 비용이라고 생각하시면 됩니다 :) 


데이터 수정해보기

이제 TablePlus 에서 데이터 수정 작업을 진행해보도록 합시다. 기존과 같이 users 테이블을 선택하고 원하는 값을 2번 클릭해서 변경하고, 커밋을 진행하면 됩니다. 예제로, 아래와 같이 김단이라는 사람의 나이를 1 증가시켜서 34로 변경시켜보도록 합시다.


데이터 삭제해보기

데이터 삽입과 수정이 된다면 당연히 데이터 삭제도 가능해야할 것입니다. 삭제는 물론 데이터를 지우는 것을 의미하고, 예를 들어 회원이 탈퇴한 경우에 사용자 한명의 데이터를 지우는 작업입니다. 기억해야하는 것은 데이터 삭제 역시 데이터 삽입과 비슷하게 최소 단위가 하나의 행이라는 것입니다. 하나의 행 안에서 열이 하나씩 하나씩 지워지는게 아니라는 점을 다시 한번 기억해주세요. 


TablePlus 에서 데이터 삭제를 진행하는것은 매우 간단합니다. 삭제하고자 하는 데이터 위에서 마우스 오른쪽 클릭을 해서 Delete를 선택한 후, 커밋을 진행하면 됩니다.


데이터 삽입과 마찬가지로 데이터 삭제 역시 한번에 여러개의 행을 지울 수 있습니다. 커밋하기 전에 원하는 만큼의 행을 삭제하면 됩니다.


되돌리기 불가능

데이터 수정과 삭제시 주의해야할 점은 한번 변경한 혹은 지운 데이터는 다시 되돌리기 불가능하다는 것입니다. 스프레드시트의 경우 되돌리기 기능을 통해서 실수를 계속해서 수정할 수 있습니다. 하지만, 데이터베이스는 이를 허락하지 않습니다. 왜냐하면, 데이터베이스는 여러 명의 사람들이 일관되게 데이터에 접근하게 만드는것이 최우선 목적이기 때문입니다. 간단한 예시를 통해 되돌리기 기능을 지원하는게 왜 문제가 되는지 살펴봅시다.


오른쪽 그림과 같이 A와 B는 각자 자신의 컴퓨터에서 서버에 설치된 데이터베이스에 접속해서 사용자 정보를 입력하는 작업을 진행하고 있다고 가정해 봅시다. 12시 00분에 A는 사용자 '김단'에 대한 데이터를 삽입했고, 12시 02분에 사용자 '이하늘'의 데이터를 삽입했습니다. 그 사이 B는 사용자 '김청'의 데이터를 12시 01분에 삽입했습니다. 이하늘의 데이터를 입력하고나서 A가 데이터를 잘 못 입력했다는 것을 깨닫고, 되돌리기를 2번 수행했다고 가정해봅시다. 그러면, B는 자신도 모르는 사이에 자신이 입력한 '김청' 의 데이터가 사라져버리게 됩니다.


데이터베이스는 특정 권한을 가지고 있는 사용자 (예: 운영자) 계정에서는 이러한 되돌리기를 가능하게 지원하고 있지만, 이는 데이터가 없어져버리는 것을 감안하고 복구해야 할때 사용하는 기능입니다. 일반적인 데이터 수정과 삭제는 되돌릴 수 없다는 것을 기억하시면 됩니다. 이 때문에, 잘 못 정보를 입력했을 경우 되돌리기가 아닌 다시 한번 데이터 삭제 혹은 수정을 진행하시면 됩니다.


마치며

오늘은 데이터 수정과 삭제에 대해 알아보았습니다. 데이터 수정과 삭제는 매우 간단한 기능이긴 하지만 매우 자주 사용하는 기능이기도 합니다. 다음 글에서는 원하는 데이터를 선택적으로 살펴보는 시간을 가지도록 하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari