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 처리
- 오류(Error)페이지
- HTTP Status 에러
- 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
https://www.woolog.dev/backend/spring-boot/spring-boot-exception-handling-basic/
'개발 일지' 카테고리의 다른 글
[TIL]이노베이션 캠프 31일차 (0) | 2022.08.31 |
---|---|
[TIL]이노베이션 캠프 30일차 (0) | 2022.08.30 |
[WIL]이노베이션 캠프 4주차 (0) | 2022.08.29 |
[TIL]이노베이션 캠프 28일차 (0) | 2022.08.28 |
[TIL]이노베이션 캠프 27일차 (0) | 2022.08.28 |