반응형 ANDROID/Android 앱 프로그래밍35 [Android] 소켓(Socket) 사용하기 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 소켓(Socket) IP 주소로 목적지 호스트를 찾아내고 포트로 통신 접속점을 찾아내는 소켓 연결 TCP와 UDP 방식으로 나눌 수 있는데, 일반적인 프로그래밍에서는 대부분 TCP 연결을 사용함 HTTP 프로토콜과 소켓 HTTP 프로토콜은 소켓으로 웹서버에 연결한 후에 요청을 전송하고 응답을 받은 다음 연결을 끊음 → 비연결성(stateless) 실시간으로 데이터를 처리하는 앱은 응답 속도를 높이기 위해 연결성이 있는 소켓 연결을 선호했음 BUT 지금은? 인터넷의 속도가 빨라져 HTTP 프로토콜을 사용하는 웹이 일반적 속도가 그렇게 느리지 않으면서도 국제 표준을 따를 수 있다는 장점을 가진 웹서버로 많은 서버가 만들어지게 됨 .. 2021. 6. 28. [Android] 네트워킹(Network) 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 네트워킹 인터넷에 연결되어 있는 원격지의 서버 또는 원격지의 단말과 통신해서 데이터를 주고 받는 동작들 🤷♀️ 데이터를 주고받는 과정은 상당히 복잡함. 그래도 네트워킹을 사용하는 이유는? → 인터넷에 연결되어 있는 여러 단말을 동시에 사용할 수 있어서 다양한 데이터 자원을 효율적으로 사용할 수 있기 때문 2-tier C/S(Client/Server) 방식 클라이언트와 서버가 일대일로 연결하는 방식 대부분 클라이언트가 서버에 연결되어 데이터를 요청하고 응답받는 단순한 개념으로 가장 많이 사용하는 네트워킹 방식 웹 페이지를 볼 때 사용하는 HTTP 프로토콜, 파일 전송을 위한 FTP 프로토콜, 메일을 주고 받는 POP3 프로토콜.. 2021. 6. 27. [Android] AsyncTask 사용하기 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 기존에 사용했던 핸들러는 코드가 복잡함 && 코드가 순서없이 이곳저곳에서 실행되는 느낌 → 핸들러(Handler)를 사용하지 않고 좀 더 간단하게 하는 방법 : AsyncTask AsyncTask AsyncTask 클래스를 상속받아 새로운 클래스를 만들면 그 안에 스레드를 위한 코드와 UI 접근 코드를 한번에 넣을 수 있음 → 스레드로 처리해야 하는 코드를 하나의 AsyncTask 클래스로 정의할 수 있다는 장점! AsyncTask 클래스를 상속하여 새로운 클래스를 정의하면 그 내부에서 필요한 경우마다 콜백 메서드들이 자동으로 호출됨. 아래의 설명과 같이 AsyncTask 클래스를 사용하면 UI 객체에 접근할 수 있기 때문에 .. 2021. 6. 23. [Android] 스레드(Thread)로 메시지 전송하기 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 스레드로 메시지 전송 이전 포스팅에서는 새로운 스레드(Thread) → 메인 스레드(Main Thread)로 메시지를 전달하는 기능을 소개함 ∵ 별도의 스레드에서 메인 스레드가 관리하는 UI 객체에 직접 접근할 수 없기 때문 [Android] 핸들러(Handler) 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 핸들러(Handler) 새로운 프로젝트를 만들면 자동으로 생성되는 메인 액티비티는 앱이 실행될 때 하나의 프로세스에서 junyoung-developer.tistory.com 🤷♀️ 메인 스레드 → 별도의 스레드로 메시지를 전달하는 방법? 메인 스레드에서 변수를 선언하고 별도의 스레드가 .. 2021. 6. 22. [Android] 핸들러(Handler)로 실행 지연시키기 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 일정 시간 후에 실행하기 응답이 늦어지거나 응답이 없으면 앱이 대기하고 있는 상황이 지속되는 문제 발생 → 별도의 스레드를 만들어 처리하게 됨 BUT 버튼 클릭으로 간단하게 접속 처리하는 경우에 메인 스레드 내에서 지연시간을 주는 것만으로도 UI 멈춤 현상을 방지할 수 있음 Thread.sleep() 메서드로 대기 상태 만들기 핸들러(Handler)로 지연 시간 발생시키기 💡 핸들러로 지연시간을 주는 경우, 핸들러로 실행되는 코드는 메시지 큐(Message Queue)를 통과하면서 순차적으로 실행되므로 UI 객체들에 영향을 주지 않으면서 지연 시간을 두고 실행됨 postDelayed() 메서드를 사용하여 지정한 시간이 지난 후.. 2021. 6. 21. [Android] 핸들러(Handler) 모든 내용은 Do it! 안드로이드 앱 프로그래밍을 바탕으로 정리한 것입니다. 핸들러(Handler) 새로운 프로젝트를 만들면 자동으로 생성되는 메인 액티비티는 앱이 실행될 때 하나의 프로세스에서 처리됨 → 메인 액티비티 내에서 이벤트를 처리하거나 특정 메서드를 정의하여 기능을 구현할 때도 같은 프로세스 안에서 실행됨 ☝ BUT, 대기 시간이 길어지는 네트워크 요청 등의 기능을 수행할 때는 화면에 보이는 UI 멈춤 상태가 발생하는 문제가 생길 수 있음 [해결방법] 멀티 스레드 방식 : 하나의 프로세스 안에서 여러 개의 작업이 동시 수행 👍 같은 프로세스 안에 들어 있으면서 메모리 리소스를 공유하기 때문에 효율적인 처리 가능 👎 동시에 리소스에 접근할 때 데드락(DeadLock)이 발생하여 시스템이 비정상.. 2021. 6. 17. 이전 1 2 3 4 5 6 다음 반응형