1.1 서버와 클라이언트
1. 클라이언트
: 서버로 요청하는 프로그램
ex) 웹 브라우저
2. 서버
: 클라이언트의 요청을 받아 처리하는 주체
1.2 데이터베이스
1. 데이터베이스
: 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소
- 데이터베이스의 동작 원리 :
클라이언트에서 SQL(데이터베이스를 조작하기 위한 언어)로 데이터베이스 관리 시스템에 데이터를 요청
→ 데이터베이스 관리 시스템은 데이터베이스에서 데이터를 꺼내 응답
2. RDB (Relational Database)
: 가장 많이 사용하는 데이터베이스, 관계형 데이터베이스
(ex : 오라클, MySQL, SQL 서버, PostgreSQL)
데이터 저장, 질의, 수정, 삭제가 용이하지만 성능을 올리는 게 쉽지 않음
- 관계형 데이터베이스
: 데이터를 행과 열로 이루어진 테이블로 관리, 기본 키를 사용해 각 행을 식별, 각 테이블 간에 관계 지을 수 있음
3. NoSQL
: 데이터 모델링을 어떻게 하느냐에 따라 다이나모디비, 카우치베이스, 몽고디비로 다양한 DB가 있음
- 스케일 업, 스케일 아웃
: 머신의 성능을 좋게 하는 스케일 업, 머신을 여러 대로 분리하는 스케일 아웃
스케일 업은 장비를 업그레이드하면 되지만 스케일 아웃은 데이터베이스를 분산하고, 이때 트랜잭션을 사용하면 성능이 떨어짐 → 이러한 RDB 문제를 해결하기 위해 NoSQL 등장
1.3 아이피와 포트
1. 아이피
: 인터넷에서 컴퓨터 또는 기기들이 서로를 식별하고 통신하기 위한 주소
2. 포트
: 아이피 = 서버를 찾기 위한 번호, 포트 = 그 서버에서 운용되고 있는 서비스를 구분하기 위한 번호
아이피 + 포트 → 서버 이용 가능
1.4 라이브러리와 프레임워크
1. 라이브러리
: 애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음
2. 프레임워크
: 소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경
정해진 틀에서 개발해야 한다는 단점, 개발 효율은 굉장히 높음
- 라이브러리, 프레임워크 비교
공통점 : 개발자가 소프트웨어를 개발하기 위해 사용하는 도구
차이점
: 프레임워크 - 애플리케이션을 개발할 때 전체적인 구조를 잡기 위해 사용하는 것
라이브러리 - 개발을 하는 과정에서 필요한 기능을 구현하기 위해 사용하는 것
1.5 백엔드 개발자의 업무
: 과제 할당 → 과제 분석 → 개발 → 테스트 → QA → 배포 → 유지보수
1.6 백엔드 프로그래밍 언어
: 파이썬, 자바, C#, C++ 등
1.7 자바 애너테이션
: 자바로 작성한 코드에 추가하는 표식, 보통은 메타 데이터로 사용
ex)
@Override : 선언된 메서드가 오버라이드 되었음
@Deprecated : 더 이상 사용되지 않음
@SuppressWarnings : 컴파일 경고를 무시함
public class A extends B {
@Override
public void print(){
System.out.println("Hello World!");
}
}
print() 메서드가 오버라이드 되었음을 의미
'Backend > <스프링 부트 3 백엔드 개발자 되기>' 카테고리의 다른 글
| 05장 데이터베이스 조작이 편해지는 ORM (3) | 2023.11.01 |
|---|---|
| 04장 스프링 부트 3와 테스트 (1) | 2023.10.31 |
| 03장 스프링 부트 3 구조 이해하기 (0) | 2023.10.29 |
| 02장 스프링 부트 3 시작하기 (0) | 2023.10.27 |
| 00장 개발 환경 구축하기 (2) | 2023.10.27 |