공부한 내용
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
for (int i = 0; i < citations.length; i++) {
int h = citations.length - i;
// citations[i] : [0, 1, 3, 5, 6]
// h : [5, 4, 3, 2, 1]
if (citations[i] >= h) {
answer = h;
break;
}
}
return answer;
}
}
H-Index 문제 설명이 이해가 도저히 안돼서 따로 설명을 찾아보고 문제를 풀었다.
H-Index에 대해 이해만 하면 쉬운 문제였다.
디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있습니다. 그리고 이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)
라고 정의할 수 있습니다.
1. 클라이언트 요청이 디스페쳐 서블릿으로 들어옴
2. Handler Mapping을 통해 어떤 Controller로 매핑할지 확인
3. Handler Adapter를 사용해 Controller로 요청 전달
4. Service단에서 비지니스 로직을 사용 (보통 Database CRUD 진행)
5. 컨트롤러가 ResponseEntity 반환
6. 서버 응답을 클라이언트로 반환
RESTful API란?
자원 중심의 URI 설계
HTTP 메서드를 통한 행위 정의
상태 코드의 적절한 사용
- 200번대 상태 코드
- 의미 : 클라이언트의 요청이 성공적으로 수행되었음을 나타냅니다.
- 예시:
- 200 OK: 요청이 성공적으로 처리됨. GET, PUT 요청에 대한 표준 응답입니다.
- 201 Created: 요청이 성공적으로 수행되어 새로운 리소스가 생성됨.
- 204 No Content: 요청이 성공적이지만, 클라이언트에 보낼 콘텐츠가 없음.
- 300번대 상태 코드 (리다이렉션 메시지)
- 의미: 요청한 리소스가 다른 URI로 이동되었음을 나타냅니다.
- 예시:
- 301 Moved Permanently: 요청한 리소스가 영구적으로 새 위치로 이동됨.
- 302 Found: 요청한 리소스가 일시적으로 다른 위치로 이동됨.
- 304 Not Modified: 리소스가 변경되지 않았으므로 클라이언트의 캐시된 버전을 사용할 수 있음.
- 400번대 상태 코드 (클라이언트 오류)
- 의미: 클라이언트의 잘못된 요청으로 인해 서버가 요청을 처리할 수 없음을 나타냅니다.
- 예시:
- 400 Bad Request: 서버가 요청을 이해할 수 없음.
- 401 Unauthorized: 인증이 필요한 요청임.
- 403 Forbidden: 서버가 요청을 거부함.
- 404 Not Found: 요청한 리소스를 찾을 수 없음.
- 500번대 상태 코드 (서버 오류)
- 의미: 서버 측 문제로 인해 요청을 처리할 수 없음을 나타냅니다.
- 예시:
- 500 Internal Server Error: 서버 내부 오류로 요청을 처리할 수 없음.
- 501 Not Implemented: 서버가 요청 메서드를 지원하지 않음.
- 503 Service Unavailable: 서버가 일시적으로 요청을 처리할 수 없음 (예: 과부하 또는 유지보수로 인해).
데이터 포맷
하루를 돌아보며, TMI
아자아자~
참고자료