관리 메뉴

hye-_

공부 요약 본문

정처기

공부 요약

hyehh 2024. 7. 27. 08:11
728x90
반응형
SMALL

C언어

 C언어JAVA 파이썬
1trueTrue
거짓0falseFalse 

 
● 형 변환시에는 뒤 소수점 다 버림 
ex) double d_value=6.15  
     n= (int)d_value   //6이 들어가게됨  : 정수는 소수점을 포함할 수 없기 떄문에 가차없이 버림
 
● 출력할때에는 소수점 반올림 
ex) "%3.1f", d_value   //6.2가 출력됨
 
● "%5d" 정수형 서식문자 앞에 붙는 숫자는 오른쪽 정렬을 위한 숫자
   "%3.1f"  정수자리의 3은 오른쪽 정렬을 위한 숫자, 소수자리의 1은 소수 둘째자리에서 반올림하여 첫째 자리까지만 출력
 
● 10진수 : Decimal  %D
     8진수 : Octal  %o
   16진수 : Hexadecimal  %x   // "0x11"  접두사 0(숫자) x(영문)가 붙으면 16진수의미 
 
● 비트 이동 <<  //왼쪽으로 살아가기 (살아남)
                   >> //오른쪽으로 떨어지기 (죽음)
 
● C에서 ^ 는 비트간 XOR 연산을 나타낸다 //서로 다른 값에 1값 
 
●  ~ 비트반전  //공식 : 양수는 절댓값에서 +1을 해주고, - 부호를 붙여준다.
                                    음수는 절댓값에서 -1을 해구조, + 부호를 붙여준다.
 

자료형메모리크기
문자형● char   1Byte (8bit)
정수형● short  2Byte
● int      4Byte
● long   4Byte
실수형● float      4Byte
● double  8Byte

 
● char 부호비트 존재   // 부호비트 앞의 한자리가 0이면 양수,  1이면 음수 뜻함   
  unsigned char 부호비트 없음   
  unsigned는 2의보수로 표현해줘야 한다. [1의 보수로 바꾸고(0과1을 다 반대로) +1] 해주면 된다.
  출력시 10진수로 출력해준다.  //음수일경우 -붙여서 출력
 
● if //조건문 , for //반복문
 
● 출력시 변수명 확인하기
 
● 아스키코드 // 65 = A
 
●포인터 변수
   v=(*p)++  //p가 가리키는 값을 v에 대입한 후에 가리키는 값을 증가
   v=*p++    //p가 가리키는 값을 v에 대입한 후에 p를 증가
   v=*++p   //p를 증가시킨 후에 p가 가리키는 값을 v에 대입
   v=++*p  //p가 가리키는 값을 가져온 후에 그 값을 증가하여 v에 대입 //즉, 가리키는 곳의 값도 증가된다.
 
● 2차원 배열
  &a+1  // a가 가지고 있는 배열의 끝 그 다음의 주소를 묻는 것
    a+1  //a의 대표 행 주소에서 다음 대표행 주소를 묻는
 a[0]+1 //a[0][1]
 
● int(*p)[3] = NULL;  //3열짜리로 재구성 
 
● int b=0  
  if(b && 10)  // &&는 논리연산임 b에서부터 0이라서 뒤의 10까지 쳐다 보지도 않고 끝내버림
  if(b & 10)   //&는 비트연산임 1과 10을 and 비트연산해줘야 함
 
● "%3d"  _ _ _ 오른쪽부터 정렬   
ex)
115
   1   
 
"%d"  기본은 왼쪽부터 정렬 
ex)
115
1
 
 
● int x = 0;  fork();  x=1;  printf("%d" ,x)   //자식 프로세스 성공 // 11출력
 
● fork( ) 순서  // 부모(else) → 자식 (else if(pid==0))      
                    //부모와 자식의 변수는 각각 생성, 즉 부모 자식 변수가 동일하게 변하지 않는다.
                // else wait(NULL)일 경우 자식 프로세스 부터 시작
 
● sizeof(a[0]+1)  //a의 주소값 크기를 묻는 것이다. 주소값을 저장하는 변수의 크기는 8byte이다. 
                          // a[0] 대표주소가 들어가 있는 값에 1을 더한값의 사이즈를 묻는 의미가 된다. 즉, 101번지의 값을 묻는다.
 
● int ar[4][2] = {{1},2,3,4} //4행 2열  { }는 한행을 이것으로  채우겠다 라는 의미, 중갈호가 없으면 연속적으로 배치
ar[0] =  1 | 0
ar[1] =  2 | 3
ar[2] =  4 | 0
ar[3] =  0 | 0
 
● strcat( ) 함수 사용하려면 #include <string.h>  있어야함 


JAVA

● print( ) //엔터 포함되지 않음 , print에서 +는 문자열을 연결하는 의미
   println( ) //엔터 포함  뒤에 엔터가 쳐짐
 
● obj2.sum(obj1)으로 메소드 실행시 //obj1 멤버변수 사용하려면 . 연산자 이용   obj2는 . 사용하지 않아도 됨
 
● 클래스명과 똑같은 명만 생성자 // new 연산을 이용해서 생성, 초기값 할당할 때 생성자 호출
 
● private //해당 클래스 내부
   protected //상속관계   
   public  //아무데서나
  default //같은 패키지만
 
● class CI extends C implements I  //CI는  C라는것을 상속받았고 I형태로 인스턴스를 만들 수 있다. 
 
● 상속받으면 사용 가능한지 메서드, 변수 지정자 확인하기 
 
● this( )로 내부에서 옮겨져 상속클래스까지 다 호출이 끝났더라도 처음 this( )로 돌아와 그 밑의 것들도 다 수행해야 한다.
 
● 오버로딩된 메서드 중 실수를 받을 수 있는게 float, double 두 가지가 있으면 기본적으로 double을 사용한다.
   float은 명시적으로 (float)24.8 지정되어 있을때만 사용한다. 
 
● 상속(Inheritance), 캡슐화(Encapsulation), 오버로딩(Overloading), 다형성
 
● 상속관계에서 static가 붙은 메서드는 //  obj.f() 호출시  A obj =new C();   A로 만들어졌기 때문에 obj.f()메서드가 C에 있더라도 A의 메서드를 사용한다. static이 없다면 오버라이딩이기 때문에 C가 호출된다.
 
● print( k)  //영문 k가 출력되는게 아니고 변수 k가 출력되는것이니 k변수값을 확인하기
 
● ubstract class 같은 경우 객체를 생성할 수 없다. shape a=new shap가 안된다.
    draw() 미완성 메서드를 포함할 경우 실질적으로 구현해야지 new 생성할 수 있다.
 
● throws Exception { ..throw e; }  // 예외 e 나를 호출한 곳을 던진다.  던져도 finally는 수행한다. 던져지면 함수 호출한곳에서 cath(Exception e)로 간다. "나 에러 받았는데 내가 못처리함 니가 처리해" , "알겠어 내가 처리할게"
 
 //만약 throw e가 없다면 호출된곳에서 catch로 안가고 이어서 수행된다. "에러가 다 처리되었으니 내 할일 마저 함"
 
● throw new Exception( ) //예외를 강제적으로 발생시킨다. 
 
● 100/0    //100은 0으로 못 나눈다. 0으로 나누려고 하면 산술 연산 오류 Arithmetic Exceotion 발생함
 
● v1.equals(v2) // 두 내용이 같냐 ?
   equals( ) //주소값이 같냐?  
  v1==v2  //주소값이 같냐?
 
● continue  //다시 위로
   break  //멈춰 반복문 종료 
 
● 오버로딩  //같은 이름의 메서드를 매개변수의 개수 또는 타입에 따라 여러번 정의한것
   오버라이딩 // 상속 관계에서 자식 클래스가 부모 클래스의 메서드를 재정의한것
   하이딩 // 상위 클래스의 static 메서드를 하위 클래스에서 같은 유형으로 다시 선언하는 것  
       하이딩된 메서드의 호출은 클래스 타입에 따라 결정된다.
 
● 1부터 100까지 더한 수는 5050


파이썬

 
● print( ) //기본적으로 엔터가 포함된다.
   print(i, end=" ") //엔터가 없어짐
 
● my_list.append(4)  //4를 뒤에 추가
   my_list.insert(1,5)  //1번 인덱스에 5 삽입
 
● print(my_list)  // 리스트호출시 [ ] 각괄호 호출
 
● [시작인덱스 : 끝인덱스(미포함) :증감]   //범위
   // 범위 출력시 리스트 형태로 묶여서 [ ] 안에 들어간채 출력된다.
  //첫 인덱스 [0]부터 시작,  뒤에서 시작시 인덱스 [-1] 시작
 
● ["Ksafof"] 출력시 Kasfof  // 문자열만 있으니깐 [ ]말고 문자열만 출력
 
● result = text.split(',') //콤마로 나눠서 result에 넣는다.  
 
● set { }  //중복 허용 안한다. 정렬의 의미가 없다.
 
● 삭제 메서드 
remove  // 삭제할 요소가 없으면 에러 발생
pop  // 무작위 삭제
discard  //만약 삭제할 요소가 없더라도 에러 발생 하지 않음
 
● Intersection //교집합
Union //합집합
difference //차집합
 
● ( ) // 튜플 : 중복허용, 정렬의미 있다.
 
● range(시작숫자, 끝숫자(미포함)) //범위를 구하는 메서드
 
● **  //거듭제곱
   //   //작대기 기호 두개를 쓰면 정수값만 나오게 나누기 하는것이다. 이렇게 안하면 파이썬은 소수점까지 나오는게 있다고 함
 
● str( )  //string 형태로 바꾸기 
 
●  아스키 코드 
A : 65,   B: 66,   C:67
a : 97,   b: 98,   c : 99
 
● 문자열 비교가 아닌 하나의 요소 비교에서 동일한 요소일경우 그냥 앞에 있던게 출력된다.
문자열 비교일때에는 첫번째 글자가 동일하면 두번째 글자로 크기 비교한다.
 
● sort( ) //정렬 메서드  기본적으로 오름차순
sort(reverse=True)  //내림차순 정렬
 
● 생성자 메소드를 구현할 때 
  _ _ init _ _
 
● 내장되지 않은 함수를 불러와야 할 때 사용하는 키워드
import 


데이터베이스

● IP 주소체계 클래스
A 클래스 : 0          0~
B 클래스 : 10        128~
C 클래스 : 110       192~
 
● 사설 IP
A 클래스 10~
B 클래스 172~
C 클래스 192~
 
● 네트워크ID=서브넷ID=맨앞주소
   네트워크 : 1의 갯수
   호스트 : 0의 갯수
 
● 호스트는 -2 해줘야 함 브로드캐스트는 맨 마지막 주소

DCL

DML DDL 
 GRANT SELECT ON 테이블명 TO 사용자 


 REVOKE SELECT ON 테이블명 FROM 사용자
● INSERT  INTO 테이블명(속성명, ,) VALUES('값', '값')   //삽입


● UPDATE 테이블명 SET 바뀔값 WHERE 조건   //갱신

 DELETE  FROM 테이블명 WHERE 조건    //삭제 

● SELECT  DISTINCT 학과 FROM 학생     //중복없이 검색
● DROP  VIEW  뷰명 RESTRICT
//삭제할건데, 해당 뷰가 사용중이면 삭제 못함


● ALTER  TABLE 테이블명 ADD 속성명 DATETIME  //테이블에 날짜 속성 추가
ALTER  TABLE 테이블명 DROP 속성명 CASCADE //테이블에 속성을 연쇄삭제 
ALTER  TABLE 테이블명 ADD  CONSTRAINT 제약조건명  //테이블에 제약조건 추가 

CREATE  TABLE 테이블명 (속성 )
CREATE INDEX 인덱스명 (컬럼명)
여기에서 AS를 사용할때에는 특정 테이블 일부분을 가져올 때 사용
ON은 그 테이블 전체에다가 인덱스를 설정하는것이다.

CREATE INDEX 학생_인덱스
ON 학생(학과 ASC); 

TRUNCATE [TABLE] 회원  //회원 테이블 내용 삭제 

 
● WHERE 공급자명 LIKE '신%'    //신으로 시작하는
 
● 소재지  IN ( )
   소재지 NOT IN( )
 
● 단가 > ALL  //모두다 만족해야함
   단가 > ANY  //어느 한개라도 만족하면 됨
 
● DESC //내림차순 , ASC//오름차순
 
● BETWEEN 12 and 15   //12이상 15이하
 
● UNION ALL  //합집합에서 중복 허용
   UNION  //합집합에서 중복 불허용
 
● INTERSECT  //교집합
 
● cross JOIN   //  다 조인 NULL값 안나옴   
 
● CASCADE  : 연쇄삭제
   RESTRICT : 사용중이면 삭제 안함 


운영체제  

페이지
FIFO : 먼저 들어온 것부터 뺀다
LRU : 페이지 참조가 오래된 것을 뺀다.
LFU :빈도수가 적은 것부터 뺀다.
 
프로세스 비선점
FCFS (First-Come-First-Served) : 먼저 들어온 거부터 처리 
SJF (Shortest Job First) : 실행시간이 짧은 것부터 처리
HRN (Highest Response ratio Next) : 경로우대사상, 우선순위구하는 식 : (대기시간 + 실행시간) / 실행시간
 
프로세스 선점형
SRT (Shortest Remaining Time) :실행시간이 짧은 것부터 처리 
 
프로세스 그 외
RR (Round Robin) :시간을 슬라이스 해서 그 시간단위로 프로세스가 움직이게 된다.  
 
디스크 스케줄링
FCFS (First Come First Served) : 들어오는 순서대로 
SSTF (Shortest Seek Time First) : 여기서부터 나오는 스케줄링은 다 무조건 정렬을 해줘야 된다, 헤드 위치에서 가장 가까운 거리로 이동(이동거리에 없으면 끝과 끝으로 가지 않음)
 
SCAN : 엘레베이터 기법 (정렬)  끝과 끝을 신경써준다.  
C-SCAN : 한쪽 방향으로만 처리한다. 즉, 한쪽방향 끝나면 그 반대방향 맨 끝으로 한번 쭉 가버린다. 이동할 때 끝 트랙까지 간다. 
 
LOOK : SCAN 방식을 조금 개선한 방법으로 문제 제시 이동 방향에 요청이 있다면 이동하면 됨, 반대방향이 더 짧아도 이동하려고 하는 방향으로 가야함. 그리고 디스크 끝이 아닌 마지막 요청까지만 처리하고 반대방향으로 이동시작한다.  
C-LOOK : C-SCNA 개선한 방법
 
Eschenbach 스케줄링 : 한번의 회정 시간 동안만 입출력 요구들을 처리 
N-step SCAN  : 새로운 요청은 다음 진행시 처리

 

교착상태 해결 방안 중 회복은 교착상태가 발생한 프로세스 중 희생양을 정하여 자원을 빼앗는 방식
기준은 우선순위가 낮은거, 기아상태인 프로세스 
 
●  외부 단편화 계산시  :물리적 분할 크기가 단편화 크기가 된다.
 
● 기억장치 , 페이지 2, 변위(페이지 오브셋) 200


스와핑

swap in : 보조기억장치에서 주기억장치로 프로그램 이동
swap out : 주기억장치에서 보조기억장치로 프로그램 이동
 
● 디지털 데이터의 1과0을 위상(각도,위치)을 다르게 하여 전송하는 방식 : 위상 편이 변조  또는 PSK
 
● 단방향 알고리즘 : 암호화만 가능
  양방향 알고리즘  : 암호화/복호화 가능

 


crontab  크론 표현식 

리눅스 명령 : crontab
데몬 : crond
 
분 시 일 월 요일 명령어 
* 매마다 뜻이다. 매분,매시,매요일 ( */30처럼 슬레쉬가 있는 경우에는 증분을 이야기한다.  30분마다)
월요일: 1
화수목금토 : 2-6
일요일:0


퍼미션

● rwx  //사용자, 그룹, 그외 
   rwx.rwx.r-x   // -는 권한이 없다는 뜻
   111.111.101  //8진수로 바꿔주면 된다.
 
● chmod 765 test.txt   //권한을 준다.
   권한을 바꾸기 위한 명령 chmod
   소유주를 바꾸기 위한 명령 chown

 
UMASK

● 리눅스, 유닉스를 파일,디렉토리를 만들게 되면 기본적인 권한을 가지게 된다.   
   // 파일은 666, 디렉토리는 777 
   UMASK는 권한에서 빼는것이다.  UMASK가 022로 설정되었다는것은 파일이면 644가 되고, 디렉토리는 755가 된다. 
이것의 파일 접근권한을 쓰라고 하면 rw-r--r-- 를 쓰면 된다. 


LOC 기법

상향식 기법 // 예측치를 구하기 위한 항목 : 기대치(중간치), 낙관치, 비관치
 
● 라인수로 개월 구하기
총라인수 ÷ 월 평균 생산성 ÷ 프로그래머 수  = 개발에 소요되는 시간


임계 경로

프로젝트를 완료하기에 주어져야 하는 최소한의 시간  // 일정산정할때 사용 
 
모든 경로의 수를 구해서 그 중에서 제일 오래걸리는 수가 임계경로임
 
가장 빠른 착수일과 가장 늦은 착수일을 구할때
구하고 자하는 단계가 임계경로상에 있다면 가장 늦은 착수일이 존재할 수 없다. 즉 여유기간이 없는것이다.
그러므로 빠른 착수일, 늦은 착수일을 구하라고 하면 일수는 동일하게 써주면 된다.
 
임계경로상에 없는 단계의 착수일을 구할때
● 가장 빠른 착수일은 그냥 해당 단계까지의 일수임
   ● 여유기간 = (임계경로) - (구하고자하는 경로상의 총일수) 
   ● 가장 늦은 착수일 = (여유기간)+(해당 단계까지의 일수)


● ÷  // 모든 조건을 만족하는것들을 찾아서, 그 튜플내에서 만족된것을 분리해서 출력한다.
 
● 컴퓨터 바이러스의 대표적인 기능 : 복제, 은폐, 파괴
 
● 소수(prime number)  1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수. 2, 3, 5, 7, 11 따위가 있다.
 
● OSI 7계층에서 종단 간 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출과 복구, 흐름 제어를 하는 계층은 전송 계층이다. 
 
● 대용량 테이블을 논리적인 작은 테이블로 나누어 : 파티션
   물리적인 하나의 테이블로 병합하는거 : 클러스터
   떨어져있는것을 논리적으로 하나의 데이터베이스화시킨거  : 분산 데이터베이스
 
● 하향식 통합 : 메인 제어 모듈을 시작으로 제어의 경로를 따라 아래 방향으로 이동(통합)하면서 테스트를 진행하는 방식 
깊이 우선 : 해당 모듈에 종속되어 있는 모듈을 우선 탐색
너비 우선 : 해당 모듈과 같은 레벨에 위치한 모듈을 우선 탐색 
 
● 교착상태 : 상호배제(Mutual exclusion), 점유와대기(Hold and Wait), 비선점(Non preemption), 환형대기(Circular wait)
 
● 하위계층 : 물리, 데이터링크, 네트워크
   상위계층 : 전송, 세션, 표현, 응용
 
● 데이터 웨어하우스 : 기업의 전략적 관점에서 효율적인 의사 결정을 지원하기 위해 데이터의 시계열적 축적과 통합을 목표로 하는 기술의 구조적, 통합적 환경  
 
● 버퍼 오버플로우 공격 : 정상적인 경우에는 사용되지 않아야 할 주소 공간(메모리)이나, 원래는 경계선 관리가 적절하게 수행되어 덮어쓸 수 없는 부분에 해커가 임의의 코드를 덮어씀으로써 발생하는 취약점을 이용하는 공격
 
● 커널 :  
모놀리식 커널 : 구현이 간단하고 속도가 빠르며, 임의 기능을 적재하여 동적으로 사용할 수 없다.
마이크로 커널 : 시스템 운영에 필요한 최소한의 기능들만을 제공하며, 사용자가 필요한 기능을 추가하여 운영체제를 확장
 
● Data Diet : 데이터를 삭제하는 것이 아니라 압축하고, 중복된 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 저장하는 작업이다. 기업의 데이터베이스에 쌓인 방대한 정보를 효율적으로 관리하기 위해 대두된 방안으로, 같은 단어가 포함된 데이터들을 한 곳에 모아 두되 필요 할 때 제대로 찾아내는 체계를 갖추는 것이 중요하다.  
 
● TCP에서 가장 회선이 처음 개설될 때 두 시스템 간에 정확한 메시지를 전송하기 위해 사용하는 플래그(제어 비트)가 무엇인지 영문 약어 : SYN
 
 ● 유닉스 : C언어 기반, 라이선스 비용 저렴
 
● IPv4 : 8비트씩 4부분 구성 32비트 주소 체계 각 자리0부터 255까지의 10진수로 표현하며  점으로 구분
 
● DRM : 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권 보호를 위해 데이터의 안전한 배포를 활성하거나 불법배포를 방지하기 위한 시스템
 
● 오라클 : true, sampling, Heuristic(추정), Consistent(일관성)
 
 

728x90
반응형
LIST