반응형
여승철
INTP 개발자
여승철
  • 분류 전체보기 (376)
    • CS (16)
      • 면접 준비 (7)
      • 운영체제 (0)
      • 네트워크 (2)
      • HTTP (6)
      • 스프링(Spring) IoC 컨테이너 (0)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Java (43)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • ETC (11)

블로그 메뉴

  • 홈
  • 태그

인기 글

태그

  • jsp
  • 로그인
  • Dao
  • HTTP
  • 회원 관리
  • 디자인 패턴
  • querydsl
  • 게시판
  • servlet
  • mybatis
  • 맥킨지
  • 환경 세팅
  • EC2
  • JSTL
  • 스트림
  • Spring Batch
  • controller
  • JDBC
  • 이펙티브 자바
  • ubuntu

최근 댓글

최근 글

hELLO· Designed By 정상우.
여승철

INTP 개발자

JS Web API ( storage, fetch, geolocation )
Front-End/JS

JS Web API ( storage, fetch, geolocation )

2023. 4. 28. 18:00
반응형

Storage API

Web Storage API는 브라우저에서 Key-Value 구조 데이터로 저장하고 검색하기 위한 방법을 제공합니다.

 

window.localStorage

  • 특정 웹사이트의 로컬 저장소에 대한 접근을 제공
  • 해당 도메인에 대한 데이터를 저장, 읽기, 수정, 삭제 할 수 있습니다.
  • 데이터는 만료일이 없이 저장되어 브라우저를 닫아도 삭제되지 않습니다.

    localStorage.setItem("name", "Kim");  // 저장소에 데이터 저장
 
    localStorage.getItem("name");         // 저장소에서 데이터 항목 검색

 

window.sessionStorage

  • localStorage 객체와 세션에 저장한다는 차이점만 빼면 똑같습니다.
  • 세션에 저장하기 때문에 브라우저를 닫으면 데이터가 삭제됩니다.

    sessionStorage.setItem("name", "Kim");  // 저장소에 데이터 저장
 
    sessionStorage.getItem("name");         // 저장소에서 데이터 항목 검색

 

window.localStorage와 window.sessionStorage 둘 다 접두어를 빼고 사용이 가능합니다.

Storage 메서드는 다음과 같습니다.

 

  • setItem(key, value) - 저장소에 데이터 저장
  • getItem(key, value) - 저장소에 데이터 추출
  • removeItem(key) - 저장소에 있는 키 제거
  • key(n) - 저장소에 있는 n 번째 key 이름 추출
  • length - 저장소 객체에 저장되어 있는 데이터 수
  • clear() - 저장소 객체 비우기

 


Fetch API

Fetch API를 이용하여 웹 브라우저가 웹 서버에 HTTP 요청을 할 수 있습니다.

 

기본틀


fetch(url, options)
  .then((response) => console.log("response:", response))
  .catch((error) => console.log("error:", error));

 

GET 호출


fetch("http://localhost:8080/user/1")
  .then((response) => response.json())
  .then((data) => console.log(data));

대부분의 REST API는 JSON 형태로 데이터를 응답하기 때문에 json()을 사용하였습니다.

 

post 호출


      fetch("http://localhost:8080/user", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          title: "Post Test",
          body: "post test post test post test",
          userId: 1,
        }),
      })
        .then((response) => response.json())
        .then((data) => console.log(data));

 


Geolocation API

Geolocation API는 사용자의 위치를 파악하는데 사용되는 JS API 입니다.

이는 개인 정보를 침해할 수 있어서 사용자의 동의가 필요하고 HTTPS와 같은 보안 컨텍스트에서만 작동합니다.

 

 

  • getCurrentPosition() - 사용자의 위치를 반환
    • coords.latitude: 위도 반환 (항상)
    • coords.longitude: 경도 반환 (항상)
    • coords.accuracy: 위도 값과 경도 값의 정확도
    • coords.altitude: 평균 해수면을 기준으로 하는 고도 값(해발)
    • coords.altitudeAccuracy: 고도 값의 정확도
    • coords.heading: 북쪽을 기준으로 현재 진행 방향에 대한 시계방향으로 각도 값
    • coords.speed: 초당 이동한 미터 수를 나타내는 속도 값 (초속)
    • timestamp: 위치 정보를 가져온 시간 반환

    <script>
      const text = document.getElementById("demo");

      function getLocation() {
        if (navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(showPosition);
          // navigator.geolocation.getCurrentPosition(showPosition, showError);
        } else {
          text.innerHTML = "Geolocation API를 지원하지 않습니다.";
        }
      }

      function showPosition(position) {
        let lat = position.coords.latitude;
        let lon = position.coords.longitude;

        text.innerHTML = "위도: " + lat + "<br>경도: " + lon;
      }
 
     
      // getCurrentPosition의 두 번째 매개변수를 설정하였을 경우
      function showError(error) {
        switch (error.code) {
          case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation.";
            break;
          case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable.";
            break;
          case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out.";
            break;
          case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred.";
            break;
        }
      }
     
 
    </script>
   

 

  • watchPosition() - 사용자의 현재 위치를 가져오고, 사용자의 움직임에 따라 지속적으로 위치 정보 갱신
  • clearWatch() - watchPosition() 메소드의 실행을 중지
반응형

'Front-End > JS' 카테고리의 다른 글

JS JSON: JavaScript Object Notion  (0) 2023.05.02
JS JQuery ( + JQuery 사용 방법 )  (0) 2023.05.01
JS BOM( Browser Object Model ): 브라우저 객체 모델  (0) 2023.04.28
JS DOM( Document Object Model ): 문서 객체 모델  (0) 2023.04.28
JS async & await  (0) 2023.04.28
    여승철
    여승철

    티스토리툴바