전체 글

삼시세끼 잔잔하게 개발하는 프로그래밍 수련기 : Spring boot, Algorithm, Android
1.병렬 처리 등장 배경 빠르게 하려고 다양한 병렬처리 파이프라인, 슈퍼 스칼라 VLIW CPU : 명령어 엄청 김 멀티스레드 처리 가능 cpu 칩 하나에 cpu 여러개 = 멀티코어프로세서!! 특수기능 전담 프로세서 추가 다수의 프로세서가 효율적으로 함께 동작 다중 프로세서 = 칩이 여러개 다중 컴퓨터 그리드 컴퓨팅(인터넷 상 그룹핑) 2. 칩 단위 병렬 처리 프로세서에서 기본 인터페이스 변경 없이 속도 향상 방법 클록 속도 높이기 멀티 코어 프로세서 사용 특정 기능 장치 추가 파이프라인 단계 수 늘림 멀티 스레딩 1) 명령 레벨 병렬 처리 낮은 수준의 병렬화 달성 방법 - 클록 사이클 당 명령 여러개 실행 슈퍼 스칼라 : 파이프라인을 2개 이상 갖고 있음. 한 클록 사이클에서 동시에 여러 명령 처리. ..
1. 인터럽트의 개념과 종류 인터럽트 : 프로그램 실행 중 예기치 않은 상황 발생 → 사이클마치고 작업 중단 후 우선 처리. 정전, 입출력 장치의 데이터 전송 등..의 상황. 외부 인터럽트 : 중요한 것부터 전원 > 오작동 > 외부장치의 인터럽트 > 입출력 인터럽트 등 외부 요인 내부 인터럽트 : 잘못된 명령어/데이터 사용 시. =예외=트랩. 프로그램 검사 인터럽트 : 0나누기, 오버클로, 잘못된 참조 등 프로그램 오류 → 오류 메세지 출력, 상태 보존x 기타 내부 인터럽트 : 캐시미스, 페이지 오류 등 → 상태 보존 필요! - ? 소프트웨어 인터럽트 : 프로그램 중 의도적으로 인터럽트를 호출함. 감시 프로그램 호출 SVC : 사용자가 SVC명령을 사용. 복잡한 입출력 처리. 기억 장치 할당 또는 오퍼레..
1. CPU칩과 시스템 버스 시스템 버스 : CPU와 기기 간 정보 교환 통로. cpu 칩의 다양한 핀과 연결. 1) cpu 칩 칩에는 핀들이 있고 입출력 가능여부가 다 다름 핀을 유형별로 묶어 버스라고 함 명령 인출 시 처리 과정 주소버스 - 명령의 메모리 주소 출력. 일방향 제어선 - 메모리에게 읽기용이다! 라고 알려줌 (양방향 애매) 데이터버스 - 메모리가 요청된 워드를 데이터버스로 출력 후, (양방향?) 완료 응답 cpu가 응답을 받고 해당 워드를 받아들이는 명령 수행 버스의 크기는 cpu의 성능을 결정. 주소 핀 수 m개 = 주소 2^m개 지정 가능 데이터 핀 수 n개 = 명령 한번에 n비트 워드 읽기/쓰기 가능 ex) 32비트 워드의 cpu가 데이터 핀을 16개 갖고 있음 → 1워드 읽으려면 ..
1. 자기디스크 = 하드디스크. 강자성체 물질이 코팅되어있어 자석에 가면 망가짐 단일 헤드 디스크 : 트랙을 찾아 디스크 팔이 왔다갔다함 다중 헤드 디스크 섹터 : 최소단위. 한번에 읽고 씀 섹터간 갭, 트랙간 갭 등 각속도 : 디스크가 회전하는 속도가 일정함(바깥 섹터일 수록 헤드의 속도가 빨라짐). 간단. 공간 낭비. 하드디스크. (다수의 동심원 트랙. ) 등 선속도 : 헤드의 속도가 항상 일정. 디스크 회전 속도가 달라짐. 트랙 전체의 저장밀도가 균일하여 낭비 없음. 구동장치 복잡. CD/DVD. 디스크 포맷 : 새것처럼 만듦. 디스크 구성을 검사, 트랙 시작점, 섹터의 시작과 끝을 구분하기 위한 제어정보 등을 저장함 바이트 섹터의 데이터 형식 gap(섹터 분리), sync(동기화. 섹터의 시작과 ..
1. 기억장치 시스템 개요 2. 주기억장치 **2KByte = 2 * 2^10 * 8 기억장치 용량 = 2^n * m → PC, MAR = n비트 MBR = m비트 주소길이 = n비트. 주소개수 = 2^n ex) 64KByte RAM = 주소비트가 2^6*2^10 → 16개. 데이터 비트가 8 → 8개 리틀엔디안 : 하위 자리수(바이트)를 낮은 주소에 ROM(비휘발성. 영구) - 조합회로. 펌웨어저장. 주메모리의 일부 구성 마스크 ROM : 제조 시 영구 PROM : programmable 사용자가 한번 씀. 변경불가 EPROM : eraseable 자외선으로 복원 가능 EEPROM : electrically 전기신호로 복원 가능. 플래시메모리(usb.비휘발성 RAM과 입출력가능ROM 장점 동시. 재사용..
1. 제어장치의 기능 모든 동작을 제어 mm주기억장치 → 명령어 가져옴 → CPU의 명령 레지스터 IR → opcode 해독 → 제어신호 발생 2. 제어 장치 종류 하드와이어적 제어장치 빠름. 변경은 회로구조를 물리적으로 변경해야 함. 클록 사이클이 진행됨에 따라 상태가 변함. RISC 에서 많이 씀 마이크로 프로그램된 제어장치 “컨트롤 메모리(제어메모리, ROM)!!!!”가 있음! 명령어 마다의 해석을 위한 마이크로 프로그램들이 들어있음. 마이크로 명령어 인출 과정은 하드와이어와 동일. 인출 해독 실행.. 발생된 제어신호는 프로그래머가 접근할 수 없는 컨트롤 메모리(제어메모리,ROM)에 저장. 펌웨어로 구현됨 3. 명령어 사이클 ... 5. 파이프 라이닝 명령어 사이클 병렬 처리 파이프라이닝 : 명령 ..
1. 프로세서의 구성과 동작 컴퓨터의 세가지 핵심 장치 : 프로세서(cpu), 메모리, 입출력장치I/O 프로세서의 구성요소 ALU : 기본 연산 수행 (기본적으로는 정수연산, 요즘엔 실수연산도 하기도 하고) 제어장치 : 관제센터. 실제 계산 외 처리들 다함. 메모리에서 명령어 가져와 해독 후실행하고 장치들 제어 레지스터 세트 : 빠른 미니 임시 저장소. 특수 레지스터 : 정해진 용도로만 쓰임 범용 레지스터 버스 : 이들 내부 또는 이들 사이에 주소, 데이터, 제어 신호를 전달하기 위해 연결해주는 통로 내부 버스 : 프로세서 내부 시스템 버스(프로세서 외부) 종류 - 주소 들고 가서 데이터 가져온다~ 주소버스 : 프로세서→메모리 데이터버스 : 메모리프로세서 제어버스 : 주로 프로세서→메모리지만 100%는 ..
1. 논리 게이트 TTL COMS어쩌구.. 종류 세가지만 기억 - 버퍼 삼각형, and 동글, or 뾰족, xor ) 버퍼 게이트 : 그대로. 3상태 버퍼 : E가 1이면 통과, 0이면 차단(하이임피던스). Enable값에 따라 0,1, 하이임피던스 3가지 결과. NOT(inverter) AND / NAND OR / NOR XOR 다르면 1!!! / NXOR 유니버설 게이트 : NAND, NOR 만 있으면 모든 회로 만들 수 있음 2. 불 대수 and는 곱, or는 덧셈, not은 —나 ‘ 로 표현 불 대수 법칙 모든 항은 0또는 1을 의미함 dual 쌍대성 : 전체 식을 0↔1, +↔* 로 바꾸면 그 식도 성립함 논리대수의 분배법칙 - 헷갈리면 듀얼로 확인가능 곱에 대해 합이 분배됨 : A+(B*C) ..
1. 진법과 진법 변환 1) 디지털 정보의 단위 bit -8- byte -4- nibble 1문자당 영어는 1byte, 한글은 2bytes(16비트) 필요 워드 : 특정 CPU에서 취급하는 명령어나 데이터의 길이에 해당하는 비트수. 8비트 배수 가능 킬로 메가 기가 테라 페타 엑사 제타 요타 키비 메비 기비 테비 페비 엑비 제비 요비 10의 3승씩 증가 2의 10승씩 증가 2) 진법 10진법 2진법 8진법(한자리=2진수 세자리) 16진법 10진수와 나머지는 곱과 나누기를 이용해 변환. 2,8,16끼리는 2진수를 바꾼 다음 변환 이진수 1100 1110 1001 1010 → 12 14 9 10 → C E 9 A 이진수로 바꾼뒤 / 자리수대로 다시 잘라서 십진수로 표현하고 / 십진수에 해당하는 n진수기호 넣..
1. 컴퓨터 시스템의 구성 컴퓨터의 기본 구성 하드웨어 소프트웨어 1) 하드웨어 시스템버스(cpu와 외부 장치들을 연결)를 통해 상호 연결되어있음 중앙처리장치CPU, 입출력장치, 주기억장치(메모리), 보조기억장치 CPU중앙처리장치 = 프로세서 데이터 처리 ALU, CU제어장치, 레지스터로 구성 기억장치 주기억장치 : 고속, 휘발성 ex)램 보조기억장치 : 느림, 비휘발성 ex) HDD, SSD, CD-ROM, USB 입출력장치I/O : 사람이 이해할 수 있는 데이터 ↔ 전자적인 2진 형태 데이터 시스템 버스 : cpu와 그 외 연결 주소 버스 : 단방향. cpu에서 주소들고 메모리로 가서 데이터 저장하거나 가져옴 데이터 버스 : 양방향. 데이터는 양쪽 왔다갔다ㅏㅁ~~ ‘’ 제어 버스 : 방향 애매 주기억..
ORA-28002 : 7일 안에 비밀번호가 만기될 것 입니다. oracle 오라클 비밀번호 유효기간은 대부분 180일로 기본 설정 되어있음. 해결방법 비밀번호를 변경하거나, 비밀번호 유효기간을 늘리면 됨 (무기한 설정도 가능) - 이 방법은 비밀번호를 한 번 변경해줘야 함. 변경해준 뒤부터 설정이 적용됨. 기존과 동일한 비밀번호로 변경 가능. system계정이 아닌 다른 user계정에서 일어난 이슈일 경우 -> system 계정에 접속한 후 해당 계정의 비밀번호 유효기간 설정값 확인 SELECT * FROM DBA_USERS WHERE USERNAME = '계정명'; -> system계정 접속 시도했으나 ORA-28001: 비밀번호가 만기되었습니다. 시스템 계정 비밀번호가 만료되어버렸을 경우(나) 시스템..
· Git
과정 이전 커밋들의 기록을 확인하고 돌아갈 지점을 정한다 지점으로 돌아간다 1. 이전 커밋들의 기록을 확인하고 돌아갈 지점을 정한다 기록 확인 방법은 두가지 1. git log 로 확인 - 한글 커밋내용과 변경내용 확인 좀더 힘든 듯 2. github 등에서 확인 - 추천 github에 가서 커밋들을 봄 시계모양 + 커밋수 commits 부분을 누르면 현 브랜치의 커밋들이 보임 어느 지점으로 돌아갈 지 정한 뒤 해당 커밋의 SHA값(커밋 아이디 같은 거다)을 복사해온다. 원하는 커밋의 오른쪽 끝부분 SHA값 앞부분이 42b1ee0인 커밋이다. 네모 두개 아이콘을 누르면 풀 SHA값이 복사됨 2. 돌아간다. 프로젝트 경로에서 브랜치를 잘 확인한 뒤 git reset --hard 를 입력해주면 돌아감!
이상하게 어느날부터 뷰바인딩을 쓰기만 하면 모든 바인딩 클래스에 빨간줄(오류라고 알려주는)가 떠서 코드가 빨간줄 투성이였다... 근데 웃긴 건 Build랑 Run은 잘 된다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래서 방법을 못찾다가 일단 그대로 썼는데.. 드디어 이유를 알았다 본인의 viewBinding 설정한 gradle파일이 이렇게 되어있다면 android { ... buildFeatures { // 뷰바인딩 viewBinding = true } } 이렇게 바꿔라 android { ... buildFeatures { // 뷰바인딩 viewBinding true } } = 기호만 지워주고 Sync Now 눌러주면 끝 . . .. . . . 컴퓨터 입장에서 못 알아들을 정도는 아닌데 문법이 틀린 말 같았나보다 ㅋㅋ..
· Android/API
** 안드로이드 스튜디오 버전 Bumblebee (Arctic Fox 이후 버전) 버전을 기준으로 작성되었습니다. Kakao SDK 설정하기1 - 프로젝트 설정 settings.gradle 파일에 카카오 SDK 라이브러리를 추가한다. dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() //kakao SDK 설정 (카카오 로그인) maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' } } } build.gradle(Module단) 에 모듈 설정 depe..
JDK은 1.8에서 갑자기 11 14 이렇게 뛰어서 혼란스러웠음 JDK 11 을 JDK 1.8처럼 표기하면 사실 JDK 1.11 임. JDK 11 이 1.8보다 윗버전이고, 그러므로 두 버전을 호환되도록 하려면 11로 설정해야함. 그렇지만 11로 바꾸는 것이 좋다고 함(https://docs.microsoft.com/ko-kr/java/openjdk/reasons-to-move-to-java-11)
돌래씨
삼시세코