이미지 출처: wikipedia

 일단 굳이 모든 경우에 soft delete를 하는 건 안 좋은 것 같다. 대충 생각해보면 isDeleted라는 컬럼이 true, false로 나뉘는 거니까 경우에 수가 두 배로 늘어나고, 생각해야할 것도 늘어난다. 코드도 늘어난다. 그래서 적재적소에 잘 쓰되 좀 간편하게 사용하기 위해서 repository나 manager같은 데이터를 다루는 객체에서 삭제되지 않은 것만 가져오도록 따로 만들어 놓는 것도 좋은 생각같다. 예시로는 화해 기술블로그에 나와있다.

 위에서 말한 적재적소는 고객 cs가 많거나 log데이터 같은 걸 가지고 있으면 좋을 때인 것 같다. 고객 cs가 많은 업종 같은 경우에는 history가 있을 때 상황을 이해하고 설명하기 좋기 때문이다. log 데이터 같은 걸로 이용하기 위해서 soft delete를 사용해 놓으면 데이터분석에도 좋을 것 같다. hard delete로 지워버리면 나중에 데이터 분석을 하고 싶을 때 그 시점에 데이터는 비워져 버리는 거니까.

 번외로 왜 컬럼명, 변수명을 지을 때 type, state이런 걸로 안 짓는지 프로젝트 진행하면서 잘 알게 되었다. 나중에 다른 field가 추가될 때, 또 다른 타입, 상태 같은 걸 추가하고 싶을 때 아주 찝찝한 상황이 온다. 그런 상황에서는 씁쓸하게 comment를 남겨 놓았지만, 다른 테이블 볼 때 comment가 없으면 '이건 이건가..?'라고 추측하거나 만든 사람한테 물어봐야해서 좀 귀찮은 상황이 오더라...

합격!

5월 31일 날 SQLD 시험을 봤는데 한 달만에 시험 결과가 나왔네요. 다행이 두 과목 모두 50% 이상 맞췄고, 총점 60점 이상으로 합격했네요. 사실 SQL을 직접적으로 사용하려는 목적보다 python Django를 이용하면서 데이터베이스 지식이 필요하기도 하고, 데이터를 다루는데 RDBS에 대한 기본 지식은 갖추어야 할 것 같아 자격증 공부를 해보았습니다. 기본지식을 쌓고자 하는 목적이었기 때문에 한 달만에 따고자 하는 마음가짐으로 임했습니다.

60점 이상이면 합격

 

먼저 저는 컴퓨터공학 전공자는 아니고, 프로그래밍에 관심있는 사람 정도로 생각해주시고 읽어주세요.

제 생각에 전공자가 아니더라고 한 달이면 SQLD 자격증을 딸 수 있다고 생각합니다. 왜냐하면 합격기준이 높지 않기 때문입니다. 그렇다고 문제의 난이도가 엄청 낮지는 않습니다. 그런데 왜 한 달이면 충분히 자격증을 딸 수 있느냐? 어려운 문제는 꽤나 풀기 난해하지만 쉬운 문제만 다 맞추어도 60점을 충분히 넘을 수 있기 때문입니다.

공부 방법은 먼저 이론은 SQL 자격검정 이론서 두꺼운 책을 시중에서 팔고 있지만 그걸로 공부하지는 않고, 구글이나 네이버 검색으로 정리되어 있는 것을 읽거나 dbguide.net 에서 찾을 수 있는 정보로 공부를 했는데 지금은 이 페이지가 이사를 해서 잘 안나오는 것 같습니다...

그리고 연습문제는 데이터산업진흥원에서 출판한 SQL 자격검정 실전문제집을 사서 풀어보았습니다. 이게 정말 도움이 되는게 SQLD 시험이 아래 책에서 나온 문제와 비슷하게 출제되기 때문에 저는 이 책을 세 번정도 읽어보고 합격할 수 있었던 것 같습니다.

SQL 자격검정 실전문제

지금까지 프로그래밍을 하면서 옵티마이저 같은 개념은 적용해본 적이 없는데 Django를 다루면서 데이터베이스를 이용해보니 Many-to-Many와 같은 관계나 데이터베이스의 기본지식을 알고 있는 것이 매우 도움이 된 것 같습니다. 이래서 컴퓨터공학에서 왜 데이터베이스 과목을 필수로 배우는지 이해할 수 있는 부분이었습니다.

+ Recent posts