본문 바로가기

개발관련/TIL

내배캠 5주 1일차

오늘은 스프링 숙련 강의를 다 봤다.

강의에서 프로젝트가 있으면 백엔드가 해야할 것을 알려줬다.

프로젝트가 수강신청하는 것이라면 프로젝트의 디자인을 어떻게 해야하는지

REST API를 만들 때 지켜야하는 것 요청이 들어오면 적절한 처리를 해야하고 예외가 발생할 때 적절한 응답 등

여러가지를 설명했다. 그러나 언제 어느 어노테이션을 사용해야 하는지 프로젝트의 디자인 설계는 어떻게 해야하는 지 응답할 때 필요한 것들은 무엇인지가 아직 좀 어려운거 같다.

 

아래는 일단 지금 당장 생각나는 것을 적어 본 것이다.

백엔드는 클라이언트 또는 프론트엔드에 적절한 응답을 해야한다.
응답에는 데이터 또는 예외 상황 처리가 있다.
보내는 데이터를 DTO(Data Transfer Object)라고 하고 DTO의 타입은 Json이다.
Json은 키와 밸류가 있는 딕셔너리 또는 Map이다.
키는 String만 가능하고 밸류는 Number, String, boolean, Array, Object, Null이 올 수 있다.

백엔드는 데이터 처리를 위해 영역을 나누는데 크게 Web, Service, Repository Layer로 나눈다.

Web Layer에서는 어노테이션을 Controller를 사용하고
Post, Get, Put, Petch, Delete 요청이 들어오면 적절한 처리를 한 후 Entity를 반환한다.

Service Layer에서는 어노테이션을 Service를 사용하고 Web과 Repository 중간에서 데이터를 처리한다.
이곳에서는 Repository(DB)에서 데이터(Entity)를 받아서 Web으로 Entity를 반환한다.
만약에 처리하다가 문제가 생겨서 되돌려야 할 경우 @Transactional 어노테이션을 이용한다.
Transaction은 데이터베이스에서 데이터를 처리할 때 모든 처리가 수행이될 때만 통과하고
하나라도 문제가 생기면 데이터 처리 시작 전으로 되돌리는 작업이다.

Repository Layer에서는 DB에서 데이터를 저장 및 조회, 수정, 삭제를 한다.
DB에서 데이터를 가져오는 것은 Entity를 이용해서 JPA를 사용해 프로그래밍 언어로 SQL를 구현한다.

API를 문서화하기 위해서 여러 라이브러리가 있는데 그 중 Swagger를 이용한다.
Swagger의 장점으로는 자동으로 문서화를 해준다.

 

이 외에도 많은 것을 배웠으나 바로바로 기억이 나거나 확실하게 이해된 것은 아니라서 일단 넘어간다.

 

또한 내일부터는 ToDo List 과제를 차근히 해 나갈 것이다.

'개발관련 > TIL' 카테고리의 다른 글

내배캠 5주 4일차  (0) 2024.05.16
내배캠 5주 2일 차  (0) 2024.05.14
내배캠 4주 4일  (0) 2024.05.09
내배캠 4주 3일차  (0) 2024.05.08
내배캠 4주 2일차  (0) 2024.05.07