TIL - 0806
[프로젝트 개발] 오픈 API 사용하기 - 네이버 Geocoder를 활용한 주소 검색 API
API 적용할 곳
- 도로명 주소를 입력하고, 상세주소는 유저가 마커를 찍으면 좌표가 나오는데 좌표를 가지고 변환하는 형식으로
- 아니면 도로명 주소를 입력했을 때 상세주소 입력하도록
API 살펴보기
- Maps API에 모듈 형태로 제공함 : 변환하는 역할의 모듈인 Geocoder를 사용함
- geocoder api docs
API 사용해서 데모만들기 & 데이터 보관 생각해보기
- 코드
- 좌표값을 받아 저장해두고 리뷰 글을 열 때 좌표에 맞는 위치 보여주기 하면 될 듯 : Coordinate 객체?
function search(addr) {
naver.maps.Service.geocode({
address: addr
}, function(status, response) {
if (status !== naver.maps.Service.Status.OK) {
return alert('잘못된 주소입니다!');
}
var result = response.result, // 검색 결과의 컨테이너
items = result.items; // 검색 결과의 배열
console.log(items);
});
}
- API 호출 결과(예시)
OS
프로세스와 쓰레드
- 프로세스 : 프로그램이 메모리에 로드되어 CPU에 의해 실행될 수 있는 상태를 프로세스라 함
- 코드 영역 : 프로그램의 코드가 저장되는 공간, CPU가 불러와 실행시킴
- 데이터 영역 : 전역변수, static 변수 등이 저장되는 공간
- 쓰레드 : CPU가 프로세스 코드를 실행시키는 흐름, 최소 1개를 가짐, 프로그램에 따라 멀티쓰레드를 지원함
- 멀티쓰레드 프로그램일 때 1개의 코어를 사용하는게 아니라 CPU가 가진 여러개의 코어를 모두 활용하여 동시적으로 처리 : 이전에는 1개의 코어가 쓰레드를 번갈아가며 조금씩 처리하는 줄 알았는데 코어가 놀고 있으면 그만큼 활용해서 처리
자료구조
- 데이터를 어떻게 저장할 것인가 구조를 정하는 것 : 효율적인 사용(시간, 공간)을 위해
배열
- 연속적으로 여러 같은 타입의 데이터를 담을 때 사용하는 자료구조
- 메모리 공간을 데이터타입의 (개수 * 크기)만큼 할당받음
- int 4개를 저장하는 배열이라면 - 16byte(자바 기준) : byte 단위로 메모리 주소를 가짐(100부터 시작한다면 103까지 하나의 데이터….)
- 메모리주소를 그대로 사용하지않고 인덱스를 사용함 : 0 ~ n-1까지
- 2, 3차원 배열을 만들 수도 있음 : 관계도를 나타낼 수도 있겠음
- 인덱스로 빠르게 찾아갈 수 있으므로 검색에는 유리하지만, 중간에 쓰기 작업을 할 수도 있는 경우에는 불리함(그 자리부터 이후에 저장된 데이터를 밀고 저장해야함)
- 활용해보기