inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코틀린 백엔드 프로젝트 2기 - 1주차

양치잘하기
0

1주차에서 학습한 내용의 범위는 섹션2 ~ 섹션3 6 까지의 내용이다.

 

섹션 2 에서 학습한 내용은 Spring웹 프레임워크, HTTP, REST API, DBMS, JPA 에 관한 부분이다.

 

Spring

웹 프레임워크로서 동적 웹 개발을 도와주는 도구이다 백엔드에서 사용되는 다양한 종류의 프레임워크가 있는데 그 중 자바 진영에서 가장 많은 발전을 해왔고 가장 유명한 프레임워크가 바로 spring 프레임워크이다.

스프링 프레임워크는 MVC 패턴을 주로 사용하는데

사용자의 데이터를 모델에 담기 위해 작업을 하는 controller

사용자의 데이터를 담아두는 model

담긴 데이터를 꺼내와 사용자에게 보여주는 view

이 3가지를 MVC 라고 한다.

스프링은 controller - service - repository의 레이어드 아키텍쳐를 기반으로 개발을 한다.

컨트롤러는 클라이언트로부터 전달받은 데이터를 검증하는 인터페이스로 서비스 레이어를 호출한다.

서비스 레이어는 프로젝트 목적에 맞는 비즈니스 로직을 처리하는 레이어이며 리포지토리를 호출하여 여러가지 삽입, 조회, 수정, 삭제를 실행한다.

리포지토리는 데이터베이스에 접근하여 서비스로직이 호출한 기능을 수행한다.

 

HTTP

네트워크를 통해 통신할때 지켜지는 통신 규약으로 다양한 요청 메서드를 통해서 API 호출을 할 수 있다. GET, POST, PUT, PATCH, DELETE의 메서드를 사용하며 각 메서드는 REST API의 행위로서 사용이 됩니다.

 

REST API

HTTP 통신을 하는 어플리케이션간의 규칙이며 강제성을 띄지는 않지만 핵심적인 내용으로 URL을 통한 자원의 표현, HTTP 메서드를 통해 행위를 표현하며 HATEOS를 준수하여 클라이언트의 행위 가이드가 되어줍니다.

 

DB

여러 사용자가 공유하기 위한 목적으로 사용되는 통합, 관리데이터의 집합으로 DBMS를 통해서 데이터들을 관리할 수 있습니다. 가장 널리 쓰이는 관계형데이터베이스를 통해 강의를 진행할 예정이며 관계형 데이터베이스는 테이블을 통해 저장을 합니다.

 

JPA

Java Persistence API의 약자로 자바 ORM 기술의 표준 인터페이스입니다. 자바 또는 코틀린으로 생성된 객체를 데이터베이스의 테이블로 매핑하여 사용해주고 그 필드들을 컬럼으로 매핑해줍니다.

ORM 기술을 사용하여 개발자가 직접 쿼리를 작성하지 않게 해줍니다. ORM기술은 특정 데이터베이스에 종속적이지 않은 사용이 가능하며 다양한 DBMS로 변환이 가능하고 데이터를 객체 중심적으로 볼 수 있어 유지보수에 유리합니다.

단점으로 복잡한 쿼리를 작성하는 상황에서의 한계점, 성능 최적화가 이루어 지지 않은 점, 그리고 초기 학습 곡선이 크다는 점입니다.

ORM은 많은 개념과 설정이 필요하기 때문에 학습에 많은 시간이 소요됩니다

 

영속성 컨텍스트

JPA에서 엔티티를 관리하는 임시 메모리의 개념이다.

특징

 

1주차의 섹션 3 학습내용은 6강까지의 강의를 수강하였습니다.

https://start.spring.io 사이트를 통해서 프로젝트를 생성하였고 git, github를 이용하여 프로젝트 진행 사항을 관리할 수 있게 세팅하였습니다.

프로젝트의 클래스들을 생성하면서 각 클래스 엔티티에 @Id, @GeneratedValue, @ olumn 등 데이터베이스에서 인지할 수 있는 어노테이션들을 학습하였고

추상클래스에는 @MappedSuperClass 어노테이션을 선언하여 클래스를 상속받는 클래스들의 필드를 테이블의 컬럼으로 사용할 수 있게 해주었습니다.

백엔드

답변 0