2022.11.30.WED

ronglong·2022년 11월 30일
0

코드스테이츠 Day30

< HTTP, API >

  • 서버가 리소스 전달을 위해 API 문서를 만들고(메뉴판, API 서버), HTTP를 통해 데이터 요청 및 응답.
  1. REST API (Representational State Transfer)
  • HTTP의 장점(무상태성)을 극대화할 수 있는 네트워크 아키텍처
    1) HTTP 사용
    2) 개별 리소스와의 통신 준수
    - REST API는 웹에서 사용되는 모든 리소스를 HTTP URI로 표현
    - 개별 리소스에 맞는 엔드포인트(URI)를 사용해야 함.
    - 리소스에 집중하여 명사 형태로.
    3) HTTP 메소드 원칙 준수
    - CRUD에 맞는 HTTP 메서드 사용(멱등성 확인)
    - GET 메서드는 body를 가지지 않으며, query parameter를 사용하여 필요한 리소스를 전달
    4) HATEOAS 원칙 준수 : 응답에 리소스의 URI를 포함한 링크 요소를 삽입. --> 다음에 할 수 있는 action을 알려줌.
  • 구글 API 디자인 가이드
    https://cloud.google.com/apis/design?hl=ko
  • API key : 리소스에 접근할 수 있는 권한
  1. HTTP API 테스트 도구
  1. 기타 정리한 것
  • scheme == 프로토콜 (리소스 접근 방법)
  • host에 포트 번호 생략
  • 쿼리 스트링 : 필터링 할 때 / 패스 파라미터 : 원본 그대로
  • 리소스는 소문자로, 공백은 -로 처리.
  • CORS(Cross-Origin Resource Sharing) : scheme & host를 통해 origin 구분
  1. 데일리 코딩
public class Solution { 
	public String computeSquareRoot(int num) {
    // 제곱근 구하고, String.format으로 소수점 2자리로 형식 바꾸기(소수점 처리). 
    // 제곱근 * 제곱근 = num

    double sqrt = 1.00; 
    for(int i=0; i<100; i++){
      sqrt = (sqrt + (num/sqrt))/2;
    }
    return String.format("%.2f",sqrt);
	} 
}

제곱근 구하기. 바빌로니아 법.
https://park-pro-diary.tistory.com/126

public class Solution { 
	public int numberSearch(String str) {
    // 빈 문자열 거르기
    if(str.length()==0) return 0;
    //문자열에서 숫자 찾아서 모두 더하고, "숫자와 공백을 제외한 나머지" 문자열 길이로 나누고, 정수로 반올림하여 int 타입 출력
    int num = 0;

    String intStr = str.replaceAll("[^0-9]", ""); // 숫자가 아닌 문자들을 모두 공백으로. 숫자만 남기기
    for(int i=0; i<intStr.length(); i++){ // 문자열 내 숫자 다 더하기
      num += intStr.charAt(i) - '0';
    }
    
    str = str.replaceAll("[0-9//s]", ""); // 숫자와 공백 제외.
    return Math.round(num / str.length());
	} 
}

아니 이거 왜 4/8만 통과하냐,, 뭐가 문제인지 아무리 봐도 모르겄는디;;

<느낀 점>

오늘 실습한 거,,
어려울까봐 페어 님이랑 하기 전에 미리 혼자서 해봤는데, 생각보다 실습 자체는 별 건 없었다. 이런 날도 있어야지.

그제 못한 멱집합과 정규표현식을 봤다.
멱집합도 어렵군,, 재귀함수 진짜 미치겠다;; 완죠니 노답,,

0개의 댓글