걷기 시작한 Coding Novice

SQL

SQL study start

Spell 2022. 5. 3. 17:12

스파르타 코딩클럽에서 등록한 내일배움단으로 SQL 수업을 드디어 진행하게 된다.

앞으로 SQL관련 강의 내용 및 복기/복습을 통해 정리한 내용을 조금씩 포스팅할 예정이다.

 

일단..

SQL에 숙달되려면 반복적으로 써보면서 감과 원리를 익혀가는 것이 중요하다고 한다. (a.k.a. 삽질)

 

  • DB와 SQL이 왜 필요할까?
    DB에서 내가 원하는 형태로 데이터를 가져올 수 있게 SQL 쿼리문이 존재한다.
    방대한 양의 데이터를 저장 가능하고, 방대한 양의 데이터에서 내가 원하는 정보를 SQL을 이용하여 굉장히 신속하게 가져 올 수 있다.

 

  • 데이터 베이스(DB)?
    책을 보관 할꺼면 그냥 한곳에 때려 박으면 된다. 그러나 이때 원하는 내용의 책을 가져오려면 힘이 든다.
    하지만 책장에 차곡차곡 정리해서 보관했을 때에는 내가 필요할 때, 원할 때 해당 내용의 책을 꺼내기가 쉽다.
    즉, 데이터를 잘 꺼내오기 위해서 DB를 써서 잘 정리하는 것 이다.
    '데이터는 단 1%의 결점도 없어야 한다, 그래서 데이터를 관리하는게 어렵다'

 

모든 데이터는 CRUD에 해당하는 기능을 지원한다.

C (Create) : 데이터의 생성을 의미
R (Read) : 저장된 데이터를 읽어오는 것을 의미
U (Update) : 저장된 데이터를 변경
D (Delete) : 저장된 데이터를 삭제 (실무에서 거의 안 이루어진다고 한다)

 

강의 내용에 없지만 추가로 읽었던 책의 내용과 함께 정리하자면!

클라이언트의 관점에서, 클라이언트는 서버에 요청을 보낸다. '타임라인에 사진을 올리는' 요청이라고 생각하면 이 요청을 크게 4가지 요소로 나눌 수 있다. 위에 설명한 CRUD 이다.
C는 사진을 '올리는' 요청
R은 사진을 '불러오는' 요청
U는 '바꾸는' 요청
D는 '지우는' 요청

개발자들은 데이터를 볼 때 항상 CRUD의 관점에서 생각해야 한다.
CRUD 중 특정 기능이 없는 기획이라면, 그 기획 의도가 명확해야 하며, 이유도 설명할 수 있어야 한다.

클라이언트는 서버에게 요청을 보낼때 적합한 처리를 해서 응답을 준다.
하지만 컴퓨터는 한글을 모르기에, 어떤 요청인지 구분할 수 있도록 하는 '체계'가 필요하다. 그 체계가 바로 API이다.
사람들은 좀 더 체계적으로 API를 관리하고 싶어 했으며 그 영향으로 좀 더 체계적인 API라는 사회 운동이 만들어진다.
그런 API를 REST(Representational State Transfer)한 API, 즉 RESTful API라고 부른다고 한다.
(RESTful API는 모든 회사에서 통용되는 절대 규칙이 아니며 일종의 사회 운동으로 상황마다 다양한 방식으로 변형해서 사용한다)

요청을 보낼 때 다음과 같은 어떤 요청을 보냈는지 파악할 수 있는 Method를 붙여서 함께 전송한다.

Create(생성해줘): POST
Read(불러와 줘): GET

Update(바꿔줘): PUT(전체) / PATCH(일부)
Delete(지워줘): DELETE
* Method는 '방법'이라는 의미이지만 개발자의 세상에선 수학의 x라는 입력값에 따라서 y라는 결과가 나오는 것, 즉 '함수'와 같은 의미로 사용한다.

* 함수에서 x를 '변수', '파라미터(Parameter)'라고 표현한다.
* 예를 들면 로그인 요청에서 필요한 ID와 비밀번호를 '로그인 요청에 필요한 요청 변수' 혹은 '파라미터'라고 표현한다.

 

  • SQL은 왜 필요한가?
    간단하게 말하자면 DB와 대화를 하기 위해서 언어가 필요한데, 그것이 바로 SQL이다.

 

앞으로 내가 우선적으로 학습 할 내용

1주차에 Select, Where

2주차에 Group by, Order by

3주차에 Join

4주차에 Subquery 그 외

등으로 CRUD에서 'Read'에 해당하는 영역이다.

 

 


참고
비전공자를 위한 이해할 수 있는 IT 지식(최원영 지음)