2018. 3. 28. 21:49

지식인 답변모음 1~2번에서 14년 6월 16일까지 했었고, 이후의 답변 추려봤습니다.


------------------------------------------------------------------------------------------------------------------------


질문 제목 : 오라클 outer join 질문입니다.

내용 : 개발직을 한지 3년정도 되었는데 아직도 확실한 답을 알지 못하였습니다.

전 프로젝트 개발 중 쿼리짤때 LEFT OUTER JOIN 을 LEFT JOIN 으로 줄여 쓰고 있습니다.

RIGHT OUTER JOIN 은 RIGHT JOIN으로 하고요. INNER JOIN 은 그냥 JOIN 이라고 쓰지요.

순전히 편하기도하고 동일한 값이 나오기도 하니 문제 없다 여겼는데 얼마전 욕을 들어서요.

궁금한건 저렇게 줄여쓰면 안되는것인지.무엇때문에 안되는것인지.

DB를 오라클에서 MSSQL로 변환할때 문제가 있는건지 정말 궁금하네요.

시간 날때 한번씩 찾아보고는 있는데 LEFT JOIN이 INNER JOIN 이라느니.

대체 쿼리는 짜본적이 있는 사람들이 글을 남긴건지 참..... 알려주세요~


답변 : 결과는 같고 사용법 역시 같습니다.

욕을 먹었다면 자신의 편의상 줄여씀으로서 표준을 어긴거로 판단해서 그런듯 합니다.

같다고 누구나 안다해도 단순히 right left join 이라고 사용을 하는 것보단 outer 를 명시하여 가독성을 높이고 누군 이렇게, 또 누군 이렇게 쓰는걸 안좋게 생각하는 사람이라면 싫은소리를 할 수 있는거죠.

회사마다, 사람마다 다릅니다만 정식 명칭을 사용하는게 더 좋다고 생각합니다.


* 오라클의 경우 아우터 조인을 질문내용과 같이 (left or right) join 이나 (left or right) outer join과 같이 사용할 수 있고, 이 외에도 아우터조인의 기준이 될 테이블과 아우터조인으로 참조될 테이블간의 컬럼 조인 기술시  메인테이블.컬럼 = 참조테이블.컬럼(+) 와 같이  (+) 키워드를 통해 아우터조인 연산을 수행할 수 있습니다. 

답변당시에 저는 입사 1년차의 신입시절이고, 질문자는 3~4년차였네요. 사실 회사마다, 사람마다 모두 다르지만 표준을 지키거나 가독성을 고려한 코딩이 추후에 개발비용보다 지속적으로 발생하기에 더 비싼 유지보수 비용을 줄일 수 있게 됩니다.


------------------------------------------------------------------------------------------------------------------------


질문 제목 : 정규화 예제 질문 드립니다.

내용 : 정규화 공부중인데 예제가 이해가 안됩니다.

도움좀 부탁드립니다. 첫번째 문제입니다

성적표 (학번 이름 전공 과목번호 과목이름 교수명 연구실 성적) 밑에 속성값없이 이렇게 주어주고 정규화하라는데 뭐가 중복이고 뭐가 종속인지도 도대체 모르겠습니다.

적어도 밑에  값을 세네줄만 주면 대충 누가 무슨과목 몇개들으니 과목별로 나눠서 중복을 없애기라도할텐데 그냥 열이름만 나열되어있으니 노답입니다. 왜 뜬금없이 학생(학번 이름 전공)  성적(학번 과목번호 과목이름 교수명 연구실 성적)이 되는지도 모르겠습니다. 결과값을 봐도 도저히 추론이 되지않습니다  제발 이해좀 시켜주세요.


답변 : 
학번 | 이름  |   전공 | 과목번호 | 과목명 | 교수명 |  연구실 | 성적

111 |  홍길동 | 도술 |      A1    | 건축     | 나건축 |  C01호  |   A

111 |  홍길동 | 도술 |      A2    | 수학     | 나수학 |  C02호  |   B

111 |  홍길동 | 도술 |      A3    | 사회     | 나사회 |  C03호  |   A

 

학생 과 성적으로 나눈 이유  =  학번과 이름, 전공  컬럼을 보면 값이 중복됨을 알 수 있습니다.

정규화의 목적중 하나는 중복값을 최소화 하는것이기 때문에 학생의 개인 정보를 저장하는 학생 테이블과 학생의 성적 정보를 저장하는  성적 테이블로 나눠지게 됩니다.

그럼으로서 중복을 최소화하게 되는것이고,  학생과 성적 테이블에는 각각 학번이라는 공통 분모를 가지고 있기 때문에 이 두 컬럼간의 JOIN을 통해 데이터를 합치거나 변별력이 생기게 되는겁니다.


* 위 같이 답변을 했군요. 정규화에 대한 내용이었는데 아무래도 정규화에 대한 설명은 많으나 이해를 위해서가 아닌, 시험에 대한 답변을 위한 자료가 대부분이다 보니 테이블 하나를 임시로 표시하며 설명했습니다. 
정규화가 잘된 디비환경에서 쿼리(SQL)를 짜다보면 자연스럽게 알게 될테지만 그런 환경을 쉽게 접하긴 어려울 사람들에게 적절한 답이지 않을까 싶습니다.


------------------------------------------------------------------------------------------------------------------------


질문 제목 : MSSQL 쿼리 해석

내용 : CASE CHARINDEX('/',Phone) WHEN 0 THEN REPLACE(REPLACE(Phone,'-',''),' ','') 

ELSE REPLACE(REPLACE(SUBSTRING(Phone,1,CHARINDEX('/',Phone)-1),'-',''),' ','')  END as 핸드폰번호


위에 질의어 인데 다른건 이해 하겠는데 

1.ELSE 문을 왜 쓰는지? 

2.WHEN 0 THEN 에서 0 의 의미가 무엇인지?

3.SUBSTRING(Column,1,CHARINDEX('/',Column)-1) 에서 -1 의 의미가 무엇인지?


이렇게 3가지가 궁금 합니다. 고수님들 답변 기다리겠습니다.  감사합니다.


답변 : 
1. Phone 컬럼에서 / 문자열을 charindex 로 추출합니다. 결과값이 0. 즉 / 가 없을경우, REPLACE(REPLACE(Phone,'-',''),' ','') 를 실행하고. 그렇지 않은경우, else 문 아래의 명령어를 실행하기 위해서 ELSE를 사용합니다.

2. WHEN 0 THEN 은 위에서 설명했듯이 Phone 이라는 컬럼의 문자열에 / 문자가 없을 경우 라는 조건을 주기 위해 0 이라는 조건을 주게됩니다. case when 문은 case 이후에 나올 값에 대해 조건을 주는 함수입니다.

3. -1 은  charindex 를 통해 / 를 찾은 값에서 -1의 위치. 즉, 01/11 이라는 값이 컬럼 값이라면 3 이라는 값을 리턴해주는데  여기서 -1을 하여 2의 값을 리턴해주겠다는 소리이며  여기에선  substring 함수를 통해 가장 앞의 문자에서 / 가 나오는 위치의 -1 에 해당하는 위치를 지정해주기 위해 사용한겁니다.

* 내용중에 한가지 정정할 부분은 case when else end 문은 함수식이 아닌 조건식입니다. 그렇기에 함수식인 decode 함수보다 성능이 좋습니다. 상황에 맞춰 적절한 사용이 필요하고, MS-SQL 에서는 decode 함수가 없으므로 참고하시기 바랍니다.


------------------------------------------------------------------------------------------------------------------------


이상으로 14.07.14 까지의 답변이었고, 꾸준히 이어나가겠습니다.  데이터베이스와 관련해서 간단한 질문정도는 언제든지 환영하며, 제가 모르더라도 여러 루트로 알아보고, 배운뒤에 답변을 도와드리도록 하겠습니다. 혹 부족한 답변이 보인다면 언제든 조언 및 지적 환영합니다.


Posted by 타이니스타
2018. 3. 27. 21:28

안녕하세요 "타이니스타" 입니다.  저는 주말을 맞아서 얼마전에 개봉한 "퍼시픽림2 업라이징" 을 봤어요.

2013년도에 개봉했던 퍼시픽림1에 이어서 2편을 보게 되었군요. 당시에 "초거대" 라는 키워드가 붐을 일으켰던때라고 어렴풋이 기억이 나는데요, 당시의 흐름에 부응하여 나왔던 초거대 로봇 및 괴수가 등장하는 영화였기에 제법 많은 사람들에게 홍보가 됐었습니다.

대략적인 스토리는 초거대 괴생명체인 일명 "카이주(Kaiju)" 들이 세계 각지에서 출몰하여 인류를 공격하고, 인류는 생존을 위하여 괴물들의 압도적인 동체에 대항할법한 전투 로봇을 만들게 됩니다. 

이 로봇이라는 것이 기존의 상식을 넘어서는 크기이다보니 흔한 느낌의 로봇물에 한가지 특장점으로 대중들에게 다가왔고, 그로인해 흥행에 성공하게 됐죠.

이 초거대 로봇을 "예거" 라고 부르며, 워낙 거대한 동체를 가진 로봇이기에 조종할 사람이 둘 이상 필요하게 되었습니다. 또한 두 사람이 하나의 로봇을 조작해야하다보니 서로다른 조종을 하면 안되기에 뇌파와 뇌파를 연결하는 방식으로 두사람이 같은 동작을 수행하게 되죠. 기존 로봇영화와 비슷한듯 다른 차별점으로 무장했던 퍼시픽림 입니다.


영화를 보고자 구로에 위치한 CGV 를 찾았는데요, 여러 홍보물을 보면서 내가 놓쳤던 영화는 무엇이 있을까 하고 한번 훑어보게 됩니다. 퍼시픽림은 홍보물이 두칸에 배치되어 있네요ㅎㅎ. 

참, 주차정보가 필요한분을 위해 주차정보 첨부합니다.

[주차정보]

평일주중(~밤 9시까지) : 3시간 30분 무료(초과 10분당 : 1,000원)

주말/공휴일 : 3시간 30분 2,000원 (초과 10분당 : 1,000원)

21시 이후(입차시간 기준) : 1,000원

[특이사항]

- AK플라자(구 애경백화점) 주차장 이용 가능

- 6층, 8층 무인정산기에서 지류 티켓 바코드 또는 모바일 티켓 QR코드로 정산 후 출차 가능

- 백화점 영업시간 종료 이후에는 동문주차장 이용을 부탁드립니다

주차정보 출처 : http://www.cgv.co.kr/theaters/?page=location&theaterCode=0010#menu



집어들고 한컷 찍어봅니다. 예거들의 대장으로 미국 소속의 "집시데인저"가 홍보지의 메인을 장식하고 있군요ㅎㅎ.  양손에 장착한 쌍칼이 참 멋져보이지만.. 실제 영화에서는 약하기 그지없는 칼날임을 알수 있었어요. 

또한, 1편에서 느꼈던 거대하다못해 웅장하기까지했던 동체의 크기가 실로 작아보이기 그지없더군요.

빌딩숲에서라면 숨바꼭질도 가능할법한 사이즈의 예거사이즈..  실물사이즈가 79m 라고하니, 뭐 사실적이긴 하네요.



STORY 

끝나기 않은 전쟁, 진화하는 적에 맞서라!

끝나지 않은 전쟁, 진화하는 적에 맞서라!

전 세계를 초토화시켰던 전쟁 이후, 지구 종말의 위기가 다시 찾아온다. 

더 강력하게 진화한 적들의 공격이 인류의 재앙을 불러오고, 최정예 파일럿과 업그레이드 된 거대 로봇 ‘예거’ 군단은 사상 최대의 반격을 시작한다. 하지만, 아무도 예상치 못했던 또 다른 적의 등장으로  인류는 전대미문의 위기에 봉착하게 되는데…

이건 뭐.. 줄거리 복붙 이었군요ㅋㅋ.. 


아주 약간의 스포(스포인듯 스포아닌 스포같은?)를 하자면 퍼시픽림3를 암시하는 결말이 나옵니다. 잘 안보이죠? 드래그 하시거나 잘~보면 보일겁니다. 혹시 스포를 원치 않는 분들을 위해서 안보이게 했으니 이해해주시기 바랍니다.


영화의 평을 해보자면 일단, 중국 자본이 많이 들어갔음을 영화 곳곳에서 느낄 수 있었습니다. 동양인 그 중에서도 중국배우들이 영화 곳곳에 상당수 배치되었더군요. 인종의 다양성과 미래 시대를 배경으로 한 만큼 어찌보면 더 사실적인 인물배치라고 볼 수 있겠으나 아직 동양인의 비율이 상당부분 차지하는 헐리웃 영화가 낯설게 느껴지긴 하더군요.

또 한가지로 유치함을 들 수 있겠습니다. 뭐 영화의 성격상 그리고 스토리를 풀어나가기 위한 큰 그림상 유치한 느낌이 없앨 수 없었을것이기에 이해는 합니다. 그러나 이해와는 별개로 실망스러웠다고 덧붙이고 싶네요. 더 창의적이고 관객들에게 신선함을 제공해줄 아이템이 정녕 없던건지, 단순히 퍼시픽림1 에서의 성공에 힘입어 시리즈화 하여 이미 흥했던 영화의 세계관, 캐릭터를 재활용함으로서 창조적인 내용보다는 그렇고 그런 흐름정도로 느껴지는 영화였습니다.  쥬라기공원의 감독인 거장 스티븐 스필버그 정도의 창의성을 바라는건 아니지만 그래도 어느정도 깊이를 더하거나 창의성을 발휘했으면 하는 아쉬움이 남는군요.

마지막으로 뻔해보이는 스토리라인과 등장인물을 가지고, 단순히 초거대 로봇과 괴물간의 비주얼과 액션을 즐기기만 할 수 있던 영화를  나름 흥미롭게 풀어나간 감독이 아닌 작가 진들의 노고에 박수를 보냅니다.ㅎㅎ

다음 영화에서는 철학적으로든 감상적으로든, 전문적인 주제를 다루든 마음속에 울림을 주는 영화도 만들어주시기 바랍니다.


별 5개 만점에 3개 주겠습니다. ★★★☆☆


Posted by 타이니스타
2018. 3. 25. 23:53
안녕하세요 "타이니스타" 입니다.  오늘은 주말을 맞아서 쿠우쿠우 보라매점을 다녀왔습니다.
남다른 식탐으로 여러 종류의 뷔페를 섭렵했습니다.
애슐리, 쿠우쿠우, 빕스, 스시오, 스시이로하, 스시메이진, 닌지, 죨리메종, 성스, 토다이, 마벨리에, 계절밥상, 올반, 무스쿠스, 풀잎채 등등..  여러곳을 다녔지만 이중에 가성비가 가장 좋은 곳으로 항상 애슐리와 쿠우쿠우를 꼽습니다.

그 중에서도 쿠우쿠우에 가장 큰 점수를 주고 싶은데요, 가보셨던 분이라면 많이들 공감 해주시리라 생각되는군요.

주로 서울대입구에 있는곳으로 갔었는데, 얼마전에 새로 오픈했다는 보라매점이 집에서 더 가깝다보니 이곳으로 향하게 되었습니다.  스시 롤 & 샐러드바 쿠우쿠우.  Tel. 835-6274

쿠우쿠우보라매점 정보입니다. 영업시간 : 매일 11:00 - 22:00.

이용금액 : 평일점심 17,900원, 평일저녁 21,900원, 주말및공휴일 22,900원, 초등학생 12,900원, 미취학아동 8,000원

저는 주말 금액으로 1인당 22,900 원으로 이용했어요~


대기하는 손님이 있을 경우에는 1시간 30분으로 이용시간을 제한하고 있으며 잔반 처리비용을 줄이고자 남길 시 1000원의 기부금을 받는다고 써있군요.  

실상 남기는 음식에 대해서 일일히 확인하거나 돈을 받는 경우는 없지만 한번이라도 잔반에 대한 경각심을 심어주기 위한 문구라고 보고 넘기면 되겠습니다.


매장을 들어와서 한컷 찍어봤는데요, 매장이 제가 가본 쿠우쿠우 매장들 중에는 가장 컸습니다.

좌측으로도 샐러드바가 쭉 있었고, 우측으로도, 저~넘어 끝라인에도 샐러드바가 있는데 메뉴가 정말 많은게 쿠우쿠의 특징이자 장점이에요~


여긴 디저트가 있는 라인인데, 미니바나나가 가장 인상깊었어요ㅎㅎ  얼핏 보이는대로면 미니바나나, 망고, 패션후르츠, 리치, 3색과일(망고, 망고비슷한거(?), 용과), 키위, 파인애플, 그 아래는 뭔지 모르겠지만 리치같아보이네요ㅎㅎ.

옆라인에는 롤케익, 빵, 슈빵(홈런볼비슷한거요), 케익류, 젤리등이 있습니다~ 저는 이중에 망고를 가장 좋아해요! 망고귀신 입니다.ㅎㅎ


짠~ 첫접시에요. 아래 종이에 프린팅된 내용에는 120여종의 메뉴를 제공한다고 되어있는데 체감은 그 이상 되는듯 했어요.  쇠고기 초밥, 생연어초밥, 간장게장, 훈제연어, 참치초밥, 장어초밥, 다랑어회, 훈제연어초밥, 주꾸미초밥 등, 우측접시에는 케밥, 간장새우장, 갈릭양념치킨, 연어 아가미구이, 꿔바로우, 게살튀김, 새우튀김, 윙/봉을 담아왔습니다. :)

먹고 싶은게 워낙 많다보니 둘이서 시작부터 두접시씩 가져왔어요 !  하나하나 다 맛있더군요. +_+  개인적으로 평소에 가던 매장보다 더 나았어요..  간장게장은 얼마전에 먹었던 신림 인근의 게장무한리필 집보다도 낫더군요. 


두번째부터는 두접시씩 가져다 먹기에는 폭풍 흡입이 중간에 끊기다보니 한접시씩 가져다 먹었습니다.  참치회 2종, 훈제연어, 오징어초밥, 장어초밥2개, 새우치즈초밥, 새우장초밥, 홍민어(가짜 도미로도 자주 먹어보셨을)초밥, 생연어초밥, 군함, 새우만두, 타코야끼를 가져왔군요.  타쿠야끼는 딱 한알 먹거나 먹지 않는게 나은 퀄리티에요.  맛은 있으나 문어가 씹히진 않습니다. ^^

나머지는 모두 맛있게 먹었어요.  사실 스시를 아주좋아하는지라 예전에 애슐리에서 배터지게 먹고는 1시간쯤 뒤에 1000원~3천원 가격대의 저렴한 회전초밥집이 눈에 띄어 들어가서는 수십접시(약 4만원?)를 비웠을정도로 초밥에 대한 사랑이 유별난 저이기에 다른 스시부페들도 많이 다녀봤어요. 

많은 초밥부페들이 밥의 양을 많이해서 주거나 밥의 밀도를 높여서 원가가 높은 회보다는 쌀로 배를 채우게 하려는 경향이 있는데요, 쿠우쿠우는 그런 경향이 상대적으로 덜하고, 초밥 자체도 맛있는편에 (물론 단품으로 파는 집에는 미치지 못해요.  예를들어 제 포스팅중 이수역의 스시이로하와 같은) 속하다보니 쿠우쿠우를 더욱 애정하게 되었지요.


이번에는 눈을 돌려서 양식 종류도 먹어봤어요~  이때쯤부터 배가 많이 차더군요. 이 접시 전에 한두접시 더 먹었는데 별 차이가 없는 접시라서 포스팅에서는 제외했습니다.  고르곤졸라 피자, 새우구이, 샬라미(짭짤한 햄)샐러드, 홍합, 견과류 약간, 치즈콘샐러드, 치즈떡튀김, 김치전, 동태전, 베이컨버섯말이 를 가져왔어요~ 배가 불렀지만 맛있더군요 +_+  떡튀김은 배고플때 계속 들어갈듯한 맛이었으나 배부를때 먹을정도는 아니었어요 !


이제 후식으로 넘어왔군요.ㅎㅎ  롤게익으로 빵종류중 하나를 채워주고, 특이하게도 키위를 저렇게 원형에서 1차적인 슬라이스만 해서 내놓았기에 몇개 집어와서 먹었어요.  까먹는게 조금 불편했으나 역시 키위는 맛있는 과일입니다.

그리고 배가 아무리 불러도 잘들어가는 냉동(해동)망고와 패션후르츠,  소화를 도와줄 파인애플을 가져왔어요.

파인애플의 경우 고기종류 즉, 단백질을 분해하는 효소를 많이 포함하고 있어서 육류 위주로 과식했을때에 소화를 돕는 역할을 하므로 후식에 반드시 먹어주는게 좋답니다.  과식으로 자칫 소화불량에 걸리면 안되니까요.  파인애플은 고기를 재울때에도 많이 쓰는 재료니 밑줄 쫙~ 긋고 기억해두세요.

밀가루와 같은 탄수화물 종류에는 무우가 좋구요,  대체로 소화에 도움이되는건 매실입니다.

맛있는 음식을 배불리 맛있게 먹은후에 소화불량으로 고생하면 얼마나 억울할까요.. 꼭 후식으로 파인애플, 잊지 마시구요.


마지막으로 주차안내입니다. 쿠우쿠우 보라매공원점의 경우 해당 건물의 주차장에 주차를 할 수 있으며 최대 2시간 30분까지 무료로 주차가 가능합니다.  계산하고서 퇴점할때에 사진 우측하단에 보이는 도장으로 주차권에 도장을 찍어서 무료주차 혜택을 받을 수 있어요.

식사를 2시간 이상 하는 분들은 거의 없는편이니 편하게 식사하고 돌아가면 될듯합니다. 쿠우쿠우는 "보라매아카데미타워" 에 위치해있으며, 해당 건물의 다른 상가를 잠시 이용할 시간도 될듯하네요. 


주차권은 이렇게 건물명으로 "보라매아카데미" 가 타이틀로 찍히고, 해당 건물의 전화번호, 주차장에 들어온 입차일시가 찍힙니다.  해당 건물에 입점한 업소에서 도장을 찍으면 2시간 30분이 무료라고 되있는것으로 보아서 다른 매장 이용시에도 무료주차 2시간 30분을 제공하는듯 하니 참고하시구요.   주차권 분실시에는 자그마치 1일치 주차요금으로 2만원을 정산해야 한다고 하므로 주의에 주의를 기울여야겠습니다.


위치 첨부합니다. 지도로 봤을때에 역과 가까운 곳은 아니다보니 자차를 이용해서 방문하거나 근처 주민들이 많이 찾을것으로 예상되는군요.  쿠우쿠우는 국내에도 수많은 지점이 있고, 중국에도 매장이 두개정도 진출한 것으로 보이던데, 이렇게 많은 매장을 오픈했다는 것만 보아도, 쿠우쿠우의 인기를 실감할 수 있었습니다.  

두번 세번 추천해도 모자란 스시뷔페 쿠우쿠우. 소중한 친구나 가족, 연인과 한번 들러보시기 바랍니다.


Posted by 타이니스타