클라이언트란?
- 클라이언트는 서버로 요청하는 프로그램을 모두 일컬어 말합니다.
- 클라이언트란?
- 클라이언트(client)는 서버로 요청하는프로그램을 모두 일컬어 말합니다.
- 주소를 입렵한 뒤 enter을 눌러 정보를 요청하는 행위를 '서버에 요청한다'라고 한다.
- 그러면 서버는 그 주소에 맞는 화면으로 응답
데이터 베이스 (Database)
- 데이터베이스(Database)는 여러 사람이 데이터를 한 군데에 모아 놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소
- SQL(Structured Query Language)은 데이터 베이스가 아니다.
- 데이터베이스 관리 시스템이다.
RDB(Relational Database)
- RDB는 관계형 데이터 베이스라는 뜻이다.
- RDB 가 아닌 데이터베이스를 NoSQL 또는 NewSQL로 구분합니다.
- 관계형 데이터베이스는 데이터를 행(row)과 열(column)로 이루어진 테이블로 관리하며
- 기본키 (primary key)를 사용해 각 행을 식별합니다.
SL (Structured Query Language)
- SQL은.쿼리, 즉, 데이터 검색을 하는 언어 입니다.
- SQL도 하나만 있는 것이 아니라 ANSI 표준 SQL이 있고 각 RDB별로 방언이 있습니다.
NoSQL (Not Only SQL)
- NoSQL의 뜻이 SQL을 안쓴다는 의미로 사용되기도 한다.
- RDB는 데이터 저장, 질의 수정, 삭제가 용이하지만
- 반면에 성능을 올리는 게 쉽지 않다.
- 데이터베이스의 성능을 높이려면
- 스케일 업 : 머신을 여러대로 분리하는
- 스케일 아웃 : 데이터베이스를 분산하고, 이때 트랜잭션을 사용하면 서능이 떨어지게 된다.
* 트랜잭션 (Transaction) : 데이터 베이스의 상태를 변화 시키기 위해서 수행하는 작업의 단위
아이피와 포트
- 아이피(IP) : 인터넷에서 컴퓨터 또는 기기들이 서로를 식별하고 통신하기 위한 주소입니다.
- 서버를 이용하려면 아이피만 알아서는 안 된다.
- 포트까지 알아야 한다.
- 아이피가 서버를 찾기 위한 번호라면
- 포트는 그서버에서 운용되고 있는 서비스를 구분하기 위한 번호이다.
- 아이피가 백화점이라면 포트는 각자 다른 물건을 살수 있는 매장이다.
- 웹 브브라우저에 주소는 사실 아이피와 포트가 들어 있다.
- www.naver.com과 같은 주소는 아이피를 쉽게 알아 보기 위해 이름표를 붙인 것이다.
- Https://라는 것은 서버의 443번 포트를 사용하기 위한 입력
- 웹사이트는 기본 8080포트를 사용
라이브러리와 프레임워크
- 다른 사람가 만든 라이브러리와 프레임워크를 가져와 사용.
라이브러리란?
- 라이브러리(library)는 애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음
- 책들의 모음이라고 이해하는 것이 좋다.
- 라이브러리는 독립적으로 라이브러리끼리 영향을 크게 주지않는다.
프레임워크
- 프레임워크는 소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경.
- 단점 : 프레임워크는 정해진 틀에서 개발해야 한다
- 장점 : 개발 효율은 굉장히 높다.
- 프레임워크는 애플리케이션을 개발할 때 전체적인 구조를 잡기 위해 사용
- 라이브러리는 개발을 하는 과정에서 필요한 기능을 구현하기 위해 사용
백엔드 개발자의 업무
- 백엔드 개발자의 업무
- 백엔드 개발자의 주된 업무는 서버 측 애플리케이션을 개발하는 일
- 개발하면서 서버에 대한 지식과 프로그래밍 지식, 만든 프로그램을 배포하고
- 안전하게 서비스할 수 있게 하는 지식을 활용합니다.
- 과제 할당
- 과제를 할당하며 시작합니다.
- 사업부, 마케팅, 개발팀 등에서 개발 과제를 할당합니다.
- 과제 분석
- '친구 초대 이벤트를 만들어주세요'
- 친구는 무엇인지,
- 초대는 무엇을 의미하는지,
- 이벤트는 어떤 조건이 필요하고
- 초대를 한 친구와 초대된 친구에게 보상을 어떻게 줄지
- 제공할 성능과 사용할 기술을 검토하고
- 문제가 있다면 해결 방법도 면밀하게 분석하고 절리 해야한다.
- 오늘날 서비스는 복잡하므로 작은 기능에서 발생하는 문제 하나가
- 서비스 전체의 분제로 이어질 수 있으므로 이과 정은 매우 중요합니다.
- '친구 초대 이벤트를 만들어주세요'
- 개발
- 개발을 진행,
- 개발 과정에서는 기능을 개발하고
- 버그를 수정하는 일이 대부분
- 개발한 코드는 깃허브(github)등의 프로그램을 사용해 동료의 리뷰를 받고
- 리뷰에 대한 내용을 반영해서 코드의 완성도를 높입니다.
- 테스트
- 로직상 문제는 없는지
- 성능 한계는 어느 정도인지
- 만든 코드가 읽기 편한지
- 내가 만든 클래스, 메서드, 함수를 다른 사람이 간편하게 사용할 수 있는지 등을 검토하면서
- 개발자에 따라 단위 테스트를 작성하는 경우도 있습니다.
- 테스트 주도 개발 기법을 사용하기도 합니다.
- QA
- 애플리케이션의 품질을 높이기 위해 QA(quality assurance)를 신청합니다.
- 배포와 유지보수
- 여러 과제를 한 번에 병합해서 배포하거나
- 새로운 기능이 추가될 때마다 배포합니다.
- 쉽고 안전하게 배포하고
- 문제 발생시 쉽게 이전 버전으로 돌리는 작업을 할 수 있게 준비
- 배포 방법은 여러가지다
- 롤링 배포 : 특정 개수의 서버들을 돌아가며 배포
- 블루 그란 배포 : 서버 인스턴스를 띄우고 로드밸런서 설정을 바꿔 버린다.
- 카나리 배포 : 전체 비율(특징)만 배포하고 -> 문제 없으면 점점 배포를 늘린다.
- 자동화
- CI : 지속적 통합 / 저장소에 코드가 반영
- CD : 지속적 배포 / 실제 프로덕션 환경 까지 변경된 코드가 반영
- 자바 에너테이션
- 자바 애너테이션(java annotation)은 자바로 작성한 코드에 추가하는 표식을 말합니다.
'개인공부 > 스프링 부트 3 백엔드 개발자 되기' 카테고리의 다른 글
스프링 부트 - 3장_스프링부트3 구조 이해하기 (0) | 2023.06.25 |
---|---|
스프링 부트 - 2장_3_스프링부트3 둘러보기 (0) | 2023.06.25 |
스프링 부트 - 2장_2 스프링 부트 3시작하기 (0) | 2023.06.23 |
스프링 부트 3 - 2장 _1 DI와 IOC (0) | 2023.06.22 |
Build system 의 그레이들과 메이븐의 차이는 무엇인가요 - p24 (0) | 2023.06.22 |