본문 바로가기

Spring/SpringBoot

[SpringBoot] 기본 개념 (서버, 클라이언트, SQL, IP, PORT, 프레임워크, 라이브러리)

반응형

1. 서버와 클라이언트

클라이언트란?

클라이언트는 사전에서도 의미를 알 수 있듯이 서버에게 작업이나 정보를 요청하는 프로그램을 일컫는다.

우리가 사용하는 웹 브라우저도 대표적인 클라이언트 중 하나이다.

우리가 웹 브라우저에서 사이트 주소를 입력하고 로그인을 하고 무언가를 검색하는 행위들은 서버에 요청하는 행위들이고

이런 클라이언트의 요청에 맞춰서 서버가 응답을 하는 것입니다.

 

서버란?

위에서도 간단히 알 수 있듯이 서버는 클라이언트의 요청을 받아 처리하는 주체입니다.

지금 우리가 공부하는 스프링 부트는 이 서버쪽에 해당하고 클라이언트처럼 눈에 보이는 행위들

(주소 입력, 로그인, 검색)은 아니지만 이런 클라이언트의 요청들을 처리하고 응답해주는 아주 중요한 역할을 합니다.

 

2. 데이터베이스

데이터베이스(Database)는 단어에서도 짐작할 수 있듯이 데이터를 모아놓는 저장소입니다.

우리가 코딩을 하고, 작업을 하고, 프로젝트를 하다보면 방대한 양의 데이터들이 필요한데

그러한 데이터들을 흩뿌려놓을 수는 없으니 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 것입니다.

데이터베이스를 관리하는 시스템으로는  MySQL, oracle, 포스트그레SQL 등이 있습니다.

 

데이터베이스 동작 원리

 

3. RDB란?

데이터베이스는 RDB, NoSQL, NewSQL 등 여러 종류가 있습니다. 그중 가장 많이 사용하는 데이터베이스는 RDB( Relational Database)로 관계형 데이터베이스라는 뜻입니다. 그렇다면 NoSQL, NewSQL은 뭘까요?

NoSQL, NewSQL은 관계형 데이터베이스가 아닌 데이터베이스입니다.

 지금은 데이터베이스가 뭔지, 관계형은 또 뭔지 이해가 안 가지만 나중에 차근차근 알아보도록 하겠습니다.

관계형 데이트베이스는 행(row)와 열(column)로 이루어진 테이블로 관리하며 기본키(primary key)를 사용해 각 행을 식별합니다. 또한 테이블 간에 관계를 지을 수도 있고 RDB에서 가장 유명한 데이터베이스들은 오라클, MySQL, SQL 서버, 포스트그레SQL이 있습니다.

 

4. SQL이란?

SQL (Structured Query Language)은 데이터 검색을 하는 언어입니다. 위에 데이터베이스 동작 원리에 요청(SQL) 부분 보이시나요? 우리가 Database Management System에 무언가를 요청할 때 SQL을 쓰는 겁니다.

우리가 코딩을 할 때도 파이썬, 자바, C 등등 다양한 언어가 있듯이 SQL도 다양성을 가지고 있습니다.

ANSI 표준 SQL이 있고, 각 RDB 별로 방언도 있습니다. 하지만 지금 코딩 공부, 스프링 공부도 할 게 엄청 많은데 SQL까지 깊게 파고든다면 어려울 것 같으니 ANSI 표준 SQL만 나중에 공부해보도록 하겠습니다.

 

5. IP란?

IP가 나오니 상당히 반갑네요. 제가 네트워크병으로 군생활 할 때 IP, Port 정말 많이 봤고 관리도 해봤고 여러가지 해봤습니다.. 이게 또 이렇게 도움이 되네요.

IP는 컴퓨터 혹은 기기들이 서로 식별하고 통신하기 위한 주소입니다. 

저희가 가정에서 사용하는 컴퓨터도 ip가 다 부여되어 있습니다.

컴퓨터를 키시고 cmd 창에 들어가셔서 ipconfig 혹은 ipconfig /all 하면 해당 단말기의 ip와 MAC 주소를 보실 수 있습니다.

그렇다면 단말기에만 IP가 쓰일까요? 아닙니다.

저희가 사용하는 홈페이지, 서버에도 IP가 사용되고 있습니다. 

서버에서는 IP뿐만 아니라 포트까지 알아야 합니다.

IP가 서버를 찾기 위한 번호라고 한다면 포트는 그 서버에서 운용되고 있는 서비스를 구분하기 위한 포트입니다.

 

6. 라이브러리란?

라이브러리는 앱 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음입니다.

우리가 일반적으로 아는 라이브러리(library)는 도서관의 뜻이지만 코딩을 할 때에는 책들의 모음이라는 뜻이 더 이해하기 좋습니다.

여기서 한 가지 알아갈 점이 있다면 책은 물론 작가가 써야 더 전문성이 있겠지만 우리도 모두 쓸 수 있습니다.

그래서 라이브러리의 장점이라고 한다면 나의 개발을 위해서, 다른 사람들의 개발을 위해서 무언가를 기여하고 싶다면 열심히 공부해서 하나의 라이브러리를 만들어 작업의 편의성과 효율을 증대화 시킨다면 그 사람은 하나의 라이브러리를 만든 것입니다. 

 

7. 프레임워크란?

프레임워크도 코딩을 해보신 분들이라면 많이 들어보셨을 겁니다.

사람들이 개발을 할 때 편의를 제공하기 위해 만들어진 소프트웨어 개발 환경으로 일(work)을 하기 위한 프레임(frame)을 제공하는 겁니다.

아무래도 프레임(틀)을 제공하다보니 개발자는 이 틀 안에서 작업을 해야 합니다.

 

라이브러리와 프레임워크의 차이

프레임워크 - 개발을 할 때 전체적인 구조를 잡기 위해 사용

라이브러리 - 개발을 하는 과정에서 필요한 기능을 구현하기 위해 사용

이것을 짧게 요약한다면

프레임워크라는 틀 안에서 책들을 보면서 개발을 하며 구현한다.  

라고 요약할 수 있을 것 같습니다.

 

여기까지 백엔드 개발에 있어서 필수적인 용어들을 알아본 유익한 시간이었습니다.

반응형

'Spring > SpringBoot' 카테고리의 다른 글

[SpringBoot] @SpringBootApplication 이해하기  (0) 2024.08.20