Skip to content

Latest commit

 

History

History
59 lines (52 loc) · 3.48 KB

00장-02장 스프링부트 3 시작하기.md

File metadata and controls

59 lines (52 loc) · 3.48 KB

❤️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): 스프링에서 제공하는 다양한 기술들을 추상화해 쉽게 사용하는 인터페이스