[Android] 안드로이드 Kotlin으로 Socket 통신 구현하기

이황근·2024년 2월 15일

Android

목록 보기
5/9
post-thumbnail

안드로이드 스튜디오에서 Socket을 구성할 일이 생겨서 검색을 해봤는데 대부분의 자료가 JAVA로 구성되어 있어서 직접 제작을 해보려고 한다.

먼저 Socket 통신과 다른 REST API에 대해서 알아보자

REST API 통신이란?

Client의 요청이 있을 때 서버가 응답해서 해당 정보를 전송하고 곧바로 연결을 종료하는 방식이다.
Client의 요청이 있을 때만 응답하기 떄문에 Client는 요청을 보내기만 하고 Server는 응답만 하는 단방향 통신이다.
예를 들어 모바일 어플리케이션이나 웹에서는 서버에서 정보를 받는 일이 많기 때문에 이 방식을 채택한다. 하지만 채팅방 처럼 정보를 단방향으로 보내는 것이 아닌 양방향 통신이 필요할 때가 있다. 이러한 경우 Socket 통신을 사용해야한다.

Socket 통신이란?

특정 포트를 이용하여 Server와 Client가 실시간으로 양방향으로 통신하는 방식이다.
Http 통신과 다르게 Server또한 Client에 요청을 보낼 수 있습니다. 이러한 특징 덕분에 실시간 채팅이나, 스트리밍에 사용할 수 있습니다.

크게 Server 코드 부분과 Client 코드 부분(메인 화면)으로 나누어 설명을 하겠습니다.

Server

  1. manifest.xml 파일에서 INTERNET과 FOREGROUND_SERVICE 권한을 설정해야한다.
    SERVICE란 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소이다.
    Foreground 서비스란 백그라운드에서 서비스가 실행 될 때 notification을 띄우는 것을 얘기한다.
    manifest.xml 파일에 아래와 같은 권한 추가해준다. 아래의 위치에 추가해주면 된다.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

  1. ServerService 클래스를 작성해야한다. 우선 ServerService Class를 만들고 manifest.xml파일에서 Service 컴포넌트를 명시해줘야한다.

https://one-delay.tistory.com/103

profile
낭만 개발자

0개의 댓글