백엔드 기본 지식

·2024년 5월 11일

! 이 내용은 책 스프링 부트 3 백엔드 개발자 되기 (자바편)을 참고하여 작성하였습니다 !


1. library vs framework

  • 라이브러리 : 애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음. 서로 독립적이다.
  • 프레임워크 : 소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경이다. (예) 스프링 프레임워크

2. spring ⊃ spring boot

  • spring 은 프레임워크 !
    서버를 별도로 수동 설정한다.

  • spring boot는 스프링 프레임워크를 기반으로 둔 도구 !
    내장현 서버를 제공해 별도의 설정이 필요 없다.

3. 제어의 역전 IoC !!

: 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것이다. 객체를 관리하기 위해서 사용한다.

public class A {
	b = new B(); // 다른 객체를 직접 생성. 제어의 역전 X
}    

public class A {
	private B b; // 제어의 역전 O
}

4. 의존성 주입 DI !!

: 어떤 클래스가 다른 클래스에 의존하게 만든다.
스프링 컨테이너가 객체를 만들어서 클래스에게 객체를 보내는 것이다.

5. spring container

: bean을 생성하고 관리한다. @Autowired annotation을 사용하여 빈을 주입받을 수 있다. 이렇게 주입을 받는 것을 의존성 주입이다.

6. Bean

: 스프링 컨테이너가 생성하고 관리하는 객체
클래스에 @Component annotation을 붙이면 클래스가 빈에 등록된다.

빈의 이름은 클래스 이름의 첫글자를 소문자로 바꾼 것이다.

7. annotation

  • @SpringBootApplication : 스프링 부트 사용에 필요한 기본 설정한다.
  • @SpringBootConfiguration : 스프링 부트 관련 설정이다.
  • @ComponentScan : 사용자가 등록한 빈을 읽고 등록된다.

  • @Component : 클래스가 빈에 등록된다.

8. 계층 : 서로 통신하며 프로그램을 구성

프레젠테이션 계층 <-> 비즈니스 계층 <-> 퍼시스턴스 계층 <-> DB

(1) 프로젠테이션 계층 - 컨트롤러
: HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할이다.

컨트롤러 예) TestController 클래스

(2) 비즈니스 계층 - 서비스
: 모든 비즈니스 로직을 처리한다. 웹 사이트에서 벌어지는 모든 작업.

(3) 퍼시스턴스 계층 - 리포지토리
: 모든 데이터베이스 관련 로직을 처리한다. 이 과정에서 DAO객체를 사용할 수 있다. DAO는 데이터 베이스 계층과 상호작용하기 위한 객체이다.

객체는 개념의 영역,
역할(컨트롤러, 서비스, 리포지토리)는 실제 구현을 위한 영역

9. project directory

  • build.gradle : 빌드를 설정하는 파일
  • settings.gradle : 빌드할 프로젝트의 정보를 설정하는 파일
  • test : 소스 코드를 테스트할 목적의 코드나 리소스 파일

감사합니다.

0개의 댓글