본문으로 바로가기


 

지금까지 두 편에 걸쳐, 기획자가 알면 도움될만한 웹 개발환경을 다뤄봤는데요, 그간 개발자들과의 커뮤니케이션과정에서 이런 개발환경들을 잘 몰라서 무시당했다거나 서러움을 당하셨던 기억이 있다면, 저 미시깽과 함께 스텝바이 스텝으로 개발환경과 개발자와의 커뮤니케이션 방법을 익혀보시기 바랍니다.  오늘은 그 마지막 편인 데이터베이스의 개발적 이해와 함께, 좋은 궁합의 개발환경을 소개하는 것으로 총 세 편에 걸친 웹 개발 환경의 이해 편을 마무리 짓도록 하겠습니다.

 

다양한 정보를 저장할 수 있는 Database들...

 

회원정보, 게시판제목과 내용, 상품들... 이 모든 소스들은 데이터베이스라는 저장장치에 저장되게 됩니다.  여러분 하드에 모인 영화, 음악파일들처럼 웹에서 입력을 받고 저장되고 출력되기 위한 데이터들은 모두 데이터베이스에 저장되게 되는데, 데이터베이스에 대한 개념은 앞서 야메군의 "데이터베이스(DB), 어렵지 않아요~!!" 편을 참고하시기 바라구요, 이번 글에서는 웹 환경에서 주로 쓰이는 대표적인 데이터베이스를 몇 가지를 간단히 살펴보도록 하겠습니다.

 

먼저 마이크로소프트 사에서 개발한 MS-SQL은 1989년 윈도우NT에서 운용되는 SQL서버 1.0 버전을 시작으로 현재까지 이어지고 있는데, MS-SQL의 장점으로는 사용이 편리하다는 점입니다.  인단 GUI를 채택하고 있고, 다양한 마법사 환경을 통해 기본정보만 알고 있어도 사용이 용이합니다만, 대용량 처리 부분에서는 다소 밀리는 경향이 있는데, 최근 빅데이터 처리에 최적화된 SQL 2012 버전을 통해 다소 소외되었던 대용량 시장에 진입하기 위해 안간힘을 쓰는 모양새 입니다만.. 아직도 대용량 데이터베이스 시장에서의 갑은 오라클사에서 개발한 ORACLE 입니다.

 

MS-SQL의 장점 중 하나인 간편한 설치. 뭐 Windows와 다를 바 없는 인터페이스라.. 

 

 

주로 UNIX 환경에서 많이 이용되는데, 사실.. 개인적인 생각으로는 MySQL이라는 훌륭한(?) 대용품이 있는 상태에서 굳이 비싼 돈을 줘가며 ORACLE을 사용할 필요가 있는가에 대해서는 상당히 회의적인 시각을 가지고 있습니다만, 오라클 쪽 엔지니어가 본다면 난리가... 어쨌든 적어도 대용량 시장에서의 ORACLE의 점유율은 상당한 .

 

 

제가 앞선 포스트에서 Linux가 UNIX를 베이스로 만들어졌다고 말씀드렸는데, UINX=ORACLE 라는 공식이 성립되는 것과 같이 Linux 역시도 MySQL 이라는 공식이 성립됩니다.  MySQL은 일단 앞선 두 데이터베이스에 비해 저렴하다는 장점을 가졌구요, 상업적인 이용이 아니라면 무료로도 이용할 수 있습니다.  여기에 MS-SQL과 ORACLE가 상업용 데이터베이스이기에 소스를 공개하지 않지만, MySQL은 오픈소스라 개발자가 필요에 따라 소스를 수정할 수 있으며, OS 플랫폼을 가리지 않고 모두 사용할 수 있다는 장점을 가지고 있습니다.

 

My-SQL의 원격 접속화면.. 아.. 왠지 어려워보인다..

 

 

이 세가지 데이터베이스는 OS 별 상성을 가지고 있는데요, MS-SQL은 Windows와 ORACLE는 UINX와.. MySQL은 Linux에서 가장 좋은 궁합을 가지고 있다 정도만 이해하시면 될 듯 하구요, 각각의 장단점이 존재하긴 하지만 "이 중 어떤 데이터베이스가 제일 좋다.." 라고 평가할 수 없는 게, 데이터베이스의 성능 뿐만 아니라 앞서 언급한 OS와의 상성.. 그리고 좋은 서버장비 등등에 영향을 받기 때문에 상황에 맞게 사용하는 것이 중요한데요, 이들 데이터베이스들은 웹 프로그래밍을 하는 것과 같이 데이터베이스 안의 데이터를 보고 관리하기 위한 DB언어를 사용하게 되는데 바로 SQL 즉, Structured Query Language를 사용하며, 비록 세 가지 데이터베이스 시스템이 탑재되는 OS나 설치환경은 각각 다르지만, 해당 데이터베이스를 사용하기 위한 언어는 유사한 형태라고 생각하시면 됩니다.

 

그럼 웹 환경을 이루는 맘 맞는 짝을 찾아보자!!


앞선 포스팅을 통해 웹 프로그래밍언어, OS, 데이터베이스 시스템을 설명 했는데요, 이런 설명을 드린 이유는 지금부터 설명드리고자 했던걸 말씀드리기 위해서입니다.  사실 개발자가 아닌 이상 이런 다양한 종류의 시스템 관련된 내용을 모두 기억하실 필요는 없습니다.

 

단지 내가 기획하고 있는 사이트가 어떤 시스템으로 무엇으로 어느 회사의 것으로 만들어졌는지 정도는 알고 있어야 어렵게만 느껴졌던 개발자와의 커뮤니케이션이 수월하기 때문인데요, 조금 눈치가 빠르신 분들이거나 현업에서 개발자들의 이야기에 관심을 가지셨다면 웹 서비스 환경을 이루기 위해 좋은 궁합이 있구나.. 라는 것을 어렴풋이 짐작하실 수 있으리라 생각하는데, 먼저 ASP와 MS-SQL.. 그리고 Windows Server은 모두 마이크로소프트에서 개발하고 출시한 제품이기 때문에 좋은 궁합을 가질 수 있습니다만.. 높은 라이선스 비용을 지불해야 한다는 점은 이 궁합을 유지하기 어려운 현실적인 장벽인데, 그렇다고 JSP와 ORACLE..  그리고 UINX를 선택하는 건 더 마치 고인 물을 피하려다 똥 밟는 상황이 될 수도 있습니다. 이 엄청난 라이선스 비용을 감당할 회사는 그 누구더냐..

 

 

 조합설명

웹 프로그래밍언어

Database

OS

 비싼 최적의 조합

ASP

MS-SQL

Windows Server

 더 비싼 최적의 조합

JSP

ORACLE

UINX

 약간 불안하지만 저렴한 최적의 조합

PHP (JAVA)

MySQL

Linux

* 위 조합의 평가는 지극히 주관적인 관점이며, 개발자의 시각에 따라 달라질 수 있음.

 

물론 두 번째 조합인 JSP와 ORACLE, UINX는 명실상부한 웹 서비스계의 최강자라고 할 수 있습니다.  이 조합은 주로 서버를 출시하는 회사에서 각자 서버에 맞는 OS를 개발하여 자체적으로 탑재하고 운영하는데, 오라클이라고 하면 굳이 얘기하지 않아도 전 세계적으로 인정받은 IT 기업이니 두 말 할 필요가 없겠죠?^^  

 

마지막 세 번째 조합은 바로 PHP와 MySQL.. Linux 입니다.  모두 오픈소스로 배포되어 사용자가 사용하고자 하는 목적에 따라 임의대로 바꿔서 사용할 수 있다는 큰 장점을 가졌는데요, 오픈소스로 구성된 이 조합은 많은 사람들이 함께 연구해서 지금 이 순간에도 계속 발전하고 있는 콤비이다보니, 다소 불안정한 요소가 있을 수도 있습니다만, 이러한 문제는 급속도의 발전속도가 이를 커버하고 있습니다.

 

이렇게 웹 환경에서 최적의 조합을 살펴봤는데.. 물론 PHP나 JSP를 Windows Server 환경에서도 사용할 수 있고, ORACLE을 Windows나 Linux에 설치해서 사용할 수도 있고, My-SQL을 윈도우 서버에 설치해서 사용할 수도 있습니다만.... 애초에 이러한 툴들이 만들어 질 당시부터 누구와 무엇과 어떻게 호환이 될지 염두에 두고 만들어졌기 때문에, 기왕이면 근간이 되는 그룹이 모여 구성이 되는 게 서로 안정적이겠죠.

 

따라서, 가급적이면 위에 언급한 구성으로 짝을 이루어 시스템을 구성하고, 웹 서비스 환경을 이루어 고객에게 서비스하는 것이 바람직하구요, 이러한 상성이라는 것이 사실 눈에 보이는 부분은 아닙니다만, 이러한 이면에 가려진 시스템의 구성을 이해하면, 기획자의 업무능력 향상에 보이지 않게 영향을 미치지 않을까 싶습니다.

 

아.. 밥벌어먹고 살기 힘들다.. 이젠 얘도 알아야해요, "모바일 웹 서비스"

 

대략 이쯤에서 총 세 편의 시리즈를 마무리 지으려 했는데.. 곰곰히 생각해보니, 모바일 웹 서비스도 있군요..  다 아시겠지만, 스마트폰.. 혹은 태플릿이라는 새로운 디바이스로 인해, 기획자는 더 많은 공부 스트레스를 받게 되었는데요, 이러한 스트레스는 사실 개발자 역시 동일하게 받는데요.

 

과거 웹서비스를 이용할 수 있는 주체가 데스크탑이나 노트북에 국한된 것에 반해, 2013년 6월 현재의 시점은 아이폰이나 갤럭시, 블랙베리같은 스마트폰이나 태블릿 PC를 통한 웹 서비스를 이용하게 되었고, 앞서 전달해드렸던 윈도우, 유닉스, 리눅스처럼, 모바일 환경 역시도 애플의 iOS, 구글의 안드로이드, 마이크로소프트의 윈도우폰7, RIM의 블랙베리 등이 여기에 해당되는데요.

 

앞서 설명드린 ASP나 JSP, PHP 처럼 모바일서비스를 위한 개발언어로 아이폰에는 Objective-C, 안드로이드나 블랙베리에는 Java, 윈도우폰7에는 C#, VB(Visual Basic)이 있습니다.  데이터의 경우에는 보통 API를 이용해서 서버에서 불러서 쓰거나, 스마트폰에 직접 탑재해서 쓰기위해서는 SQL Lite를 이용합니다.

 

Objective-C 개발환경인 Xcode 실행화면 

 


단지, 플랫폼의 차이나 개발언어의 차이가 있을 뿐, 전반적인 흐름은 웹 서비스와 별반 차이가 없음을 알 수 있는데, 이러한 뒷배경을 가지고 모바일 환경에서의 웹 서비스를 네이티브 앱(Native App=Application)과 모바일 웹(Mobile Web)과 같은 형태로 만들어 내게 됩니다.  흔히 어플.. 앱이라고 하는 것이 바로 네이티브 앱으로서 앱스토어나 구글 플레이와 같은 유통 플랫폼에서 직접 다운로드 받는 어플을 지칭하고요, 모바일 웹은 스마트폰에서 자주 접속하시는 m.naver.com과 같이 스마트폰 해상도나 UI를 고려한 스마트폰 용 웹 페이지라도 생각하시면 되겠습니다.

 

여기에 언제부터인가 웹앱 또는 하이브리드 앱(Hybrid App)이라는 이름의 서비스가 생겨났는데, 모바일 웹의 명확한 한계점이라 할 수 있는 인터렉티브한 환경이나 어플리케이션과 같이 1차 접근이 아닌 브라우저를 통한 2차 접근을 해야 한다는 단점을 극복하기 위한 일종의 잔머리(?)로서 어플리케이션 베이스에 Web View 방식으로 웹을 호출하는 형태로 앱의 단점과 웹의 단점 모두를 극복할 수 있는 형태가 되겠습니다.  하지만 애플이나 구글에서는 하이브리드 앱을 제어가 어렵기에 싫어한다는 전언이...


오늘까지 총 3회에 걸쳐, 웹 서비스를 구성하는 개발환경을 살펴봤는데요, 이 정도의 제반지식만 알고 있어도 주니어기획자가 개발자와 훨씬 더 수월하구요, 아울러... 개발지식을 몰라서 개발자와 커뮤니케이션 하기 어렵다고 느끼는 일부 기획자 분들이 학원 등을 찾아다니며 개발수업을 듣는 경우도 있습니다.  하지만.. 개발자인 제 입장에서 봤을 때, 이러한 방식은 오히려 좋은 현상은 아니라고 생각합니다. 

 

기획자의 힘은 개발지식이 아닌 문서와 근거.. 기획의 당위성입니다.  원활한 커뮤니케이션 이전에 왜 그 서비스를 만들어야 하는가를 개발자에게 정확히 전달해줌으로서, 기획자의 역할을 가지게 된다고 생각하구요, 개발수업을 듣을 시간에 이런 고민을 조금 더 하신다면, 기획자의 가치가 더욱 돋보이리라 생각하며, 웹 개발환경의 이해 시리즈를 마치도록 하겠습니다.

 

 

 

미시깽. 토끼같은 귀여운 딸래미 둘과 사과같은 남편과 살고 있는 웹개발 13년차.  아이러브스쿨과 SK커뮤니케이션즈 등을 거쳐, 국회입법조사처와 한국지역정보개발원에서 IT관련 빡센 행정업무를 경험하고, 세훈항운(주)에서 다시 웹개발을 시작, 자회사인 (주)온필에서 기술개발팀장으로 있으면서, 여행업이라는 새로운 분야에 대해 배우는 마음으로 시스템 개발에 매진 중.

 



댓글을 달아 주세요

  1. 반역의루루슈 신고">2014.03.03 06:48 신고

    글을 잘 읽었습니다. 현재 모바일 규모나 발전속도를 봤을때 기존 데스크탑에서의 프로그램들과의 융합이 중요하다고 생각합니다. 서버를 통해 데스크탑과 모바일의 경계를 넘나들어야하는데, 예를들어ms-sql 서버에 스마트폰의 모바일웹으러 접속이 가능할까요?

    • Favicon of http://emilysdream.tistory.com BlogIcon 미시깽 신고">2014.03.03 16:20 신고

      모바일웹도 결국 인터넷웹브라우져와 별반 다를바가 없기에 가능하다고 생각하시면 됩니다.
      현재도 mssql로 구성웹사이트도 굳이 모바일웹이 아니어도 웬만한 모바일에서 접속이 가능합니다.
      데스크탑으로의 웹환경이 스마트폰이라는 새로운 환경으로 넘어간거라고 생각하시면 더 쉬우실듯 합니다. ^^
      충분한 답변이 됐을지 모르겠네요.

  2. dal 신고">2017.05.14 20:50 신고

    신입 기획자인데, 개발자와 이야기하는 것도, 스토리 보드 그리는 것도,
    기획 서술 하는것도 하나도 모르겠고 힘이드네요 (ㅠㅠ)..으악 커뮤니케이션도..
    ... 더불어 디자인도 제가 하고 있어.. html css 지식도 쌓아야하는데
    넘나 버거운중에..이 블로그를 보면서 몰랐던 점을 채워가네요. 감사합ㄷ니다.

티스토리 툴바