전체 글 (76) 썸네일형 리스트형 인터럽트 동기 인터럽트 - 예외 비동기 인터럽트 - 하드웨어 인터럽트 하드웨어 인터럽트 순서 1. 입출력장치에서 CPU로 인터럽트 요청 신호를 보냄 2. CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부 확인 3. CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 인터럽트를 받아들일 수 있는지 판단 4. 받아들일 수 있으면 지금까지 했던 내용 백업함 5. CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행 6. 인터럽트 서비스 루틴이 끝나면 백업한 내용 다시 실행 명령어 인출하기 전에 확인하는거면 프로그램 카운터 - 메모리 주소 레지스터 - 메모리 버퍼 레지스터까지 오고 명령어 레지스터로 가기 전에 인터럽트 신호를 확인하는건가? 인터럽트 중 인터럽트가 또 일어날 수 있는가?.. 데이터 이진법 보수 16진법 문자 집합 : 컴퓨터가 인식할 수 있는 문자의 모음 인코딩 : 문자 집합을 컴퓨터가 인식할 수 있는 문자 코드로 변환하는 과정 디코딩 : 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정 코드 포인트 : 글자에 부여된 코드 값 아스키 코드 : 아스키 문자 집합에 0-127까지 할당되어 인코딩된 결과물 EUC-KR - 한글 인코딩 방식 ~ 완성형 인코딩 방식, 2바이트 부여 완성형 인코딩 : 글자 하나를 고유한 코드를 부여하여 인코딩하는 방식 조합형 인코딩 : 초성, 중성, 종성을 위한 비트열을 할당하고 그것들을 조합하여 하나의 글자 코드를 완성하는 방식 CP949 : Code Page 949 - EUC-KR보다 다양한 문자 표현 / 전부 표현하지는 못함 유니코드 : 대부분의 .. log4j2 xml log for java 자바의 로그를 위한 패키지 log4j2.xml %d{HH:mm:ss.SSS} [%t] %-5level %c(%M:%L) - %m%n %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n ./log/${date:yyyy}/${date:MM} 위치 xml : 프로젝트/src/resources/log4j2.xml 스프링 pom.xml에 log4j-api와 log4j-core 의존성을 주입했다면 위의 위치에 xml을 만들면 알아서 읽어감 log : 어디서 생성되는지 모르면 로그 레벨을 debug로 하고 로그를 보다보면 아래와 같은 로그를 볼 수 있음 현재 날짜가 2023년 2월 14일 이므로 yyyy는 2023, MM은 02, dd는 14로 생성됨 .. 쿠키와 세션 쿠키와 세션 사용이유 무상태 / 비연결 특성으로 인한 사용자 구분이 어려워 보완하기 위해 쿠키 클라이언트 로컬에 키/값으로 저장되어있는 데이터 파일 특징 유효기간 설정 가능 - 설정 시 브라우저가 종료되어도 유지됨 최대 300개까지 저장 가능, 1개 도메인당 최대 20개, 하나의 쿠키 사이즈는 최대 4KB response handler의 Set-Cookie를 이용해 생성 가능 사용자가 따로 요청하지 않아도 request handler를 넣어 자동으로 서버에 전송 구성요소 이름 값 유효기간 도메인 경로 세션 쿠키를 기반으로하지만 사용자 정보 파일을 서버에서 관리 특징 클라이언트를 구분하기 위해 ID 값을 발급 브라우저가 종료시 사라짐 사용자가 많아지면 서버 메모리 많이 차지하게됨 보안면에서 쿠키보단 우수함.. 가상메모리 메모리 프로그램과 프로그램 수행에 필요한 데이터를 저장하는 장치 내부 기억장치(주기억 장치) / 외부 기억장치(보조 기억장치)로 나뉨 주기억장치 RAM / CPU 내의 레지스터와 캐시 보조 기억장치 HDD, SSD 가상 메모리 실제 사용할 수 있는 메모리보다 많이 제공하기 위한 메모리 관리 기술 하드디스크까지 메인 메모리를 확장하는 것 물리적 한계를 극복하기 위한 기술 주기억장치의 프로그램 양이 많아질때 프로그램을 보조기억장치에 옮겨 주기억장치처럼 사용하는 보조기억장치의 일부 MMU - Memory Management Unit 가상주로를 물리주소로 변환(주소 변환) 메모리 보호 페이지 및 주소 번역 정보 기억 요구 페이징 CPU가 요청할 때 프로세스의 데이터를 메모리에 올리는 것 페이지 폴트 - Page.. 버블 정렬 버블정렬 인접한 두 값을 비교하여 조건에 맞지 않으면 자리를 교환 하는 알고리즘 구현 과정 1회전에서 첫번째 원소와 두번째 원소를 비교 후 정렬, 정렬된 두번째 원소와 세번째 원소와 비교 후 정렬 ... 1회전에서는 제일 큰 숫자 또는 제일 작은 숫자가 맨 뒤에 2회전에서는 맨 뒤의 앞에 원소가 정렬되고 1회전이 끝날때마다 정렬된 숫자가 하나씩 늘어남 코드(자바) public static void main(String[] args) { int[] array = new int[]{10,4,9,50,100,1,3}; int tmp = 0; for(int i=0; i= n(n-1)/2 최악,평균, 최선의 경우의 수의 평균은 O(N²)이다 공간복잡도 주어진 공간 안에서 수행되므로 O(N) 장점 직관적 정렬하고자.. HashMap / HashTable Hash - 해시 단방향 암호화 기법인 해시함수를 이용해 생성된 고정된 길이의 문자열 HashMap / HashTable(구버전) 데이터를 키와 값으로 관리하는 자료구조 차이점 동기화 HashMap은 동기화를 지원하지 않음 동기화가 필요하더라도 HashTable보다는 ConcurrentHashMap 사용을 권장 - HashTable은 매우 오래전에 만들어져서 속도가 느림 반환값 요소들 순회시 HashMap은 Fail-Fast Iterator / HashTable은 Enumeration 반환 Fail-Fast Iterator 다른 스레드에서 해당 자료의 요소를 수정이 발생하면 ConCurrentModificationException을 발생시켜 일관성을 보장하는것 한번 봐야됨 https://shlee0882.. AVL 트리 AVL 트리(Adelson-Velsky and Landis) 자가 균형 이진 탐색 트리 이진트리의 단점을 극복할 수 있는 자료구조 특징 이진트리의 속성을 가짐 왼쪽 오른쪽 서브트리의 높이 차이가 최대 1 서브트리의 높이 차이가 1보다 커지면 회전을 통해서 균형을 맞춤 삽입 / 삭제 / 검색 시간복잡도 O(logN) 벨런스 팩토어 - Balance Factor(BF) AVL 트리의 균형이 맞는지 판단할 때 사용하는 공식 BF(K) = K 노드의 왼쪽 서브트리 높이 - 오른쪽 서브트리 높이 -1, 0, 1 중 하나여야함 3개 중 하나가 아닐시 회전을 통해 균형 맞춤 회전이 필요한 케이스 LL(Left Left) : -1~1을 벗어난 노드 기준 왼쪽, 왼쪽에 노드가 존재하면 LL 케이스 LR RL RR(Rig.. 이전 1 2 3 4 5 6 ··· 10 다음