본문 바로가기

안드로이드65

[CS] HTTP와 HTTPS HTTP (HyperText Transfer Protocol)웹 페이지를 요청하고 응답받기 위해 설계된 클라이언트와 서버 간의 기본 *통신 프로토콜이다. 사용자가 웹 브라우저를 통해 웹 페이지를 요청하면, 서버는 그 요청에 대한 응답을 보낸다. 주로 *헤더와 *바디로 구성된다.통신 프로토콜 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다. 즉, 통신 규약 및 약속헤더는 클라이언트와 서버 간의 메타 데이터를 전달하기 때문에, *요청 메서드, URL, 프로토콜 버전, 요청 헤더 등이 포함된다.바디는 클라이언트가 서버에 전송하고자 하는 실제 데이터가 포함되며, JSON, XML, 폼 데이터 등이 포함될 수 있다.데이터를 암호화하지 않은 평문으로 전송하기 때문에 중간에, 누군가가.. 2024. 9. 14.
[CS] 대칭키와 비대칭키(공개키) 암호화 방식 암호화 기술암호화는 데이터를 읽을 수 없는 형태로 변환하는 과정이다. 이를 통해 데이터가 전송 중에 도청되더라도 내용을 알 수 없게 된다.즉, 암호화 기술을 통해 데이터를 암호화하면, 해당 데이터를 읽을 수 있는 사람을 제한할 수 있기 때문에 데이터의 기밀성을 보장한다.HTTPS 와 같은 보안 프로토콜에서는 대칭키와 공개키 암호화를 결합하여 사용한다.대칭키 암호화의 장점과 공개키 암호화의 장점을 채택하여 용량이 큰 정보는 대칭키로 암호화하고, 암호화에 사용된 대칭키는 공개키로 암호화하여 대상에게 전달하는 하이브리드 암호화 방법이 일반적으로 사용되고 있다. 대칭키 암호화 방식 암호화와 복호화에 같은 키를 사용하는 방식으로, 암호화한 정보를 다른 사용자에게 보낼 때 암호 키도 함께 보내야 한다.구현이 간단하.. 2024. 9. 11.
[CS] Database 인덱스 (Index) 인덱스 (Index)테이블의 특정 컬럼(Column)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 (key, value)의 한 쌍으로 저장한다. 즉, 인덱스는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다.예시: 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index 는 책의 색인과 같다.데이터베이스에서도 테이블의 모든 데이터(책의 내용)를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치(책의.. 2024. 9. 9.
[CS] 캐시 (Cache) 캐시 (Cache)자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.아래와 같은 경우에 사용을 고려하면 좋다.접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 (서버의 균일한 API 데이터)반복적으로 동일한 결과를 돌려주는 경우 (이미지나 썸네일 등)캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.반복적으로 데이터를 불러오는 경우에, 지속적으로 DB 혹은 서버에 요청하는 것이 아니라 Memory 에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다.캐시를 효과적으로 사용하면 시스템의 응답 시간을 줄이고, 서버의 부하를 줄일 수 있다. 이는 사용자 경험을 향상시키고, 시스템의.. 2024. 9. 4.
[Android] 메모리 누수 메모리 누수프로그램이 동적으로 할당한 메모리 영역 중 일부를 더 이상 사용하지 않음에도 불구하고 해제하지 않아, 사용할 수 있는 메모리가 점점 줄어드는 현상애플리케이션의 성능 저하나 시스템의 안정성 문제를 초래할 수 있다.자바와 같은 관리형 언어에서는 가비지 컬렉터가 더 이상 사용되지 않는 객체를 자동으로 회수하지만, *특정 상황에서는 메모리 누수가 발생할 수 있다.특정 상황 : 개발자가 의도치 않게 객체에 대한 참조를 유지하게 되어 가비지 컬렉터가 해당 객체를 회수할 수 없는 상황 메모리 누수의 원인장기간 생존하는 컬렉션 객체에 대한 참조예시: HashMap 과 같은 컬렉션에 객체를 계속 추가하면서, 사용하지 않는 객체를 제거하지 않는 경우 메모리 누수가 발생할 수 있다.리스너나 콜백 객체와 같이 외부.. 2024. 9. 3.
[CS] JVM 메모리 영역 (Method, Heap, Stack Area) 메서드 영역 (Method Area, Static Area)JVM 이 시작될 때 생성되는 공간으로 바이트 코드(.class)를 처음 메모리 공간에 올릴 때 초기화되는 대상을 저장하기 위한 메모리 공간JVM 이 동작하고 클래스가 로드될 때 적재되서 프로그램이 종료될 때까지 저장된다.모든 쓰레드가 공유하는 영역이라 다음과 같이 초기화 코드 정보들이 저장되게 된다.Field Info : 멤버 변수의 이름, 데이터 타입, 접근 제어자의 정보Method Info : 메소드 이름, return 타입, 함수 매개변수, 접근 제어자의 정보Type Info : Class 인지 Interface 인지 여부 저장, Type 의 속성, 이름 Super Class 의 이름 힙 영역 (Heap Area)메서드 영역와 함께 모든 .. 2024. 8. 30.
[CS] CPU, 주기억장치(ROM, RAM(SRAM, DRAM), 보조기억장치(HDD, SDD) 중앙 처리 장치 (Central Processing Unit, CPU)컴퓨터의 중앙에서 모든 데이터의 처리를 담당하는 장치, 컴퓨터의 두뇌컴퓨터의 속도는 CPU 의 성능이 가장 큰 영향을 미친다. 컴퓨터는 사용자의 명령을 입력받으면, CPU 가 이 명령을 해석하고, 처리(연산) 해서 출력 장치에서 결과를 출력하도록 한다.이렇게 하나의 부품에 해독, 연산, 제어 등 여러 가지 기능이 집약되어 있기 때문에 CPU 를 "마이크로프로세서"라고 부르기도 한다.프로그램의 명령을 수행하여 다양한 *입력 장치로부터 데이터를 받아서 *기억장치와 연계하여 처리한 후 *출력 장치로 보내는 모든 과정을 제어하고 연산하는 장치입력 장치 : 컴퓨터 등 시스템의 외부에서 데이터와 명령을 시스템으로 입력하는 장치로, 문자, 소리, .. 2024. 8. 28.