본문 바로가기
Backend/<스프링 부트 3 백엔드 개발자 되기>

01장 자바 백엔드 개발자가 알아두면 좋은 지식

by ccooll 2023. 10. 27.

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() 메서드가 오버라이드 되었음을 의미