#title 데이타베이스를 어떻게 공부해야 하는가? [[TableOfContents]] ==== 데이타베이스를 어떻게 공부해야 하는가? ==== 이 제목 비스무리게 질문을 가끔 받고는 합니다. 일단은 제가 어떻게 공부했나에 대한 것과 저의 의견을 제시하도록 하겠습니다. 저 같은 경우는 첨에 비주얼 베이직을 공부하다가 데이타베이스를 다루는 부분에서 데이타베이스에 대한 공부가 필요해서 잠시하려다가 이쪽으로 빠져버린 경우입니다. 물론 그때는 별로 공부를 하지 않은 상태이고...처음 공부를 시작하고 6개월 정도 되었을 것입니다. 데이타베이스를 접하기 전에 웹에 대한 전반적인 개념을 공부했고, 그담에 컴구조, 데이타 통신 등을 공부했지요..물론 제가 정보통신을 전공했기 때문에 물론 이쪽으로 접근하는 것은 쉬웠을 것입니다. 그러나 공부를 시작할 당시에는 채팅도 못하는 상태였습니다. 그런 상태에서 처음에 컴퓨터를 싸들고 친구들의 자취방으로 쳐들어 갔습니다. 그래서 그 넘들한테 C 언어를 배웠습니다.. 스파르트 식이였지요... 효과는?? 매우 좋았습니다. c 언어 책한권 던져 놓구 문제를 제시하면 저는 죽어라고 될 때까지 프로그램을 했었지요...아무튼...그렇게 하다가 어떤 개기가 되어 한 스터디 그룹에 끼게 되었습니다. 거기서 많은 공부를 했고, 겨울방학이 다 끝날 무렵은 비주을 베이직을 했지요. 그리고 학교가 개강을 하고 6개월 뒤에 데이타베이스라는 넘을 제대로 생각하게 되었습니다... 여기 까지는 제가 데이타베이스를 접하기 까지의 과정입니다. 이러한 과정은 상당히 쓸모가 있었습니다...저는 데이타베이스를 하기 전에 서버/클라이언트에 대한 전반적인 지식과 컴퓨터 구조, 파일 구조와 같은 과목이 필요하다고 생각합니다...물론 당근 필요하지만요... 무턱대고 데이타베이스를 덤벼 들기보다는 전반적인 개념을 가지고 있으면 상당히 좋습니다. 데이타베이스를 하면 물리적인 것과 전체적인 시스템까지 생각하게 되거덩요..그러니...많은 부분을 알고 있으면 알고 있을 수록 좋습니다. 어쨌든 데이타베이스를 위한 다른 분야를 공부해야 합니다. 데이타베이스를 하는 사람이 네트웍 트래픽을 고려 한다는 것은 참 이상하게 느껴질도 모르지만 필요한 것입니다. 많이 알고 있으면 있을 수록 좋다는 이야기 입니다. ==== 공부하는 방법 ==== 만약 정석으로 공부하고자 한다면 컴퓨터 공학과에서 배우는 1, 2학년의 과목을 모두 알고 있으면 좋습니다. 컴구조나 파일구조, 소프트웨어 공학등을 알고 있으면 매우 좋습니다. 모른다면 쉬운 책을 한권씩 골라서 읽어보는 것도 좋습니다. 그런후 데이타베이스론 책을 보는 것입니다. 이론적인 책이죠. 여기서 많이 떨어져 나갑니다. 왜냐하면 다른 과목보다는 꽤 딱딱한 내용이고, 또한 용어 자체가 약간은 생소하기 때문에 머리에서 잘 받아들여지지가 않기 때문이죠. 저 같은 경우는 데이타베이스론 책을 보기 전에 먼저 MS-ACCESS와 MS-SQL을 먼저 접하기는 했습니다. 그러나 그때는 관심밖에 있는 것이라서 제대로 하지를 않았죠. 단지 셋업 해보고 조금 다뤄봤을 뿐입니다. 그런 후 데이타베이스를 공부하고자 마음을 먹고, 데이타베이스론 책을 봤는데...참으로 마음이 아프더군요...머리속에 잘 안들어 오는 것이였습니다. 그래도 굳은 의지로 봤습니다. 머리속에 별로 들어오는 것은 없으나 책을 한번 봤다는 이유 하나만으로 자신감이 생기더군요...그런 후 MS-SQL을 다시 다뤘습니다. 내용이 새록새록 다시 보이더군요... MS-SQL을 다룰때 쿼리문을 많이 날려보는 것이 좋습니다. 그러나 여기서 주의할 것이 있습니다. 즉, DBMS에 빠져서 DBMS = DataBase라는 등식이 성립하는 것처럼 되 버릴 수 있다는 것입니다. MS-SQL을 많이 다뤄 봣으면 이제 데이타베이스 설계에 대한 책을 보셔야 할 것입니다. 무조건 많이 해보는 것이 좋습니다. 쿼리문을 많이 날려보고, 데이타 모델링도 많이 해봐야 할 것입니다. 만약 여러분이 어느정도 자신감이 생겼다면...데이타베이스에 관련된 대형 사이트에를 가세요..많이 있지요? devpia라든지 oracle 홈, 데이타베이스 사랑넷 등의 대형 커뮤니티가 있을 것입니다. 거기에서 질문에 대한 답변을 하도록 하세요. 대부분은 질문을 하기 위해 사이트를 많이 찾을 것인데 그러지 말고 답변을 하도록 해보세요. 질문에 대한 답변을 하지 못할때는 책을 찾아보고, 웹에서 자료를 찾아보고, 공부해서 답변을 해주도록 하세요... 이거 정말이지 아주 좋은 공부방법입니다. 문제해결능력이 생기거덩요...어떤 문제가 주어졌을 때 해결할 수 있다는 자신감과 인내력이 바로 곧 실력입니다. 문제를 제대로 해결하지 못해도 쪽팔릴 것은 전혀 없습니다. 어쨌든지 나 자신을 위해서 그리고 질문한 사람을 생각해서 답변을 해준 것이지요...이 데이타베이스는 답이 없습니다...주어진 자원을 이용해서 최대한의 성능을 끌어 올리고, 사용자의 정보욕구를 만족시키면 그게 답인 것입니다. 또 추천할 만한 공부방법은 정리하는 것입니다. 저 같은 경우는 이 홈페이지에 제가 공부하기 싫고 짜증날때 문서화 작업을 한 것을 옮겨논 것입니다. 가끔씩 까먹은 것이 있으면 홈페이지에 들러서 저도 참고합니다. 즉, 웹상에 자신의 노트를 만드는 것입니다. 이거 자신에 대한 PR도 할 수 있고, 글로써 쓰는 것이니 정리도 잘 됩니다. 그러니 자신의 홈페이지에 자신이 공부하는 분야에 대한 노트를 만드세요...이것도 참 많은 도움이 됩니다...어느정도 보람두 있구요... 또 한가지 좋은 공부 방법은 스터디 그룹을 만드는 것입니다. 각자의 관심분야가 같기 때문에 상당히 많은 도움이 됩니다. 서로서로 정보를 공유하면 그만큼 빠른 시일내에 서로서로 많이 알게 되는 것입니다. 대부분은 엄청 고생해서 알아낸 것이라고, 꼭꼭 숨기고 있으나 숨기면 머합니까?? 내가 천재가 아닌 이상은 내가 모르는 게 있으니 내가 알고 있는거 갈차주고 내가 모르는거 배우면 되는 것입니다. Win-Win 전략이죠?? 암튼...스터디 그룹 제대로 만들면 상당히 많이 도움이 됩니다. 아는 사람도 많이 생기구요. 많은 정보를 빨리 많이 접할 수 있습니다. 어차피 정보기술 분야는 귀를 열어 놔야 한다고들 하니까요. 고집이 쎄서리..저도 이런점을 항상 생각하고 있습니다. 서로 자신의 솔루션이 맞다고 우기는 것이 아니라 객관적으로 냉철한게 판단을 해야 하는 것이죠.. 혼자 힘으로는 문제를 해결 하기 힘들죠...천재가 아닌이상은 반드시 참고할 만한 것이 있어야 것입니다.책사는 것을 돈 아깝다고 생각지 마세요...나중에 진짜 자신의 보물이 됩니다. 술한잔 안먹고...다른 짓 안하면 책한권 살 수 있습니다. 사실 단돈 몇만원으로 저자의 지식을 살 수 있다면 그것은 진짜 저자한테 고마워 해야 하는 것입니다. 또한 스승을 한두명 두는 것도 좋습니다. 좋은 스승을 두십시오..저 같이 성질 드러운 넘을 스승으로 둔다면 상당히 고생할 것입니다. 저는 마구 다구치거덩요...질문을 하면 제가 오히려 질문하는 편입니다. 아무튼..스승을 한두어명 두거나 스터디 그룹을 만드시길... 머..사실 공부하는 방법이야 다른 거 없습니다. 단지 열심히 하는 것이죠...어떤 것이든지 목표를 잡고 그 목표를 위해 열심히 노력한다면 없던 길이 막 보입니다. 길이 안보이면 길을 만들면서 그 목표에 접근하면 되는 것입니다. 단지 데이타베이스를 공부하면서 염두하실 것은 너무 보이는 것에만 집착하지 말라는 것입니다. 처음에 C언어 공부하다가 HTML 공부하면 너무나도 재미가 있습니다. 결과가 눈에 띄게 팍팍 드러나니까 재미가 있는 것이죠...그러나 데이타베이스를 공부하건 다른 정보기술에 대한 공부를 할때는 눈에 보는 것에 집착하면 안됍니다. 여러분은 반드시 DBMS = DataBase라는 것이 아님을 알고 있어야 할 것입니다. 처음에는 남들에게 인정 받지도 못하고 그리 큰 보람이 없을 것이나 기초를 튼튼히 한다면 멀지 않은 미래에 큰 빛이 보일꺼라 확신합니다...저도 그 빛을 보기 위해 오늘도 궁뎅이에 땀띠나도록 손가락에 군살베이도록 열심히 할 것입니다... 열심히 공부 합시다~~~~~~~