서브쿼리?는 무엇을 말하는 것일까요? 곰곰히 생각해봅시다. 이름에서 알 수 있듯이 서브 쿼리는 주 쿼리를 도와 주는 쿼리라고 할 수 있습니다. 그러면 주 쿼리는 무엇일까요? select * from block; 사실 서브 쿼리나 주 쿼리나 별 다를게 없습니다. 지금까지 배운것을 전부 넣어보겠습니다. select * from block where color = 'black' group by second_color having size < 20; 그러면 서브쿼리는 어디에 추가 할 수 있을까요? 네 맞습니다, 서브 쿼리는 어디든 넣을 수 있습니다.(적어도 select에서는 말이죠) 위 코드의 열을 확인해보면 *라는 와일드 카드가 보인다는 것을 알 수 있습니다. 여기에서 와일드 카드의 역할은 모든 열을 출력 시..
개인적으로 그룹화를 사용하는 이유는 통계를 내기위해 사용되는 것이라고 생각이 듭니다. 통계에는 평균을 구한다는지, 최댓값, 최솟값, 등등을 구할 수 있습니다. sql에서는 이러한 기능들을 제공하는데 이것을 그룹화라고 부릅니다. sql에서는 다음처럼 사용합니다. group by 그룹화될 열 사실 우리는 우리도 모르게 그룹화를 사용하고 있습니다. 다음 쿼리를 보면서 이야기 해봅시다. select * from block; 이상합니다. 분명히 그룹화를 사용한다고 했는데 어디에도 group by의 흔적이 보이지 않습니다. 정확히 말하면 이 방법은 암묵적인 그룹화 방법입니다. 결국 다음과 같은 쿼리들도 가능하다는 이야기입니다. select count(*) from block; select min(*) from bl..
얼마전(2달전인가.. 아무튼)에 자바 기초 스터디가 종료 되었다. 근데 이래도 끝내기는 아쉬워서 이것을 주제로 토이프로젝트를 하면 좋겠다는 생각이 들었다. 그래서 3명정도 구한다음 프로젝트를 진행했다. 4명 모두 직장인이었기 때문에 간단한 프로젝트지만, 충분한 시간을 가지고 만들려고 합니다. 저희는 여기에 존재하는 블로그글들을 보다 편하게 읽을 수 있는 것을 목적을 가지고 있습니다. 추가적으로 어떤 기능을 추가할지도 생각하고 있습니다.(ex. 기선님에게 받은 하트 수의 순위) 그리고 저희는 약 한달전에 만나 각자 어떤것을 할지 결정을 했습니다. 저는 전반적인 프로젝트 환경을 세팅하는 것을 맡았고 다른 분들이 하신 것들을 요약하면 db 설계, 도커 파일 만들기, html데모 만들기 입니다. 이거말고 다른것..
집합... 우리가 수학에서 가장 잘하는 챕터입니다. 왜냐하면 더 이상 말하지 않겠다. 아무튼 집합에는 3가지 용법이 등장합니다. 합집합, 교집합, 차집합 물론 여집합 같은 것도 있지만 여기에서는 이 3가지만 알아도 충분합니다. 사실 집합에는 전제조건이 있습니다. 정확히 말하면 합집합, 교집합, 차집합을 온전히 구하기 위한 전제조건입니다. 바로 두 집합이 비슷한 부분이 있어야 됩니다. 만약 없다면 합집합, 교집합, 차집합을 하는 의미가 없어질지도 모릅니다. 합집합 합집합의 의미는 두개의 집합을 합친다는 의미입니다. 여기 집합이 두개 있습니다. 여기서 이 두 집합을 합친다면... 다음과 같은 것을 확인 할 수 있습니다. 여기서 질문! 만약, 공통된 부분이 존재한다면, 어떻게 해야할까요? 정답은 공통된 부분은..
"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 약 일년전인것 같다. 그때 SQL 첫걸음이라는 책으로 스터디를 진행한적이 있었다. 그 책과 비교 했을때, 조금더 난이도가 있는것 같은 느낌이 들었다. 왜냐하면 SQL 첫걸음 같은 경우 1단계부터 n단계까지 step by step으로 진행되었다는 느낌이었다면, 이 책은 이런 느낌은 아니였다. 책이라는 특성때문에 setp by step의 느낌이 완전히 없어진것은 전혀 아니다. 뭐랄까... 정직한 step by step이 아니라 큰 그림을 보여주고 그 그림이 어떻게 완성하는지 그 과정을 설명해주는 느낌이 들었다. 어떻게 보면 SQL첫걸음에 비하면 난이도가 다소 높다는 느낌이 들었다. 그렇다고 SQL 레벨업 처럼 비약적으로 난이도가 높은것은 전혀 아..
gcp는 oauthtoken을 사용한다. 그래서 토큰을 받을 필요가 있다. * URL은 다른거 사용해도 되는지는 모름 현재 사용 : oauth.pstmn.io/v1/callback 이렇게 만들면 토큰이 생김 JSON파일로 다운로드 받고 열면 { "web": { "client_id": 클라이언트 ID, "project_id": 프로젝트 ID, "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_secret": 비밀번..
지금까지 단일 테이블에 대해 공부하였습니다. 테이블이 여러개라면, 어떻게 될까요? 이것을 우리는 JOIN이라고 부릅니다. 이것을 설명하기 위해서는 그림을 다시 그려야 될것 같습니다. 다중 테이블인 만큼 테이블도 2개를 준비하였습니다. JOIN을 하는 방법은 여러개가 존재하지만, 여기에서는 내부 조인에 대해 학습할 예정입니다. 참고로 외부 조인은 추후에 공부할 예정입니다. 교차 JOIN 교차 JOIN은 2개의 테이블을 교차되었다는 뜻으로 데카르타 곱입니다. 그럼 위 그림을 교차 JOIN을 하게 되면 어떤 일이 발생할까요? 이런 끔찍한 혼종을 출력할 수 있습니다. 이것을 해석하면 윗줄 1번부터 7번까지의 인덱스가 하위 인덱스들을 가진다는 의미입니다. sql구문으로 다시 작성해보죠. select * from ..
sql에서 필터링을 거는 방법은 총 2가지가 존재합니다. 하나는 where절과 having절을 사용해서 필터링을 걸 수 있습니다. 두개의 차이점은 저번 장에서 말했듯이 where절은 select구문에서의 조건문이고 having절은 지정된 그룹의 조건이라 할 수 있습니다. 여기에서는 where절에서 사용되는 필터링에 대해 말하겠습니다. 기본적인 방법은 저번 포스팅에서 말했지만 간단하니 다시 말씀드리겠습니다. select * from block where color = 'brown'; 그림으로 그려보면 다음과 같습니다. 프로그래밍 언어를 학습을 해보면 조건문은 어떤것이 존재할 까요? 간단히 말하면 boolean 자료형이 존재합니다. 즉, true와 false가 나눠져 있는 상태입니다. 위 코드에서는 색상이 ..
select절은 sql구문에서 가장 빈번하게 사용되는 구문입니다. 왜냐하면 select는 조회를 목적으로 만들어진 구문이기 때문입니다. 삽입 : insert같은 경우를 생각해보면 insert를 할 수 있는 경우의 수는 생각보다 없다고 생각합니다. 기껏해야 하나의 테이블에서 삽입을 하기 때문입니다. 하지만 조회는 하나의 테이블에서만 조회도 가능하지만, 하나가 아닌 여러개의 테이블에서 새로운 테이블을 만들어서 사용하던가, 또는 다른 테이블을 참조하는 경우가 흔치 않습니다. 즉, 조회는 다른 방법에 비해 무수히 많기 때문에 다른 구문에 비해 추가적인 노력이 필요하다고 생각합니다. select 절의 요소 select : 열 from : 테이블 or 조인할 방법 where : 조건 group by : 그룹화 ha..
ec2는 아마존이 초창기부터 시작되었던 서비스로 가상의 컴퓨터를 대행해주는 서비스를 뜻한다.(중요 서비스 중 하나) Elastic Compute Cloud의 약자이다. 아마 c가 2개라 이러한 이름으로 지은 것 같다. 나는 gcp개발을 해야하기 때문에 이들의 차이점을 바탕으로 공부할 예정이다. gcp같은 경우 google compute engine이라는 것을 제공한다고 한다. 다음 그림을 보자. 일정기간 돈을 지불하고 호텔방을 예약한다. 이것을 ec2화 시켜서 다시 말해보자. 일정시간 돈을 지불해서 가상 인스턴스를 빌린다. 우리는 직접 집을 짓는 것보다 효율적으로 하루정도 머물 집을 구할 수 있다. 집을 짓는 시간보다 빌리는 시간이 훨씬 빠르다. 서버를 구축하는 시간 보다 인스턴스를 빌리는 시간이 훨씬 ..
리전 : aws의 모든 위치하고 있는 물리적인 장소 2021년 3월 30일 기준으로 서울에 리전이 추가되어있습니다. 실제로 서울지역에 aws가 존재하는지 확인해봅시다. AWS 아시아 태평양 (서울) 리전 정식 오픈! | Amazon Web Services 2016년 1월 7일(목) 대한한국 서울에 새로운 AWS 아시아 태평양 (서울) 리전을 오늘 공개하면서, AWS가 다시 한번 큰 확장을 시작합니다! AWS 한국 고객들은 새로운 Asia Pacific (Seoul) 리전을 통해 더 빠 aws.amazon.com aws 리전 서비스 AWS 리전 서비스 aws.amazon.com 모든 서비스가 모든 리전에서 동작하는 것은 아닙니다. 예를들어 A라는 서비스는 미국 리전에서 동작하지만 서울 리전에서는 동작하지 ..
가상화는 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술입니다. 다음과 같은 그림으로 표현할 수 있습니다. 위 그림을 비추어 보자면, 하나의 물리 하드웨어에서 8개의 조각으로 나눠져있다는 것을 확인 할 수 있습니다. 이는, 8개의 시뮬레이션 환경이나 전용 리소스라는 것을 알 수 있습니다. 가상화는 [하이퍼바이저]라는 기술을 통해 구현이 가능합니다. 하이퍼바이저는 가상화를 구동하고 생성하는 소프트웨어입니다. 하이퍼바이저란? 하이퍼바이저는 하드웨어에서 시스템의 운영 체제와 리소스를 분리해 VM에 할당하여 가상 머신을 생성하고 구동하는 소프트웨어입니다. www.redhat.com 클라우드 서비스는 가상화 기술과 연관이 있습니다. ---- 나중에 다시 보는게 좋을 것..