TIL-정처기

kyoungyeon·2023년 7월 21일
0

TIL

목록 보기
78/110

꼭 붙겠습니다!

Status

밤샘 공부 같이하던 동료를 보내고 죽이진않았습니다..

파도파도 끝이 없는 OS 전반을 공부하다 보니

코드문제를 잠 깰겸 하나씩 디버깅해보는데, 무엇보다 급한건 C였다..

java가 나오는 문제 좀 정형화된 느낌인데, 의외로 C 문법을 몰라서 헷갈리네..?
java를 잘 푼다는것은 아니지만 C가 좀 더 낯섦.

아니 프로그래밍에서 점수를 많아따야하는데..


C 공부

int main(){
char *p ="2023";

int a = p1;
//int a = p1 일 경우 메모리 주소값을 참조한다

printf("%d",len(a)+len(b));

}
int len(char*p){
//char*p를 하게되면 char 값 배열을 찾는다

int r = 0;
while(*p!=\0){
//*p는 각 배열의 원소 
// \0 = NULL 의 의미
	p++;
	r++;
    }
}
  • 문자열 끝에 \0 =NULL 이 왜 들어가는건지? 알아보기

Java 공부


  • 자바의 static 과 C의 static은 또 다르단다..
    • 메모리에 올라간 값의 개념정도로 인식했다.
    • 생성자 함수가 호출하는 경우 다 공유 가능
    • main 함수에서 사용하는 생성자의 값 할당은 생성자들끼리 공유하는 개념
  • 만약 직접 static 한값을 바꾸려면,

class AB{
	public int a =20;
	static int b =0; // 이렇게 선언되었으면 
}
class Main{
	public static void main(String[]args){
		// Ab.b =new AB(); // 이것 안써도
		AB.b =10;   //가능
		AB.a =10 ; //불가 

  	}
}
  • 메모리에 올라가는 static , 왜 이게 전역이지..? 이런 느낌이라 당황스럽다
#include <stdio.h>

int func(int a) {
  if (a <= 1) return 1;
  return a * func(a - 1);
}
int main() {
  int a =5;
  scanf("%d", &a);
 //printf("%d", &a); //디버깅용
  
  printf("%d", func(a));
 
}

-정답 :120

아니 어떻게 계산되는건데..?

// 디버깅해보니, a는 fun(int a)에서  5,4,3,2로 줄어듬
 마지막에 f(1)  return 1이 된다고 가정하면,
 1*f(2)*f(3)*f(4)*f(5) 이렇게 계산되야하는데,
 정답 120,  굳이 따진다면 1*2*3*4*5 = 120?  
//how to..?
// 내 로직엔 
 2 *f(1) = 2*1 =2 = f(2)
 3 * f(2) = 3 *2 =6 = f(3)
 4 * f(3) = 4*6 =24 = f(4)
 5* f(4) = 5* 24 = 120 이게맞지않음?
어라 맞네..?

-아아아악! 이건 왜 이런건지 정말 봐도봐도 모르겠다!!!!!!

  • 너무 졸려서 로직을 파악 못했던 걸로..😎

Python

  • 헷갈렸던 slice
b1 = a[:3]
b2 = a[12:16]
  • [str:end] 에서 str 형 포함 0부터 시작한다
  • end+1 자리값이라는것 잊지말자!

CS 공부

i  0 1 2
j -1 0 1
	i > 0 1 2

y = 0 x  = 1,3
	j > 0 1 2 
i j 
0,0  1  1,0   2 0 
0,1  1  1,1	  2 1
0,2  1  1,2  2 2 
 y x   i  j 
[0][1]   -1 , 0 , 1 / 0 1 2   
i  j 
0 012  > 1 , 1 , 1

1 012 > 1 1 1 


조인 함수 ><
프로젝트 뮤
카디션 X
차집합 -
합집합 U
교집합 우 
셀렉트 all

독립적 변경 / 기존 프로그램 변경없이 : 브릿지 패턴 
한객체 상태 변화시 객체에 상속된 다른 객체도 변화 :  옵저버 패턴
입력값 전후로 -1,0 1 있으면 경계값 분석- error 

사회공학 기본신뢰 를 기반으로 비밀 정보 획득 
다크 데이터- 구조화 x 죽은 데이터

SIEM - ML 기술, 대량로그 통합관리 및 분석
        이상패턴 확인- 오류, 이상
	로그 상관관계 분석
	알림

형상관리 항목 - cvs, svn git 

cvs : 클라 /서버 , 다수 인원 동시 범용 os 접근 하여 작업가능. 
svn : 아파치 , cvs 개선, 오픈소스
git : 리눅스 커널개발, 관리도구, 분산버전관리 레포지토리(저장소)  remote, local 저장소 나뉨
튜플

trustzone 프로세서 독립적인 보안구역 
typosquatting 
유사한 유명도메인 미리 등록
SJF 스케쥴링 레디큐 cpu 처리시간 짧은순 할당 비선점형 방식
RR 스케쥴링 도착한 순서대로 시간 간격, 할당량 내 실행 제한
SRT 스키쥴링  평균 대기시간 가장 짧다  context swtich

UML: 사물 관계 다이어그램
구조다이어그램 - 클래스 다이어그램 - 객체타입 
인터페이스- 클래스, 기타 모델 ,컴포넌트등 오퍼레이션 세트

마름모 -관계 (개체간 관계)
사각형 객체
타원 속성
이중타원 다중값
실선 개체와 관계집합의 연결
점섬 관계집합 관계집합의 속성과 연결

관계해석 - 관계데이터 연산 비절차적, 튜플 관계해석, 도메인 관계해석이 있따
1991년 블록암호 알고리즘 IDEA
NSA clipper 칩 블록 알고리즘 -SKIPJACK
경계값 분석테스트 등가분할후 경계값부분에서 오류발생 확률이 높다
RBAC -중앙관리자 가 시스템의 상호관계 통제한다 

rest - htto uri 통한 자원명시,  해당 자원에 대한 생성,조회 갱신 삭제등 명령을 적용할수 있는 sw 아키텍처

JSON -키쌍 key value D 오브젝트 
ajax  많이 사용 xml 대체 

xml - html 단점 보안 인터넷 언어
ajax- fetch 등 js 이용한 


디자인 패턴 
행위 패턴
-Mediator -= 느슨한 결합 특성 을 위한 유연한 중재자
- Interpreter 문법자체를 캡슐화, 다양한 형태의 언어 해석
- Iterator - 내부구조 노출 없이 복잡 객체 원소 순차적으로
- Template Metohgd 서브클래스로 캡슐화 유지보수 용이 
- Observer - 일대다 의존
- State  - 상태 캡슐화, 참조형식, 원시 코드 수정 최소화
- Visitor  - 객체 구조는 변경 없이 기능만 따로 추가/확장하는 패턴
- Command - 명령 기능을 캡슐화 
- Strategy - 행위객체 클래스로 캡슐화 동적 
- Memento - 작업취소 요청가능
-Chain of REsponsibility 하드코딩된 정적인 기능을 , 동적으로 연결되어 다르게 처리한다 
튜플 - 행 요소
릴레이션 -행+ 열 테이블
카디널리티- 행의 수?
차수 - 속성의 수 (열)

db 암호화 알고리즘
대칭키 -배밀키- des,aes,aria  seed 
비대칭키 - 공개키- rsa, rc4, ecc, ecdsa
해시 -sha 256...has 160
db 암호화기법
tde 방식/plugin/ api/ hybrid

중요 인터페이스 데이터 암호화 보안기술
ipsec _ ah헤더 +esp
ssl/tsl 4에서 7계층 사이 433 포트 사용 (https)


베타 테스트 -선발된 잠재고객 발매전 최종실시
알파 테스트 - 제품 개발 과정내 첫번째 테스트

regression 회귀 테스트 - 오류제거와 수정에 의해 새로유입된 오류 검증
recovery test- 일부로 실패 유도
security  - 안전테스트 
성능 테스트- 응답시간, 처리량, 반응속도
구조 테스트 - 복잡도
Parallel 테스트 -구신버전 동일데이터 비교

프로젝트 연산? 
조건을 만족하는 컬럼에 속한 값 가져오기

IGP  - 여러 개 네트워크 집합 + 도매인 내부 경로 설정
BGP -  시스템 사이에 경로 설정 정보 교환
OSPF- RIP보다 규모가 큰 네트워크 ,단점 개선
EGP- 서로 다른 자율시스템AS 라우터간에 라우팅 정보 교환에 사용하는 외부 gw 프로토콜

사설 네트워크 연결 암호화 vpn

ISP - 인터페이스를 작은단위로 분리 

엣지 컴퓨팅- 데이터 소스의 물리적인 위치, 리소스풀, 연산 및 처리 분산시킴

http -하이퍼텍스트 문자 교환 통신규약
hypertext - web of associate
html -웹페이지 표시 마크업 언어
----
c언어 문법
static 정적인 - > 지역 메소드내_ 전역 메모리에 올라가서 전체적으로 쓰는데, 신기하게도 둘다로 활용가능
java 문법
static 인스턴스 사용하지않아도 메모리에 올라가기 때문에 바로 사용가능

JAVA
|  or 연산자
둘중 하나라도 true면 true임
2 |5 = 7 덧셈
2|| 5  > 선조건 true시 후조건 실행안함 > a: b 중 a

	조건 선조건 false시 후조건 false면 a:b 중 b 

TCL  
커밋: 트랜잭션 확정 트랜잭션 메모리에 영구 저장 명령어
롤백 트랜잭션 취소 트랜잭션 내용 저장 무효화
체크 포인트 : 브레이크 포인트 저장시기 롤백지점

랜드 어택 
출발지 ip 목적지ip  같은 패킷 주소로 보냄
수신자가 자기 자신에게 응답 시스템 가용성 침해

해시 암호화 
MD5 - 512 bit 메시지 블록 129bit 해시값
SHA-1 160 bit 해시값 생성
sha256 348 512 256bit
has 160 국내표준 서명 알고리즘

결합도 
내용결합도 - 모듈 내부 변수/기능 다른 모듈 사용 결합도
공통 결합도 -파라미터 외 모듈 밖 선언된 전역변수 참조, 갱신
외부 결합도- 두개 묘듈 외부에서 도입된 데이터 포맷 통신 프로토콜 디바이스 인터페이스 공유 결합도
제어 결합도 - 어떻게 제어 요소
스탬프 겨합도- 배열,객체 구조, 인터페이스
자료결합도 - 
리팩토링  - 
유지보수성, 유연시스템 생산성 향상 품질향상

OSPF
다익스트라 alg 0 내부라우팅
라우팅 메트릭 최초 지연 최대처리량라우팅
AS 분할 사용 - 자치 시스템 지역적 라우팅
홉카운트 -제한없음

블랙 박스 테스트 유형 -내부 구조나 작동 원리 모름
동등 분할 테스트 - 유무효값
경곗값 -등가분할 경계값
결정 테이블 테스트  -논리 발생 조건 조건 행위 모두 조합
상태전이 테스트- 테스트 대상 시스템 객체 상태 구분 전이
유스케이스 -실제 유스케이스 모델링 
분류트리 테스트 - 일부/전체 트리 구조로 분석 표현 테스트 설계
페어와이즈 테스트 - 테스트 데이터값 최소 한번씩 조합
원인결과 그래프 - 그래프 데이터간 관계 출력
비교 테스트 = 여러버전 프로그램 입력값 동일결과

화이트 박스 테스트 -  각 응용 프로그램의 내부구조와 동작 검사 (구결조 조변다 기제데루)
	구문 커버리지 = 문장 커버리지 - 적어도 한번 수행
   결정커버리지 = 선택 커버리지 -  전체 조건식 boolean 결과 + 구문 커버리지 포함
   조건 커버리지 =  개별 조건식 boolean 결과 + 구문 커버리지
조건/결정 커버리지 = 전체 + 개별 조건식 boolean 
변경 조건/결정 커버리지 - 개별 조건식 독립적으로 
다중조건 커버리지 - 결정조건내 모든 개별조건식 가능한 조합
기본경로 커버리지 =경로 - 수행가능한 모든 조건 테스트
제어흐름 테스트- 내부로직 테스트
데이터 흐름 테스트-  제어흐름 그래프 + 데이터 그래프
루프 태스트- Loop 구조 
데이터 웨어 하우스 -  의사결정 도움, 통합 관리 데이터 베이스
데이터 마트 - 재무,생산,운영같이 특정 조직의 특정 업무 분야 storage


EAI 
포인트 - 투 포인트 : 1:1 
허브앤 스포크 : 단일 접점 허브 시스템 중앙집중
메시지 버스 -앱 사이 미들웨어 버스 (os , 인터페이스 네트워크 공간) 
하이브리드 -  그룹내 중앙집중(허브앤스포크) 그룹간 메시지 버스(미들웨어)

Ipv4
10진수 - 12자리 4부분
각부분 0 -255 3자리 수 표현
ipv4 32bit ipv6 128bit 
ipv6 주소 : 128bit 주소 공간 네트워크 물리계층 

디자인패턴 
목적 
객체인스턴스 생성 ,
클래스 정의 객체 생성 방식 구조화
캡슐화 수행
구조 
더큰 목적 클래스,객체 조합 패턴
행위
클래스나 객체들이 상호작용하는 방법과 역할 분담 패턴 
범위
클래스 - 클래스간 관련성 /컴파일 타임 정적 
객체 객채간 관련성 패턴  / 런타인 동적 

스니핑 - 수동적 공격 
스캐너 스피너 -  네트워크 hw sw 취약점 탐색 공격
패스워드 크래킹 -사전 크래킹, 무차별, 패스워드 레인보우 테이블
ip 스푸핑- 인증된 컴퓨터시스템처럼 속여서 ip 주소 위조
arp 스푸핑 -해커의 mac 주소로 arp reply , 희생자의 arp cache table
icmp redirect - 네트워크 계층에서 스니핑 시스템, 다른 라우터 패킷 흐름
트로이 목마 -악성 루틴 숨어있는 파일/프로그램 업로드
	실행시 작동 
NAT 유형

static nat - 사설 ip 공인 ip 1:1
dynamic NAT  = 사설 ip 공인 ip n:1 / n:m 연결

NAT- 사설 네트워크에 속한 여러개 호스트가 하나의 공인 ip 주소를 사용하여 인터넷 접속 
블록체인 합의 알고리즘
PoW - 확률적으로 해답 어려운 문제 빨리 해결한 사람에게 블록 만들수 있게 허가
PoS 이더리움 채택한 알고리즘 

csma/cd  802.3 유선 lan충돌 탐지 ,mac 
csma/ca : 무선 lan 반이중 충돌회피 
XSS  크로스사이트: 검증되지 않은 외부입력
사이트간 위조 csrf 

회선 교환 데이터그램 , atm - 가상회선

신뢰 가능 ,패킷교환 ,독립적  - 데이터그램
2계층 터널링 l2f pptp vpn, isp l2tp

proxy - 인터페이스 , 실제 객체 호출 중간에 가로챈다
		분리객체 위임, 객체참조 ,동적 연결

튜플 셀수있는 열거 
릴레이션 인스턴스- 상태, 저장된 데이터 전체
카디널리티- 행에 대한 컬럼 중복수치

삭제
delete from 테이블 where 특성 = '' 
외부 스키마 - 논리적 구조, 서브 스키마
개념 스키마- 조직전체 db, 무결성 보안 등 
내부 스키마- 데이터 저장 방법 기술 

스트라이핑 / 블럭 데이터 저장 /매우 빠른속도
raid 0

redo - 로그로 기록하고 이전상태로 실패발생전 과정까지 따라간다
(롤백아님주의)
undo - 작업 취소하여 트랜잭션을 이전상태로 돌림


group by having avg
order by "attr' DESC
데이터 이상현상중 삭제이상: 삭제할 경우 다른 데이터도 삭제 되어버리는 이상

extend 요소 확장, 모든 항목 하나의 요소 추가
pop 내부 요소를 꺼내주는 함수 리스트 안에서 삭제하고 그 값을 변환
reverse 내부 요소의 순서는 뒤집는 역할

TKIP 임시키 무결성 프로토콜
NUI natrual interface 

static: 소스 코드의 실해없이 코드의 의미를 분석해 결함을 찾아내는 원시 코드 분석기법
dynamic : 코드를 실행하여 프로그램 동작이나 반응을 추적, 코드에 존재하는 메모리 누수 ,스레드 결함등 분석

응집도가 낮으면 - 이해 어려움, 유지보수 재사용 어려움,타 클래스 변화에 민감

응집도는 높을수록 좋은 품질 ( 기능적 응집도)  
결합도는 낮을수록 느슨한 관계여서 의존도가 낮아짐. 가용성이 높아짐

자바프로그래밍 언어를 이용한 xUnit 테스트 기법으로 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 Framework
- JUnit


IT 업무 프로세스
5force 사업경쟁요인 분석 / client 구매력 producer의 구매 대체품에 대한 위험 진입장벽
6 시그마 = 모토로라 ,경영혁신, 평균 및 산포 개선

블랙 박스 테스트 기법
- 경계값 boundary
- 동등분할 테스트 동치분할 -유무효값
- cause effect 원인결과 

profile
🏠TECH & GOSSIP

0개의 댓글