1일차에는 방향키와 한단어씩 이동하는 방법에 대해 학습하였다. 그러면 저번에 학습한 내용을 복습해 보자. h 입니다. w는 단어 한칸씩 W는 공백단위로 한칸씩 이고 숫자를 추가하면 그 만큼 이동합니다. 하다 2개 틀렸네요.. 더 있나.. 지금 생각난는건 이것 밖에 없군요. 문장 이동 아무튼 문장 이동은 그 문장의 처음과 끝 그리고 공백을 제외한 처음으로 이동하는 것을 말합니다. 0번을 누르게 되면 가장 맨 처음로 이동합니다. 그리고 $은 그 문장의 마지막으로 이동하고 ^같은 경우는 공백을 제외한 가장 맨 앞으로 이동합니다. 그리고 그 문장에서 f를 누르고 옮기고 싶은 문자를 누르게 되면 f + k를 입력해보겠습니다. 대문자 F + k는 무엇일까요? 안되네.... 아무튼 쩝 있던것 같은데... 아닌가 기분..
vim은 정규식, 리눅스 명령어와 함께 개발자가 학습하면 좋은 것들중 하나라고 생각합니다. 왜냐하면 웹이나 앱을 배포하기 위해서는 윈도우 보다는 리눅스를 많이 사용하는 편입니다. 또 vim은 다른 에디터와 달리 마우스가 없었던 시절에 만든 에디터라 키보드만 사용해서 코딩을 하는것이 가능합니다. 다만 타 에디터에 비해 배우는 것이 굉장히 어렵다고 전해집니다.(물론 emacs빼구요) 이게 vim과 emacs의 학습곡선인데 vim같은 경우 어느정도 까지 학습을 하게 되면 그 다음부터는 일정하다는 것을 알 수 있습니다. 물론 그렇다고 vim을 모르는 상태에서도 vim을 사용이 불가한것은 아닙니다. i , q , wq만 알고 있으면 vim을 사용할 수 있기 때문입니다. i쓰고 방향키 쓰면 되니까요.. ㅎㅎ; 그런..
내부 조인과 외부 조인은 어떤 차이점이 있을까? 그림으로 그렸을때는 내부 조인과 외부 조인의 차이는 못느끼지만... 생각을 해보자 말 그대로 해석해보자. 내부 조인... 내부에서 조인을 한다는 것 같다. 그러니까 select * from block1; select * from block2; 이러한 sql이 존재한다고 가정해보자. 그러면 내부니까... 보통은 내부조인은 다음처럼 작성한다. select * from block1 b1 INNER JOIN block2 b2 ON b1.seq = b2.seq; 내부라는건... 뭔가 안에서 액션이 발생한다는 의미인데... 만약, 다른 요소가 존재하면 그것은 조인이 될까? 예를들어 block2에는 semi_color가 존재하는데 block1에는 semi_color가 ..
서브쿼리?는 무엇을 말하는 것일까요? 곰곰히 생각해봅시다. 이름에서 알 수 있듯이 서브 쿼리는 주 쿼리를 도와 주는 쿼리라고 할 수 있습니다. 그러면 주 쿼리는 무엇일까요? 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..