공부한 내용을 모아서 블로그 글을 쓰다 보니 문제가 생겼다. 내용이 어느 정도 모여야 글을 쓸 수 있는데 모이기 전까지는 정리하지 않게 된다는 것이다. 누군가에게 도움이 되기 위해 글을 쓰려는 목적보다 나 스스로 정리를 하기 위해 글을 쓰려는 목적이 커서 하루하루 공부한 내용을 최대한 남겨보려고 한다.
API에 대해서는 여러 번 검색해 보았지만 이해를 못 했는지 볼 때마다 검색을 해봐야 했다. 이번에는 꽤 잘 이해를 한 것 같다. 검색으로 찾은 블로그의 설명이 이해가 쉬워서 잘 남기지 않는 댓글까지 남기며 감사를 표했다.
- API란 내가 만들 응용프로그램에서 사용할 수 있도록 다른 응용프로그램들을 제어할 수 있게 하는 것을 말한다. (AP:응용프로그램, I:상호작용)
- API를 사용하면 우리가 제어하고자 하는 시스템의 환경을 정확히 알지 못하더라도 손쉽게 제어할 수 있다. (자바스크립트의 alert가 간단한 예)
출처: API란?
포트폴리오 작업을 하다가 클릭을 할 때마다 로딩되게 구현하고 싶지 않아서 찾아보게 되었다.
브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지 일부만을 위한 데이터를 로드하는 기법이며 Ajax를 한마디로 정의하자면 JavaScript를 사용한 비동기 통신, 클라이언트와 서버 간에 XML 데이터를 주고받는 기술이라고 할 수 있겠습니다.
출처: [Ajax] Ajax란 무엇인가?
순수 자바스크립트로는 ajax의 사용이 어려워서 별도의 라이브러리를 많이 사용한다고 한다.
자바스크립트를 사용하여 AJAX 비동기 통신을 위해 별도의 라이브러리를 많이 사용하고 있습니다. 예를 들면 jQuery의
ajax()
메소드를 사용하거나 아니면 axios 라이브러리 등을 단지 AJAX 구현을 위한 목적으로 추가해 사용해왔습니다.
왜냐하면, 순수 자바스크립트 및 기존 비동기 통신이 어렵고 비효율적이기 때문입니다. 특히XMLHttpRequest
를 사용해서는 원하는 기능을 모두 구현하기 위해서는 매우 복잡하고 Promise 객체를 함께 사용하기도 쉽지 않았기 때문이죠.출처: 자바스크립트 Fetch API 알아보기
제이쿼리는 조금 알기 때문에 그나마 접근이 쉬울 것 같아서 제이쿼리를 이용하여 ajax를 구현해냈다. 보여지는 것은 멀쩡하지만, 정확히 모르고 사용한 것들이라 사용이 제대로 된 건지는 알 수 없어서 아쉬웠다.
$.ajax()
메소드 안에 들어갈 수 있는 키와 값이 종류가 아주 다양한데 어느 블로그에서 본 것처럼 url
과 success
키만 넣어도 괜찮은 건가? 키와 값이 너무 적으니까 뭔가 빠진 느낌이다.fetch()
로 불러와도 마찬가지겠지만 ajax로 불러온 내용에는 처음에 불러온 자바스크립트가 적용되지 않는다. callback
과 로드를 다시 하는 방법이 있었는데 리로드는 싫고 콜백은 실패. ajax로 불러올 페이지 안에 자바스크립트를 직접 넣어서 구현에 성공하기는 했다. fetch라는 방식은 생활코딩의 ajax 강의를 듣다가 알게 되었다. 처음 fetch라는 기술을 보니 ajax와 fetch의 괴리감이 느껴져서 ajax와 fetch가 무슨 연관이 있는지 따로 찾아보았다.
ES6부터 ajax를 쉽게 사용할 수 있는 fetch API가 추가되었고 이후 ES6가 표준이 되면서 사용이 쉬운 fetch API를 사용하게 되었다고 한다.
ES6에서 지원하는 fetch API는 ES6의 Promise와 함께 AJAX를 Wrapping 해주는 매우 가독성이 뛰어난 방식입니다.
출처: ES6의 Fetch API
강의 내용이 그렇게 많은 것은 아니지만 하루 만에 처음부터 끝까지 강의를 듣고 실습을 완료해서 정말 뿌듯하다.
location.hash
라는 프로퍼티나 .subtr()
같은 단순한 메소드도 너무 모른다는 생각이 다시 한 번 들었다. 폴리필(polyfill)은 개발자가 특정 기능이 지원되지 않는 브라우저를 위해 사용할 수 있는 코드 조각이나 플러그인을 말한다. 폴리필은 HTML5 및 CSS3와 오래된 브라우저 사이의 간격을 메꾸는 역할을 담당한다.
출처: 폴리필(polyfill),
fetch polyfill