HttpUrlConnection HttpsURLConnection | Android Developers developer.android.com HttpUrlConnection은 HTTP 통신을 위해 사용하는 가장 기본적인 클래스로 UrlConnection 클래스를 상속하며 abstract class입니다. HttpUrlConnection은 URLConnection 클래스와 마찬가지로 생성자가 protected로 선언되어있기 때문에 기본적으로는 개발자가 직접 HttpURLConnection 객체를 생성할 수 없습니다. 보통 Url 객체의 openConnection() 함수로 인스턴스를 리턴받아와서 사용하고 setRequestMethod() 함수를 통해 request 형식을 변경할 수 있습니다. HttpUr..
Socket Socket은 두 프로그램이 네트워크를 통해 서로 통신할 수 있도록 양쪽에 생성되는 링크의 단자입니다. TCP/IP Socket TCP는 두 프로그램 간 통신이 처음 시작될 때부터 끝날때까지 계속 연결을 유지하는 연결 지향(Connection oriented) 방식입니다. 스트림 소켓 방식 양쪽 어플리케이션 모두 데이터 주고 받기 가능 흐름 제어 등을 보장해주며 송신된 순서에 따른 중복되지 않은 데이터 수신 가능 IP와 포트 번호로 소켓을 연결하면 통신이 시작 byte 자료형으로 데이터 전송 TCP Client 구현 1. Socket에 서버 IP와 port 번호를 적어 객체를 생성하고 서버와 연결을 합니다. val socket = Socket("10.0.2.2", 8080) 2. 연결이 성공..
프로세스 (Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받은 작업을 말합니다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 합니다. 기본적으로 프로세스마다 최소 1개의 스레드를 갖습니다. (메인 스레드) 프로세스는 각각 별도의 메모리 영역(주소 공간)을 할당받습니다. Code : 코드 자체를 구성하는 메모리 영역 (프로그램 명령) Data : 전역변수, 정적변수, 배열 등 (초기화된 데이터) / 초기화되지 않은 데이터는 Bss 영역에 저장 Heap : 동적 할당 시 사용 (new(), malloc() 등) Stack : 지역변수, 매개변수, 리턴 값 등 (임시 메모리 영역) 하나의 프로세스는 다른 프로세스의 변..
Google Sheets 작성 구글 스프레드시트에 슬랙 채널에 제공할 정보를 작성합니다. Google Apps Scripts 코드 작성 확장 프로그램 - Apps Script를 클릭하고 우측에 있는 편집기 화면에 코드를 채우면 됩니다. 먼저 기능에 맞게 함수 이름을 sendMessage로 바꿔줍니다. 그 다음, 만든 구글 시트를 불러오는데 A:G까지의 범위만 필요하기 때문에 해당 범위만 불러옵니다. 그리고 이전에 만들었던 Webhook URL을 코드에 추가합니다. function sendMessage() { var googleSheet = SpreadsheetApp.getActiveSheet(); // 구글 시트 변수 생성 var data = googleSheet.getRange("A:G").getVal..
Slack Slack은 클라우드 기반의 팀 협업 도구로, 실시간 메시지, 파일 공유, 작업 관리 등 많은 기능들을 제공합니다. 즉, 업무에 관련된 모든 커뮤니케이션이 한 곳으로 집중되어 빠른 업무 확인 및 의사 결정이 가능한 커뮤니케이션 도구입니다. Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com Slack Bot 봇은 특정 작업을 수행하도록 프로그래밍된 소프트웨어 응용 프로그램입니다. 봇은 자동화되어 있으므로 사용자가 직접 실행하지 않아도 지시에 따라 실행됩니다. Slack에도 봇이 존재합니다. Slack Bot은 도우미와 메신저 역할을 수행하며 직장 동료와 함께하는 다이렉트 메시지나 대..
운영체제 (OS, Operating System) 운영체제는 하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리합니다. 또한, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해줍니다. 즉, 운영체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있습니다. 운영체제의 역할 1. 프로세스 관리 운영체제에서 작동하는 응용 프로그램 혹은 프로세서(CPU)를 관리하는 기능을 뜻합니다. 현재 CPU를 점유해야 할 프로세스를 결정하고 실제로 CPU를 프로세스에 할당합니다. 또한, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 됩니다. 2. 저장장치 관리 1차 저장장치에 해당하는 메인 메모..
ARM (Advanced RISC Machines) ARM은 세계에서 가장 광범위하게 사용되는 CPU 체계의 한 종류입니다. 이는 RISC라는 명령어 체계를 이용하는 프로세서이고 주로 사물 인터넷, 모바일 안드로이드, 랩탑, 인터넷 모뎀, 디지털카메라, 닌텐도 등 임베디드 기기에 많이 사용되고 있습니다. ARM의 구조 ARM은 칩의 기본 설계 구조만 만들고, 실제 기능 추가와 최적화 부분은 개별 반도체 제조사의 영역으로 맡깁니다. 그래서 물리적 설계는 같아도 명령 집합이 모두 다르기 때문에 서로 다른 칩이 되기도 합니다. ARM은 RISC 설계 기반으로 '단순한 명령집합을 가진 프로세서가 복잡한 것보다 효율적'임을 기반하기 때문에 명령 집합과 구조 자체가 단순합니다. 이에 따라 ARM 기반 프로세서가 더..
패리티 비트 (Parity Bit) 패리티 비트는 정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 추가되는 비트를 말합니다. 하나의 문자 또는 수는 8비트로 표현되는데 ASCII Code(7비트)와 Parity Bit(1비트)로 구성되어 있습니다. 패리티 비트를 포함한 데이터에서 1의 개수가 짝수인지 홀수인지에 따라 짝수 패리티 또는 홀수 패리티로 나눌 수 있습니다. 홀수 패리티: 1의 개수가 홀수개가 되도록 패리티 비트를 설정한다. 짝수 패리티: 1의 개수가 짝수개가 되도록 패리티 비트를 설정한다. 이렇게 패리티 비트를 정하여 데이터를 보내면, 데이터를 받는 쪽에서는 수신된 데이터의 전체 비트를 계산하여 패리티 비트를 다시 계산하는 것으로 데이터에 오류가 발생했는지를 확인할 수 있습니다. 그러나,..