전체 글

· CS
콜백 함수 란 콜백 함수는 나중에 수신 함수에 의해 호출될 것으로 예상되며 다른 함수에 인수로 전달되는 함수 입니다. 이 방식은 비동기식 혹은 이벤트 구동 함수에서 사용된다. 콜백 함수는 네트워크 통신이나 파일 입출력 작업과 같이 완료하는 데 오랜 시간이 걸릴 수 있는 작업을 처리하기 위해 주로 사용된다. 태스크가 완료될 때까지 프로그램 실행을 차단하지 않아도 된다. 이 예제는 네트워크 통신에서 service 와 어플리케이션 구성요소가 binding 하기 위해서 bindService 함수를 사용하는 예시이다. // get context context = getApplicationContext(); // bind service Intent intent = new Intent(context, Connecti..
부팅시 서비스를 구동하게 하기위해선 크게 권한설정, 부팅시 실행될 class, register receiver 로 action등록 이 필요하다. 권한설정 (AndroidManifest.xml) // 부팅 완료 후 호출 두개로 권한을 열어준다. intent filter 는 저 intent 는 저 함수에 들어갈 수 있다는 필터역할. 부팅시 실행될 class (BootReceiver) public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ checkSocketService(context); } public static void checkSocketServ..
Context 란 Android Studio에서 Context는 '맥락' 이라는 의미 그대로 응용프로그램의 현재 상태를 나타냅니다. 또한 데이터베이스, 기본 설정 및 문자열 및 이미지와 같은 정보를 제공합니다. 안드로이드 개발의 기본 개념이며 안드로이드 앱의 많은 부분에서 요구됩니다. Context는 응용 프로그램이 기본 운영 체제와 상호 작용하고 다양한 리소스에 액세스할 수 있도록 하는 Android 시스템의 핸들로 생각할 수도 있습니다. 애플리케이션의 현재 상태를 나타낸다. 액티비티와 어플리케이션의 정보를 얻기 위해 사용할 수 있다. 리소스, 데이터베이스, shared preference 등에 접근하기 위해 사용할 수 있다. 액티비티와 애플리케이션 클래스는 Context 클래스를 확장한 클래스이다. ..
IPC 란 IPC는 프로세스 간 통신(Inter-Process Communication)의 약자로, 컴퓨터 시스템에서 여러 프로세스가 서로 통신할 수 있도록 하는 방법과 메커니즘을 의미한다. IPC를 통해 서로 다른 프로세스가 정보를 공유하고, 활동을 동기화하며, 운영을 조정하여 공통의 목표를 달성할 수 있습니다. IPC 방법 공유 메모리: 프로세스는 메모리의 일부를 공유할 수 있으므로 동일한 메모리 위치에 읽고 쓰는 방식으로 정보를 교환할 수 있습니다. 메시지 전달: 프로세스는 통신 채널을 통해 메시지를 주고받음으로써 통신할 수 있습니다. 파이프 및 FIFO: 프로세스는 공통 파일 설명자에 쓰고 읽음으로써 통신할 수 있습니다. 소켓: 프로세스는 서로 다른 컴퓨터 간의 통신을 위한 표준 인터페이스를 제공..
· CS
가상화란 가상화란 애플리케이션이나 서비스를 실행하는 데 사용할 수 있는 하드웨어 플랫폼, 운영 체제, 저장 장치 또는 네트워크와 같은 리소스의 가상 버전 생성을 의미합니다. 가상화를 사용하면 단일 물리적 리소스에서 여러 가상 인스턴스를 생성하고 실행할 수 있으므로 리소스 활용도가 높아지고 확장성이 향상되며 IT 인프라의 유연성이 향상됩니다. 가상화의 유형 서버 가상화: 여기에는 단일 물리적 서버에서 여러 가상 서버를 실행하는 것이 포함됩니다. 각 가상 서버는 고유한 운영 체제, 응용 프로그램 및 리소스가 있는 독립 시스템으로 작동합니다. 데스크톱 가상화: 여기에는 단일 물리적 시스템에서 여러 가상 데스크톱을 실행하는 것이 포함됩니다. 각 가상 데스크톱은 고유한 운영 체제, 애플리케이션 및 사용자 인터페이..
· CS
포트 운영체제 통신의 종단점. 하드웨어에서에도 사용되고, 소프트웨어에서는 프로세스나 네트워크를 식별하는 논리단위로 사용됨. 포트를 사용하는 프로토콜을 전송계층프로토콜 이라 부르며 여기엔 전송제어프로토콜(TCP) 과 사용자데이터그램 프로토콜(UDP)가 있다. 동작 통신을 할 때 Client와 Server가 있는데, 두 기기가 통신을 할 때 IP주소로만 통신을 하면 통신의 종류(웹인지, 메일인지)를 파악하지 못함. 그래서 IP주소에 포트를 더한 소켓 주소로 통신을 하기로 함. 각 프로그램의 서버는 특정 포트에서 대기를 하며, 클라이언트가 약속된 포트로 접속하면 실행된다. 이를테면 HTTP의 포트번호는 80번인데 어떤 사이트를 8080포트로 들어가면 어떻게 될까? 웹서버는 80번 포트에서 대기중인데 클라이언트..
· CS
블록암호 블록 암호는 고정 길이의 평문 블록(Plain text)을 키를 사용하여 동일한 길이의 암호문 블록(Cipher text)으로 변환하는 암호화 알고리즘입니다. 양방향 암호화 중 대칭키 암호화 방식을 사용합니다. 해시함수 메시지 다이제스트(해시 함수)는 다양한 길이의 입력을 받아 원본 메시지의(Plain text) 고유한 디지털 지문을 나타내는 고정 크기 출력(Digest)을 생성하는 암호화 알고리즘입니다. 단방향 암호화인 Hash 함수를 사용합니다. 차이점 블록 암호가 메시지의 암호화 및 암호 해독에 사용되는 반면 메시지 다이제스트(해시함수)는 메시지 무결성 및 신뢰성을 확인하고 메시지에 대한 무단 수정을 감지하는 데 사용됩니다. 메시지 다이제스트는 종종 메시지의 디지털 서명을 만드는 데 사용되..
Parcel이란 Android에서 Parcel은 Java 객체를 마샬링 및 마샬링 해제하기 위한 고성능 메커니즘입니다. 객체를 바이트 스트림으로 직렬화하여 프로세스 경계를 넘어 전송할 수 있습니다. 또는 파일 또는 데이터베이스에 저장할 수 있습니다. Android는 사용자 정의 객체를 Parcel로 직렬화하는 데 사용되는 Parcelable 인터페이스도 제공합니다. Parcel 클래스는 기본 데이터 유형, 배열 및 기타 객체를 쓰고 읽을 수 있는 메서드를 제공합니다. Parcelable 인터페이스를 구현하려면 개체의 상태를 소포에 쓰고 다시 읽는 코드를 작성해야 합니다. 다음은 Parcelable 인터페이스를 구현하는 클래스의 예입니다. public class Person implements Parcel..
· CS
base64 Base64는 이진 데이터를 ASCII 문자열 형식으로 나타내는 이진-텍스트 인코딩 체계입니다. 일반적으로 이미지, 오디오 파일 및 기타 이진 데이터와 같이 일반 텍스트로 안정적으로 표현할 수 없는 데이터를 전송하고 저장하는 데 사용됩니다. Base64 인코딩 체계에서 3개의 이진 바이트(즉, 24비트)의 각 그룹은 64개의 가능한 문자 집합에서 4개의 문자로 변환됩니다. 이 64자는 영어 알파벳의 26개의 대문자와 소문자, 10개의 숫자, "+" 및 "/" 기호로 구성됩니다. 또한 "=" 기호는 인코딩된 문자열의 끝에 패딩 문자로 사용되어 마지막 바이트 그룹이 완료되지 않았음을 나타냅니다. Base64로 인코딩된 결과 문자열은 원래 이진 데이터보다 길지만 수신자가 동일한 Base64 알고리..
· 개발/Java
추상화란 (구현숨기기, class 앞쪽 성질변환) 추상화는 Java에서 객체 지향 프로그래밍(OOP)의 네 가지 기본 개념 중 하나입니다. 사용자에게 꼭 필요한 정보만 보여주면서 구현 내용을 숨기는 과정을 말합니다. Java에서 추상화는 추상 클래스와 인터페이스를 통해 이루어집니다. 추상 클래스는 인스턴스화할 수 없고 다른 클래스에 의해 서브클래싱되도록 설계된 클래스입니다. 추상 메서드와 비추상 메서드를 모두 가질 수 있습니다. 추상 메서드는 본문이 없는 메서드이며 추상 클래스를 확장하는 모든 하위 클래스에 의해 구현되어야 합니다. 다음은 Java에서 추상 클래스의 예입니다. public abstract class Shape { public abstract double getArea(); public a..
· 개발/Java
상속 (부모꺼 갖다쓰기) 상속은 Java에서 객체 지향 프로그래밍(OOP)의 기본 개념 중 하나입니다. 이를 통해 클래스는 수퍼 클래스 또는 부모 클래스라고 하는 다른 클래스의 속성과 동작을 상속할 수 있습니다. 슈퍼클래스에서 상속되는 서브클래스를 정의하기 위해 클래스 정의에서 extends 키워드를 사용합니다. 그런 다음 서브클래스는 슈퍼클래스의 속성과 메서드를 자신의 것처럼 사용할 수 있습니다. 예를 들면 다음과 같습니다. public class Animal { private String name; private int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void eat() { Sys..
· 개발/Java
다형성이란 다형성은 객체 지향 프로그래밍의 기본 개념이며 Java의 기능입니다. 서로 다른 클래스의 개체를 동일한 유형인 것처럼 처리할 수 있습니다. 이는 각 개체의 정확한 클래스를 알 필요 없이 균일한 방식으로 서로 다른 클래스의 개체에 대해 작업할 수 있는 코드를 작성하려는 경우에 유용할 수 있습니다. Java에서 다형성은 메서드 재정의(Overloading)와 메서드 오버로딩(Overriding)이라는 두 가지 메커니즘을 통해 달성됩니다. Overloading (output 다양화) Java에서 메서드 오버로딩은 클래스가 이름은 같지만 매개 변수가 다른 여러 메서드를 가질 수 있도록 하는 기술입니다. 메서드 오버로드를 사용하면 개발자가 클래스에서 동일한 이름을 가진 둘 이상의 메서드를 만들 수 있으..
yeonlee
이연