Development Note(69)
-
[MYSQL] 쿼리 작성 및 최적화
전반적인 쿼리 작성 방법에 대해서 엄청난 분량으로 나와 있다. 대략 한 150 페이지 정도 되는데 그 디테일이 엄청 나다. 단순히 기능에 대한 설명 뿐만 아니라 성능과 그 동작 메카니즘까지 설명하고 있으니 보고 있으니 머리가 아프기도 하고 한편으로는 신기하기도 하다. 진작에 이런 데이터 베이스의 동작 구조에 대해서 알고 있었더라면 좋았겠다. 싶다. 글을 쓰면서 학창 시절 DB 관련 수업 학점이 문득 떠오른다. 그럴만한 이유가 있다. 크게 쿼리 작성과 관련하여 함수, SELECT, INSERT, UPDATE, DELETE 와 같은 주요 키워드에 대한 부연 설명들이 많다. 당연히 SELECT 가 그 비중이 가장 큰데 실제 이 단락의 내용은 이게 다라고 봐도 될 정도로 엄청나게 많은 분량이다. 하나하나 다 설..
2013.08.09 -
SQL : HAVING
지나치다가 이런 HAVING 이라는 SQL 명령어를 보게 되었다. 어디서 많이 봤는데 라는 생각만 들었지 어떻게 사용하는지 언제 사용하는지 몰랐다. 이런.. 수년간의 SQL 작성에 대해서 부정받는 느낌이었다. 그래서 부끄럽지만 뒤늦게 찾아보았다. 역시.. 그래서 인지 내 쿼리가 지저분 했던거군 -_-;; 이런 생각이 제일 먼저 들었다. 아마 이 쿼리에 대해서 잘 알았다면 아래처럼 쿼리를 작성하지는 않았을 것이다. 아래 쿼리를 대략적으로 설명하자면 부서별 직원 숫자를 알아보는 쿼리인데 집계한 직원 수 중에서 2만명이 넘는 조직들을 조회하는 것이다. HAVING 을 알기 전엔 아래처럼 쿼리를 짜놓고 더이상 할 것이 없다.. 하고 있었겠지만 이걸 보고 있자니 이렇게 안할 수 있는 방법도 있는데.. 하는 생각만..
2013.08.08 -
[MySQL] 실행 계획
책으로 MySQL 스터디를 하게 되었다. 첫 항목으로 접하게 되는 부분이 다름이 아닌 "실행 계획" 이라는 주제를 가진 챕터이다. 보통 데이터베이스라고 하면 SQL 이 떠오를테고 SQL이 떠오르면 어떻게 쿼리를 잘 하면 되는건가? 하는 생각이 들 것 같다. SELECT, INSERT, CREATE, DROP 등등 여러가지 명령어들이 떠오를테고.. 학부생때 배웠던 이런 간단한 쿼리들과 정보계 시스템들을 개발하면서 배웠던 관계형 데이터베이스를 활용하는 방법들은 잘 알았지만.. 실제로 이 데이터베이스라는 것이 어떤 알고리즘에 따라서 동작하는지에 대한 내용들은 잘 몰랐다. 그래서인지는 몰라도 쿼리를 튜닝하거나 처리 비용이 너무 많이 드는 형태의 쿼리를 짜는 것을 지양한다던가 하는 행위가 잘 안됐던 것 같다. 이..
2013.08.07 -
Eclipse 의 거지같은 자동 줄맞춤을 잠재워 보자
여러 개발 툴들을 사용해봤지만 다들 IDE 가 그중 최고라고 느끼실 것이다. 약 2년간 .NET 개발을 하면서 느꼈지만 역시 우리 Visual Studio 형님이 채고시다. Eclipse 가 편하다고 들 말하지만 솔직히 개발하기 쉽고 설치가 쉽고 등등 여러가지를 고려했을때는 그중 VS 가 단연 최고라고 지금도 말할 수 있다. 하나 이상하게 느낀거라면 리눅스의 VI 가 의외로 정말 좋다는 것이다. 본론으로 들어가서 수년간 개발하면서 좀 짜증(?) 났던 자동 줄맞춤에 대해서 알아볼려고 한다. 나는 Ctrl + Shift + F 단축키를 엄청나게 자주 쓴다. 코드도 보기 좋아야 한다는 그런 생각이 머릿 속에 가득해서 수시로 눌러주면서 예쁘게 코드들을 정리 하려고 노력한다. 그런데.. XML 같이 생각보다 내용..
2012.11.29 -
Apache Maven : 4. Private Repository Nexus
참고로 이 두가지 오픈소스 저장소 때문에 엄청나게 많은 삽질을 했는지 셀수도 없다.. 다만 조금 많이 짜증난다는 점과 이 Maven 의 메카니즘을 이해하는 시간이 되어서 굉장히 값지다는 느낌이다. 먼저 Nexus, Artifactory 둘다 기본적으로 Maven 에서 제공해주는 원격 저장소 (http://repo1.maven.org/maven2/) 와는 달리 어떤 특정 조직이나 기관에서 사용할 내부용 저장소를 생성해주고 관리할 수 있게 도와주는 오픈소스 소프트웨어이다.구글에서 검색하면 두 소스 다 굉장히 구하기가 쉽고 많은 설치 방법이 있으니 알아서 잘 다운받아 설치 하시길 바란다. (자세한 설명은 생략한다) 두 오픈소스 모두 Java 기반의 WAS 에서 동작하도록 되어있는 웹 사이트 형태를 띤다. wa..
2012.11.12 -
Apache Maven : 3. Repository 에서 archetype 프로젝트 생성하기
무슨소릴 하는거냐? 고 할 수 있겠지만 말그대로 Repository 를 통해서 프로젝트를 하나 가져와 볼 것이다. SVN 의 그것이랑 혼동하지 말라고 했으니 소스코드 받아온다고 생각 말도록 하자. 커맨드창에서 위와 같이 명령어를 때려보면 저 화면에서 멈추어 있다가 갑자기 엄청난 리스트들이 쭉 뜨기 시작한다. 수백개씩 나와서 터미널 버퍼가 가득 차서 뭐가 뭔지도 모르게 쭈욱 나오게 되니 위의 명령어에 의존하지말자. 다시 하자 아래와 같은 키워드를 사용하여!! 위와 같이 실행하고 나면 실행한 폴더 내에 MyProject 라는 폴더가 생성 될텐데, 폴더 구조 및 몇 가지 소스 코드까지도 쭉 있는 것을 볼 수 있다.요게 바로 Repository 에 있는 패키지를 가져다가 프로젝트를 세팅 해준 것이다. 음.. 별..
2012.11.12