본문 바로가기
Database/SQL

SQL 개발자

by oncerun 2022. 1. 23.
반응형

[유선배]  SQL 전문가 정미나

 

SQL전문가 정미나

안녕하세요, SQL전문가 정미나입니다. 이 채널의 궁극적인 목표는 전공자 포함 Database에 관심이 있는 초보자분들께 조금이나마 도움을 드리는 것입니다. 지금은 어떨지 모르겠지만 제가 학부생

www.youtube.com

 

 

매우 꼬꼬마 시절 현재 재직 중인 회사는 모든 비즈니스 로직과 부가기능을 대부분 SP를 활용한다. 데이터베이스를 극도로 활용해 애플리케이션을 만드는 구조인데, 이때 가장 필요한 건 데이터를 추출, 가공, 통계 또는 RDBS의 종류에 따른 고유의 기능, 인덱스, Batch, 패키지 등등 다양한 데이터베이스 기술에 기반한 개념이 필요했다.

 

SQL을 정식으로 공부하지 않았다. 필요할 때만 개념과 동영상을 보면서 이해하고 적용했는데, 이때 큰 도움을 받은 유튜브 채널이 SQL 전문가 정미나 님이다. 그래서 최근 책을 집필하셨다해서 응모했는데 당첨되어서 기분이 정말 좋다. 

 

SQLD는 작년 입사한 후 회사 애플리케이션 기반이 데이터베이스 기반으로 돌아간다는 것을 깨달은 후 바로 취득했다. 다만 데이터베이스 모델링과 테이블을 만들면서 해당 개념을 다시 찾아보고 있는 내 모습이 SQL 공부를 게을리했다는 것을 깨닫고 다시 한번 공부를 진행하려고 한다. 

 

 

실행환경 

  • 책에서 환경 세팅은 DBeaver를 사용하지만 나는 DataGrip을 사용할 예정이다. 사용해보고 싶기도 했고 얼마나 편리하게 만들었을지 궁금하기도 하기 때문이다.
  • 데이터베이스는 Oracle Database 19c를 사용한다.

 

 

SQLD를 준비하시는 분들에게 팁을 드리자면  데이터 모델링의 이해 부분과 SQL 기본 및 활용으로 나누어지고 배점은 SQL 기본 및 활용에 더 많은 점수가 반영되지만 실무에서 가장 중요한 것은 데이터 모델링의 이해이다.

 

작성하고 활용도 중요하지만 막상 실무자와 대화를 할 때는 어느 정도 개념이 밑바탕에 깔려있다고 가정하고 커뮤니케이션을 하기 때문이다.  그리고 내가 시험 볼 때는 데이터 모델링의 이해 부분에서 흔들거리기도 했다. 

 

 

 

시작은 데이터 모델링의 이해이다.

 

 데이터베이스상의 모델링은 현실 세계를 단순화하여 표현하는 모델링 기법이라고 표현했다.

그런데 우리가 데이터베이스 모델링을 어렵게 느껴지는 이유는 분명하다.

물리적인 물체뿐만 아니라 논리적인 행위, 행동, 생각 등등 눈에 보이지 않는 데이터를 모델링하기 때문이다. 

또한 헷갈려서는 안 된다 현실 세계를 그대로 데이터베이스에 모델링하는 것이 아닌 현실 세계를 단순화하여 데이터베이스에 맞춰 모델링하는 것이기 때문이다.  

  • 관리하고자 하는 데이터를 모델로 단순하고 명확하고 추상화하여 설계하는 것이다.

 

모델링의 세 가지 단계

 

개념적 데이터 모델링 

 - 이 단계에서는 클라이언트의 요청사항에 관한 회의 혹은 자료를 받아 업무를 분석할 때 떠오르는 추상화된 단어 위주로 많이 좁혀진다. 업무에 많이 중심적이어서 기획자나, 업무 담당자에 따른 데이터 모델링이 진행된다.

 

논리적 데이터 모델링

 - 이제 개념적 데이터 모델링에서 모델에 대한 식별자, 관계, 어떠한 정보들이 포함됐는지 속성 등을 표현한다. 

 

물리적 데이터 모델링

 - 성능이나 가용성을 고려하는 단계인데, 이 단계는 경험하기 매우 어렵다. 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계라고 한다. 

내가 생각하기엔 실제 데이터베이스 서버의 메모리, 하드디스크 용량, CPU 코어 수를 고려하여 모델들의 중복을 제거하고 관계를 어떻게 성능적으로 풀지 정규화 단계를 고민하는 단계인 거 같다. 

 

 

Entity Relationship Diagram

 

엔티티 사이의 관계를 다이어그램 표현하는 방식인데, 나도 IE/Crow's Foot라고 불리는 까마귀 발 표기법을 접했던 것 같다.  또한 책에서도 IE/Crow's Foot표기법을 주로 사용하는 것으로 봐선 현재 널리 사용되는 표준 정도일 것 같다.

 

 

책에 있는 Tip이라는 부분이 있는데 매우 유용하다. 실무에서 실수로 누락될만한 내용이 많고, 엔터티같이 모호한 개념들도 중심 잡을 수 있게 잘 표현해준다. 

 

엔터티의 속성에 대해 읽으면서 중요한 부분을 내가 놓쳤다고 생각되는 부분이 있는데 속성은 의미상 더 이상 쪼개지지 않는 레벨이 여야하고 프로세스에 필요한 항목이어야 한다는 것이다. 

 

내가 기능 개선에 관련해서 한 부분을 맡았을 때 기존 애플리케이션에 잘 녹아들어야 해서 맡은 업무와 관련된 엔터티들을 보고 관계가 있는지 확인하고 프로세스에 필요한 속성만 사용했다고 했지만

막상 기능을 사용하다 보면 불필요한 속성이 도출되기도 한다. 그 이유는 중복된 의미의 속성이 있어서 하나의 속성만 사용하는 경우였는데, 다음에는 해당 속성이 더 이상 의미적으로 쪼개지지 않는지 한번 더 생각해 보아야겠다.

 

 

 

 

1 챕터를 마치며

아는 만큼 보인다고 이전에 공부했던 개념이 내 머릿속에 남아있다는 것에 감사하며 다시 한번 모델링에 대해서 공부하다 보니 이전에는 보이지 않던 여러 의문점과 당시 헷갈렸던 개념이 명확히 잡히면서 빠르게 책을 읽어나갔다. 

 

노랑이 책도 구매해서 읽어본 입장으로 노랑이에는 없는 많은 장점이 존재한다.

노랑이에는 단지 문제와 해설, 텍스트로 개념이 나열되어 있는 반면

이 책에는 저자의 실무 경험을 초보자들을 위해 쉽게 풀어내려고 다양한 사진, 그림 다이어그램, Tip과

개념 파트에 있는 문제 그리고 실제 해당 파트에 대한 SQLD의 문제들이 챕터 마지막에 준비되어있다. 

 

상당히 구성에 많은 노력을 하시고 경험을 녹여 초보자에게 설명하시기 위해 많은 노력을 하신 게 느껴지는 책이다.  직장 동료가 SQLD 시험을 준비한다면 이 책을 강력히 추천할 것 같다.

단순 문제를 암기해서 SQLD시험을 보는 게 정말 의미가 없다는 것을 꼭 알았으면 좋겠고

신입, 취준생 때 공부가 사실 가장 중요한 기초를 다지는 시간이기 때문에 자격증을 준비하시는 분들도 시간을 길게 잡고 유튜브로 강의도 보면서 기초를 튼튼히 하셨으면 좋겠다.

 

 

 

 

 

반응형

'Database > SQL' 카테고리의 다른 글

SQL 코딩테스트 연습  (0) 2022.10.17
[유선생] SQL 개발자 (3)  (0) 2022.02.12
[유선생] SQL 개발자 (2)  (0) 2022.02.04
Join 연산을 이용한 select문  (0) 2021.02.27
MERGE  (0) 2021.02.22

댓글