https://coolsms.co.kr/

 

쿨에스엠에스 - 우주에서 가장 빠르고 안정적이고 쉬운 문자메시지(SMS) 서비스를 제공합니다.

알림톡, 문자메시지를 쉽고 빠르게 전달해 드립니다.

www.coolsms.co.kr

 

 

 

SDK

 

 

Software , develop, kit

소프트웨어를 개발하기위 한 모든 것들이 포함되어 있다는 것

sms를 전송하기 위해 필요한 것들이 모여있다.

sms을 전송하기 위해 필요한 것을 생각해보자

핸드폰은 주파수로 메세지를 보낸다 -> 주파수로 메세지를 받는다.

구마다 산 위에 안테나가 있다 : '기지국'

핸드폰에서 주파수(공기중으로 신호를 보내는 것)를 기지국으로 쏜다.

기지국에서 신호를 타고가서 메세지를 받을 곳으로 신호를 쏴준다.

이 행위를 컴퓨터로 하면 광케이블로 서버로 신호를 보낸다.

서버에서 어떤형태로 가야하는지(메세지) 어떤 기지국으로 가야하는지 분석해서 (프로토콜 분석기)

해당 기지국으로 신호를 보낸다.

서버는 메서드(BufferedRead)를 들고있다.

메세지를 보내달라 요청할경우 해당 메서드가 신호를 받아서 파싱(프로토콜을 분석)​​한다.

*Json으로 보낸다.

분석을 끝낸 후 해당 메세지를 보내야 하기 때문에 또다른 메서드(BufferedWrite)가 신호를 전송한다.

SDK : 해당 메서드들를 가지고 있는 것을 말한다.

* 해당 파일을 다운 : 컴퓨터에 해당 클래스들을 다운로드 후 빌드패스 한다 -> 해당 클래스들을 사용할 수 있다.

 

 

 

 


 

 

 

 

 

REST API

application interface

이 애플리케이션에 접근하기 위한 인터페이스(통로)라는 말이다.

ex. tv에 접근하기 위한 인터페이스는 리모콘이다.

interface는 protocol이랑 다르다.

* 프로토콜 :서로 동등한 입장에서 약속하는것

* 인터페이스 : 상하관계로 규칙을 정하면 따라라고 하는것

Rest : 자원

REST API : 자원에 접근하기 위한 application interface를 말한다.

외부에서 해당 메소드에 접근할 수 있게 해주는것

(IP주소와 포트. 인터넷 주소를 통해 메서드에 접근하게 해준다.)

서버입장에서는 아무나 접근해서 메소드를 때리면 찝찝하기 때문에 api key를 발급해서 아무나 때릴 수 없게 한다.

* 참고

 

http://blog.naver.com/PostView.nhn?blogId=ssdyka&logNo=221093446016

 

SDK란? API란?

API와 SDK는 개발을 하면서 절대 빠질 수 없는 용어이다.정의 및 차이점등을 알아보자. SDK란? S...

blog.naver.com

 

* REST API와 SDK의 차이점

 

 

 

 


 

 

 

 

알로하통신 : 주파수로 통신하는 것 (FDMA, TDMA)

FDMA

다중접속(Multiple Access) 방식 중 가장 간단하고 오래된 방식이다.

가용 스펙트럼을 정해진 대역폭 내에서 여러 무선 채널로 분할하여 사용하는 것이다.

단점 : 주파수 이용효율에 한계가 있다.

TDMA

다원접속 방식 중 하나이다.

시간축을 여러시간 구간으로 나눠서 각 사용자가 자기에게 할당된 시간 구간을 다른 사용자의 시간 구간과 겹치지 않게 사용한다.

(시간을 슬라이싱)

FDMA의 단점을 보완해서 만들어졌다.

CDMA

핸드폰은 해당 방식을 사용한다.

Code Division Multiple Access

직접 시퀀스 스펙트럼 확산(DSSS)을 기반으로 하는 다중 접속 방식. 여러 사용자가 통신 자원(전파망)을 공유하면서 동시에 이용하기 위한 방식중 하나로, 사용자마다 고유한 코드를 이용하는 데에서 이름이 붙여졌다.

각자의 데이터를 곱해서 0으로 값이 떨어지는 것끼리 모아서 헤더를 보고 누구의 데이터인지 확인 후 통신기기가 조립해서 데이터를 분류한다.

분류 후 헤더값을 확인하면서 자기것인지 아닌지 확인 후 다른것들은 버리고 자기것만 읽는다.

* 참고

 

https://namu.wiki/w/CDMA

 

CDMA - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다. 나무위키는 백과사전이 아니며 검증되지 않았거나, 편향적이거나, 잘못된 서술이 있을 수 있습니다. 나무위키는 위키위키입니다. 여러분이 직접 문서를 고칠 수 있으며, 다른 사람의 의견을 원할 경우 직접 토론을 발제할 수 있습니다.

namu.wiki

 

 

* 이미지출처 : 나무위키

 

 

https://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C%EB%B6%84%ED%95%A0%EB%8B%A4%EC%A4%91%EC%A0%91%EC%86%8D

 

코드분할다중접속 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 코드분할다중접속(영어: Code-Division Multiple Access, CDMA)은 이동 통신에서 코드를 이용한 다중접속 기술의 하나이다. 1996년 한국에서 최초로 상용화되었다.[1][2] 한국이동통신(현 SK텔레콤)은 1996년에 세계 최초로 CDMA를 기반으로 한 이동통신 서비스를 상용화하였다.[3] CDMA는 미국의 퀄컴에서 기술규격을 개발하여, 1989년 샌디에이고에서 최초로

ko.wikipedia.org

 

 

 

 


 

 

 

 

package sms;

import java.util.HashMap;
import org.json.simple.JSONObject;
import net.nurigo.java_sdk.api.Message;
import net.nurigo.java_sdk.exceptions.CoolsmsException;

/**
 * @class ExampleSend
 * @brief This sample code demonstrate how to send sms through CoolSMS Rest API PHP
 */
public class ExampleSend {
  public static void main(String[] args) {
    String api_key = "#ENTER_YOUR_OWN#";
    String api_secret = "#ENTER_YOUR_OWN#";
    Message coolsms = new Message(api_key, api_secret);

    // 4 params(to, from, type, text) are mandatory. must be filled
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("to", "01000000000");
    params.put("from", "01000000000");
    params.put("type", "SMS");
    params.put("text", "Coolsms Testing Message!");
    params.put("app_version", "test app 1.2"); // application name and version

    try {
      JSONObject obj = (JSONObject) coolsms.send(params);
      System.out.println(obj.toString());
    } catch (CoolsmsException e) {
      System.out.println(e.getMessage());
      System.out.println(e.getCode());
    }
  }
}

 

 

자신의 apk_key와 api_secret 은 인터넷에 노출하지 않아야 한다.

* 쿨에스엠에스에서 공개된 message 코드이다*

 

 

위 네모값을 Json으로 변경해서 서버에 전송한다.

api key랑 secret 도 같이 전송한다.

* from 에는 등록한 나의 전화번호를 적지 않으면 전송되지 않는다.

to String : 모든걸 String으로 바꿔서 전송

 

 

 

 


 

 

 

 

​​

스레드 동기화

스레드가 있을때 동시접근하는 것을 막기 위해서 synchronized 를 메서드 앞에 삽입한다.

-> 벡터공간이랑 비슷하다.

(동시접근해도 상관없을때는 Array List 사용하면 된다.)

 

 

 

openclose