본문 바로가기

개발 일지

[TIL]이노베이션 캠프 29일차

 

 

Spring 심화 주차 8.26(금) ~ 9.1(목)

1. 개인 과제: Spring 핵심 키워드 정리
2. 팀 과제: 요구사항에 맞추어 API 구성 및 Git을 활용한 협업 

 

진행 계획

- 26일(금) API 명세서 작성, ERD 만들기

- 27일(토) 팀 과제에 필요한 강의 수강 및 공부

- 28일(일) 팀 과제 내가 맡은 이미지 업로드 기능 코드 작성

- 29일(월) 개인 과제 Spring 핵심 키워드 정리

- 30일(화) 팀 과제 코드 수정 및 검토

- 31일(수) 팀 과제 코드 취합 및 요구사항 충족 확인

- 1일(목) 팀 과제 코드 최종 취합 및 AWS 배포

 

 

 

1. 오늘의 공부

Spring 심화주 키워드 정리(공통)

 

🔐 Q1. API란 무엇인가?

API(Application programming Interface)

클라이언트와 서버간의 약속, 클라이언트가 정한대로 서버에게 요청(Request)를 보내면 서버는 요구사항을 처리하여 응답(Response)를 반환한다.

 

🔐 Q2. Client와 Sever란 무엇인가?

클라이언트는 보통 사용자가 사용하는 웹브라우저가 되고, 웹브라우저를 이용해서 도메인을 이용하거나 주소를? URI?로 서버에게 요청을 보내고 서버는 그 요청에 응답한다.

 

🔐 Q3. WAS란 무엇인가? Web Server와 차이점은 무엇인가?

1) 웹 서버는 클라이언트(웹브라우저)가 요청을 하면 그 요청에 응답 페이지를 반환한다. 그 페이지는 정적 컨텐츠(HTML, CSS, javascript, 이미지 파일 등) 즉시 응답가능한 컨텐츠이다. 웹서버의 종류로는 아파치, Microsoft IIS, Ngnix등이 있다.

 

2) WAS(Web Application Server)는 웹 서버는 처리할 수 없는 데이터베이스의 조회나 다양한 비즈니스 로직 처리가 필요한 동적 컨텐츠를 제공한다. WAS는 웹 서버와 웹컨테이너를 합친 형태인데 웹 컨테이너란 jsp, servlet을 실행시 킬수 있는 소프트웨어(웹 어플리케이션)이다. 종류는 톰캣, JEUS, IBM WebSphere 등이 있다.

 

🔐 Q4. HTTP 프로토콜이란 무엇인가?

HTTP(Hypertext Transfer Protocol)

웹에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜.

클라이언트의 요청(Request)를 받으면 서버는 요청을 처리해서 응답(Response)한다.

HTTP는 상태를 저장하지 않는(Stateless) 특징이 있다. 그래서 쿠키와 세션을 이용해서 상태정보를 유지한다.

 

🔐 Q5. Restful API는 무엇인가?

1) REST(Representational State Transfer) API란 REST 아키텍처의 제약 조건을 준수하는 어플리케이션 프로그래밍 인터페이스이다.→ REST기반으로 API를 구현하는 것

 

2) REST는 소프트웨어(웹 어플리케이션)을 구축하고 정의하는 것으로 정보 제공자와 정보 사용자 간의 약속으로 볼 수 있다. (CRUD를 GET, POST, PUT, DELETE 등 으로 나타냄)

 

3) RESTful은 HTTP 표준 규약을 지키면서 REST원리를 따르는 시스템을 지칭하는 것

 

 

 

 Spring 심화주 키워드 정리(개인)

🔑 Q1. 예외(Exception) 처리

1) 오류(Error)

처리할 수 없는 심각한 오류를 나타내는 클래스로 throw가 되었지만 catch되지 않은 것.

오류는 개발자가 처리 할 수 없는 경우다. 메모리 에러, 스택오버플로우 같은 종류가 있다

 

2) 예외(Exception)

프로그램이 복구할 수 있고 응용 프로그램에서 개발자가 처리해야 하는 문제

- Checked Exception: 컴파일 타임에 확인되는 예외로 개발자가 이러한 예외에 대한 처리를 해야 함

- Unchecked Exception: RunTimeException: 컴파일 타임에 확인할 수 없는 예외로 런타임(실행)에 발생 함.

개발자는 Unchecked Exception을 발견하거나 예상이 된다면 해당 예외에 대한 처리를 해야 함

 

3) SpringBoot Exception 처리

  1. 오류(Error)페이지
  2. HTTP Status 에러
  3. HTTP 200, Error Message

4) 관련 애너테이션(Annotation)

1) @ControllerAdvice / @RestControllerAdvice: 페이지를 보여주는 기능을 처리하는 View Resolver에 사용하며 WhiteLabel 페이지나 에러 상황을 나타내는 화면(페이지)에 대한 처리를 적용할 수 있는 애너테이션

 

2) @ExceptionHandler: 특정 Controller에 적용시켜서 에러가 발생했을 때 Catch 될 수 있게 해주는 것

 

🔑 Q2. URL과 URI

1) URL(Uniform Resource Locator): 네트워크 상에서 자원이 어디 있는지 알려주기 위한 규약으로 웹 사이트 주소 뿐만아니라 컴퓨터 네트워크 상 자원의 위치를 모두 나타낼 수 있다.

 

2) URI(Uniform Resource Identifier): 통합 자원식별자: 인터넷에 있는 자원을 나타내는 유일한 주소로 인터넷에서 요구되는 기본조건으로 인터넷 프로토콜에 항상 붙어 다니며 하위 개념으로 URL, URN이 있다.

 

🔑 Q3. AWS(Amazon Web Service)

클라우드는 우리가 만든 서비스를 돌아갈 수 있게 해주는 곳으로 흔히 웹사이트를 돌리기 위해 필요한 도메인, 서버, 데이터베이스 등등을 제공해준다. 개발자들 사이에서는 인프라라고 얘기하며 AWS는 수 많은 클라우드 서비스중에 이용률이 높은 서비스이다.

 

🔑 Q4. S3 버킷

AWS에서 제공하는 서비스 중 하나인 S3(Simple Storage Service)

버킷은 S3에서 파일을 저장하는 폴더같은 것이며 우리가 컴퓨터를 사용할 때 폴더 안에 파일을 저장하는 것처럼 S3에서도 버킷 안에 파일을 저장한다.

 

🔑 Q5. AWS SDK

SDK(Software Development Kit)는 프로그래밍을 돕는 라이브러리이다. AWS SDK를 이용하시면 개발과 연동해서 AWS를 사용할 수 있다.

 

 

2. 오늘 한 일 / 회고

- 개인 과제 Spring 키워드 정리

- Spring 강의

 

 

3. TO-DO LIST

- 팀 과제 코드 수정 및 취합

 

4. 참고 레퍼런스

https://zangzangs.tistory.com/168

 

[스프링 부트] 예외처리(Exception) @ControllerAdvice @RestControllerAdvice @ExceptionHandler @ResponseStatus

[스프링 부트] 예외처리(Exception)  @ControllerAdvice @RestControllerAdvice @ExceptionHandler @ResponseStatus 안녕하세요? 장장스입니다! 오늘은 스프링에서 '예외 처리를 어떻게 할 것인가'에 대한 포스..

zangzangs.tistory.com

https://www.woolog.dev/backend/spring-boot/spring-boot-exception-handling-basic/

 

SpringBoot 예외처리하기 - Exception Handling

SpringBoot Exception 처리 웹에서 에러가 발생했을 경우에는 크게 세가지 정도로 작업이 될 수 있다. 👉 에러페이지 👉 HTTP Status 4XX…

www.woolog.dev