❤️00
- 인텔리제이 개발환경 설치
- build.gradle 파일 수정해서 스프링부트 프로젝트 만들기
- 포스트맨 설치 및 사용법
❤️01
- 1.1 서버와 클라이언트
- 클라이언트: 서버로 요청을 보내는 프로그램
- 서버: 클라이언트의 요청을 받아 처리하는 주체
- 요청: ex - 데이터를 요청, 서버 내의 처리를 요청
- 1.2 데이터베이스
- 데이터베이스와 데이터베이스 관리시스템(DBMS)은 한 쌍
- 클라이언트 ↔(요청/응답) DBMS ↔(관리) 데이터베이스
- 1.2.1 RDB: 관계형 데이터베이스
- 1.2.2: SQL: Structures Query Language
- 1.2.3: NoSQL: RDB의 문제(성능을 올리는 것이 쉽지 않음)를 해결하기 위해 등장한 RDB가 아닌 종류의 데이터베이스들 (ex: 몽고디비)
- 1.3 아이피와 포트
- 아이피: 백화점에 해당 (웹 브라우저에 입력하는 주소는 아이피를 쉽게 사용하기 위해 이름표를 붙인 것)
- 포트번호: 백화점 내의 매장에 해당
- 1.4 라이브러리와 프레임워크
- 라이브러리: 클래스, 함수 등을 모아놓은 코드 (기능 구현을 위해 사용)
- 프레임워크: 틀이 되는 개발 환경 (전체적인 구조를 잡기 위해 사용)
- 1.5 백엔드 개발자의 업무
- 1 과제 할당
- 2 과제 분석
- 3 개발
- 4 테스트
- 5 QA: QA팀 또는 개발조직 에서
- 6 배포: 롤링 / 블루그린 / 카나리 배포 등
- CI/CD: 빌드~배포의 과정을 자동화하는 것
- 7 유지보수
- 1.6 백엔드 프로그래밍 언어 (와 프레임워크)
- 파이썬 - 플라스크, 장고, FastAPI
- C++: 성능이 중요한 게임서버 개발에 주로 사용
- 자바 - 스프링, 스프링부트
- C# - 닷넷
- 자바스크립트 - 익스프레스, NestJS
- 1.7 자바 애너테이션: 작성한 코드에 추가하는 표식, 메타데이터로 주로 사용
- 메타데이터: 프로그램의 데이터를 설명하는 데이터 (주석, 어노테이션, 리플렉션 등)
❤️02
- 2.1 스프링과 스프링부트
- 스프링: 개발 시 서버 성능, 안정성, 보안 등을 높은 수준으로 제공하기 위해 등장한 프레임워크
- 스프링부트: 스프링을 더 쉽고 빠르게 이용할 수 있게 하기 위해 만들어진 도구
- 설정 파일의 구성 여부, XML 사용 여부, 인메모리 데이터베이스 지원 여부, 내장형서버(WAS: 톰캣, 제티, 언더토우 등) 유무 등이 스프링과 다르다
- 2.2 스프링 콘셉트 공부하기
- IoC(제어의 역전): 객체를 직접 생성하지 않고, 외부(=스프링 컨테이너)에서 생성/관리 하는 객체를 가져와 사용하는 것
- DI(의존성 주입): 객체를 직접 생성하지 않고, 스프링 컨테이너에서 객체를 주입받아 사용
- 스프링 컨테이너: 빈의 생성/관리/소멸을 담당
- 빈: “스프링 컨테이너가” 생성/관리 하는 객체
- 빈을 스프링 컨테이너에 등록하는 방법: XML 파일 설정, 애너테이션 추가 등
- 빈의 이름은 클래스 이름의 첫글자를 소문자로 바꾼것
- 관점지향프로그래밍(AOP): 로직을 관심 기준(핵심 관점과 부가 관점)으로 나누어 모듈화 하는 것
- PSA(Portable Service Abstraction): 스프링에서 제공하는 다양한 기술들을 추상화해 쉽게 사용하는 인터페이스