본문 바로가기

Computer Science/CS17

[전산 공부] 소프트웨어 개발 보안 🔹 소프트웨어 개발 보안 ✔️ Secure SDLCCLASP: SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론Seven Touchpoints: 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론  ✔️ 소프트웨어 개발 보안 요소1) 기밀성(Confidentiality)시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음2) 무결성(Integrity)시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 3) 가용성(Availability)인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음 4) 인증(Authentication)시스템 내의 정보와 자원을 사용하려는 사용자가 합.. 2024. 4. 6.
[전산공부] 소프트웨어공학 + 최신기술 * 소프트웨어 공학: 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문이며, 여러 가지 방법론과 도구, 관리 기법들을 통하여 소프트웨어의 품질과 생산성 향상을 목적으로 한다. 1) 프로세스와 방법론 ✔️ 요구사항 개발 프로세스 도출 > 분석 > 명세 > 확인 * 요구사항: 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 4가지 유형: 기능, 비기능, 사용자, 시스템 요구사항 기능적 요구사항 Vs 비기능적 요구사항 기능적 요구사항 : 시스템이 실제로 어떻게 동작하는 지에 관점을 둔 요구사항 비기능적 요구사항 : 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 성능, 보안, 품질, 안정성등으로 실제 수행에 보조적인 요구사항 [ 요구사항.. 2024. 3. 17.
[전산공부] 데이터베이스 1) 데이터베이스 시스템 ✔️ 스키마 외부 스키마 : 프로그래머나 사용자의 입장에서 데이터베이스 정의 여러 개의 외부 스키마가 존재 O (공용 가능) 전체 논리적 일부분 표현 → Subschema라고 한다. 개념 스키마 : 범 기관적인 입장에서 데이터베이스 정의 조직 전체 데이터베이스의 논리 구조 하나만 존재 개념 스키마와 외부 스키마 사이에는 논리적 데이터 독립성이 있어야 한다. 데이터베이스 내에는 하나의 개념 스키마 존재 개체, 관계, 제약조건, 접근 권한, 보안 정책, 무결성 규칙에 관한 명세 내부 스키마 : 물리적 저장 형태를 기술하는 것 개념 스키마에 대한 저장구조를 정의 - 논리적 데이터 독립성: 데이터의 논리적 구조가 변경되어도 응용프로그램은 변경되지 않는 속성 - 물리적 데이터 독립성: 내.. 2024. 2. 25.
[전산공부] 운영체제 1) 개념 운영체제 발달 과정 일괄처리 → 시분할 → 다중모드 → 분산처리 커널(Kernel): 메모리에 상주하면서 하드웨어 자원 관리, 여러 자원을 배분하고 관리하는 핵심 역할 수행하는 운영체제 모듈 C언어 컴파일 과정 전처리기 → 컴파일러 → 어셈블러 → 링커 → 로더 원시 프로그램 → 목적 프로그램 과정 원시 프로그램 → 어휘 분석 → 구문 분석 → 의미 분석 → 중간코드 생성 → 코드 최적화 → 목적 코드 생성 → 목적 프로그램 스풀링 CPU와 입출력 장치의 속도 차이를 줄이기 위해 보조기억장치(HDD, SDD)의 일부를 버퍼처럼 사용한다. 버퍼링 CPU와 입출력 장치의 속도 차이를 줄이기 위해 주기억장치(DRAM)의 일부를 버퍼처럼 사용한다. 2) 프로세스와 스레드 [ 메모리 ] 데이터 영역: .. 2024. 2. 18.
[전산 공부] 데이터 통신 1) 개념 [ 통신 방법 ] Bluetooth: 휴대폰과 그 주변장치를 연결하는 무선 솔루션, IEEE 802.15.1 표준으로 채택된 통신 방법 10m 안팎의 근거리 무선 통신 기술 ISM 주파수 대역인 2,400 ~ 2,483.5HZ를 사용한다. 기기 간 마스터와 슬레이브 구성으로 연결된다. RFID: 무선주파수를 이용하여 반도체 칩이 내장된 태그와 리더기로 구성된 인식시스템 NFC: 13.56MHz의 대역을 가지며, 아주 가까운 거리 무선 통신 기술, 교통, 티켓, 지불 등 여러 곳에서 사용된다. ZigBee: IEEE 802.15.4 기반 PAN 기술로 낮은 전력을 소모하면서 저가의 센서 네트워크 구현에 최적의 방안을 제공하는 기술 [ 네트워크 토폴로지 ] 스타: 각 장치는 허브라는 중앙 제어기와.. 2024. 2. 2.
[전산 공부] 자료구조 1) 연결리스트(Linked List) 각 노드는 데이터 필드 + 링크 필드(포인터)로 구성되어 있다. 포인터가 다음 노드를 가리키는 구조로, 전체 노드는 서로 연결되어 있다. Q. 새로운 노드 삽입 (1 -> 2 사이에 3 삽입) - 3 노드의 링크가 2를 가리키게 한다. - 1의 링크가 3을 가리키게 한다. (즉, 1이 원래 3을 가리키고 있는 링크를 3 노드가 가져오면 된다.) newNode(3 노드) -> link = preNode(1 노드) -> link; 2) 스택(Stack) [ 수식의 표기법 변환 ] 연산 우선순위에 따라 괄호를 묶어서 그것을 한 묶음으로 보고 변환해주고 그걸 또 하나의 덩어리로 보고 전환 Q. 예시 문제 문제 해설 전위 표기법(prefix)-연산자가 앞에 중위 표기법(in.. 2024. 1. 27.
[전산 공부] 컴퓨터 구조 소프트웨어 기초도 공부하는 주디! 개인 공유용으로 기록! 1) GPU GPGPU(General-Purpose computing on Graphics Processing Units) 기술 GPU에서 그래픽 연산 이외의 목적을 가진 프로그램을 실행할 수 있도록 해주는 기술 많은 수의 단순 ALU가 있어 높은 수준의 병렬 처리가 가능하고, 이로 인해 CPU에 비하여 프로그램 병렬 처리 속도가 높아진다. OpenCL을 이용하여 프로그래밍할 경우 다양한 제조사의 GPGPU 기기에서 실행 가능한 프로그램을 작성할 수 있다. GPU는 CPU에 비해서 대량의 간단한 연산을 병렬로 빠르게 처리하는 데 적합한 구조이다. 2) CPU : 중앙처리장치 [ 제어 CPU 레지스터 ] 1. 명령어 레지스터(IR, Instructi.. 2024. 1. 14.
[알고리즘] 최소 공통 조상(LCA) 알고리즘 🧩 최소 공통 조상(LCA) 알고리즘 최소 공통 조상(LCA): 두 노드의 공통된 조상 중에서 가장 가까운 조상을 찾는 문제 여기서 3번 노드와 11번 노드의 공통 조상 노드는 1번이다. ✔️ 동작 과정 모든 노드에 대한 깊이(depth)를 계산 최소 공통 조상을 찾을 두 노드를 확인 먼저 두 노드의 깊이(depth)가 동일하도록 거슬러 올라간다. 이후에 부모가 같아질 때까지 반복적으로 두 노드의 부모 방향으로 거슬러 올라간다. 모든 LCA(a, b) 연산에 대하여 2번의 과정을 반복한다. 1) 모든 노드 깊이 계산 우선 DFS를 이용해서 루트 노드에서부터의 깊이를 구한다. 2) 공통 조상을 구할 노드 선택 두 노드의 깊이를 맞춰주고, 거슬러 올라간다. 그렇게 2번 노드가 공통 조상임을 찾을 수 있다! .. 2023. 12. 10.
[자료구조] hashing, hash function, map, hash table, hash set | 종합 선물 세트..? 모의면접에서 hash 파트 정확하게 잘 모르는 걸 어떻게 알았는지... 해시(스터디원)가... 자꾸 해시를 물어봤다... 가만안도오. 😫 이번엔 제대로 대답한다.. 가보자 해시 나라로. 자료구조 공부에서 기본은 해당 자료구조의 특징과 문제점. 그리고 구체적으로 어느 곳에서 사용되는지(use case)를 아는 것이다! 거기서 추가적으로 대답의 깊이를 가져가기 위해서는 hash 자료구조 같은 경우에는 hash function을 만들 때 고려할 점과 collision 상황 해결 방법에 대해서 알면 좋다! DFS : 좁고 깊게 vs BFS : 얕고 넓게 10개의 질문에 BFS로 대답하는 것보다 1개라도 DFS로 대답하자!!! 다시 한 번 다짐하며! 정말 출~발~ 💫 hash 대략적인 개념들부터 살펴보자. [ 해.. 2023. 4. 18.
[자료구조] Red-Black 트리 [ 이진 탐색 트리(BST, Binary Search Tree)의 단점 ] 균등 트리 : 노드 개수가 N개일 때 O(logN) 편향 트리 : 노드 개수가 N개일 때 O(N) 이진 탐색 트리는 최악의 경우 한쪽으로 편향된 트리일 때 O(N) 시간이 걸린다. 이 말은 모든 노드를 한 번씩 다 확인해줘야 한다는 의미이다. 이러한 단점을 개선한 균형 트리인 Red-Black 트리에 대해서 알아보자. 🔴 Red-Black 트리 ⚫️ 이진 탐색 트리의 단점을 개선하기 위한 자료구조 이진 탐색 트리(BST)의 한 종류 스스로 균형(balancing) 잡는 트리 BST의 worst case의 단점을 개선해서 모든 경우에 O(logN) 모든 노드는 red 혹은 black ✔️ 5가지 속성 모든 노드는 red 혹은 bla.. 2023. 3. 2.
[알고리즘] 최단 경로 알고리즘 (다익스트라, 플로이드 워셜) 🧩 최단 경로 알고리즘 최단 경로 알고리즘: 가장 짧은 경로를 찾는 알고리즘 문제 상황 한 지점에서 다른 한 지점까지의 최단 경로 한 지점에서 다른 모든 지점까지의 최단 경로 모든 지점에서 다른 모든 지점까지의 최단 경로 [그래프] 노드(각 지점) / 간선(지점 간 연결된 도로) 다익스트라 최단 경로 알고리즘 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산 음의 간선이 없을 때 정상적으로 동작 그리디 알고리즘 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정 반복 ✔️ 동작 과정 출발 노드 설정 최단 거리 테이블 초기화 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드 선택 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리 테이블 갱신 위 과정에서 3번, 4번 .. 2022. 10. 25.
[자료구조] 서로소 집합 (Disjoint Sets), 사이클 판별 알고리즘 서로소 집합: 공통 원소가 없는 두 집합을 의미한다. 1. 서로소 집합 자료구조 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조이다. 합치기 찾기(Union-find) 자료구조라고 부르기도 한다. ✔️연산 합집합(Union): 두 개의 원소가 포함된 집합을 하나의 집합으로 합치는 연산 찾기(Find): 특정한 원소가 속한 집합이 어떤 집합인지 알려주는 연산 ✔️ 동작 예시 1) 합치기 연산 1. 합집합(Union) 연산을 확인하여, 서로 연결된 두 노드 A, B를 확인한다. 1) A와 B의 루트 노드 A', B'를 각각 찾습니다. 2) A'를 B'의 부모 노드로 설정합니다. 2. 모든 합집합(Union) 연산을 처리할 때까지 1번의 과정을 반복합니다. ✔️ 기본 소스 코드 예제 #.. 2022. 8. 8.
[알고리즘] 그래프 탐색 알고리즘 DFS / BFS 탐색(Search): 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 ex) 선형 검색, 이진 검색, 너비우선탐색(BFS), 깊이우선탐색(DFS) 1. DFS (Depth-First Search) 깊은 부분을 우선적으로 탐색하는 알고리즘이다. - 스택 자료구조(혹은 재귀 함수) 이용 ✔️ 동작 예시 최대한 깊게 들어가는 형태로 동작한다. * [Step1] 시작 노드인 '0'을 스택에 삽입하고 방문 처리를 한다. * [Step2] 스택의 최상단 노드인 '0'에 방문하지 않은 인접 노드 '1', '4'가 있다. 이 중 가장 작은 노드 '1'를 스택에 넣고 방문 처리한다. * [Step3] 스택 최상단 노드인 '1'에 방문하지 않은 인접 노드 '2'를 스택에 넣고 방문 처리한다. 0->1->2->3->4 .. 2022. 8. 3.
[자료구조] 그래프(Graph) 1. 그래프(Graph) - 연결되어 있는 객체 간의 관계를 표현하는 자료 구조 - 그래프는 정점(Vertex)과 이들을 연결하는 간선(Edge)들의 집합으로 구성된다. - N:N 관계 표현이 용이하다. ✔️ 종류 : 간선(edge)의 종류에 따라 구분 무향 그래프 (Undirected Graph) 양 방향으로 이동 ex) (A,B) (B,A) 유향 그래프 (Directed Graph) 간선의 방향으로만 이동 가능 ex) 가중치 그래프 (Weighted Graph) 간선에 비용(cost) 또는 가중치(weight)가 할당된 그래프 ex) 네트워크 사이클 (Cycle) 시작 정점과 종료 정점이 동일한 그래프 비순환 그래프 (Acyclic Graph) 사이클이 없는 그래프 완전 그래프 (Complete Gr.. 2022. 8. 1.
[자료구조] 트리 (Tree) 비선형 구조, 그래프의 특수한 형태 중 하나이다. 1. 개념 그래프 정점(vertex)과 간선(edge)로 이루어져 있는 자료구조 방향이 있는 간선을 포함한 그래프를 유향 그래프 처음 시작한 정점으로 다시 돌아오는 경로를 '사이클' 트리 특별한 성질을 갖는 그래프를 트리로 각 노드가 하나의 부모 노드와 간선으로 연결되어있는 자료구조 가계도와 같은 계층적인 구조를 표현할 때 사용할 수 있는 자료구조 트리의 크기가 N일 때, 전체 간선의 개수는 N-1개. • 트리의 간선들은 모두 방향성을 갖는다. • 어떤 정점을 가리키는 정점의 개수는 최대 1개이다. • 어떤 정점에서 다른 정점으로 이동할 수 있는 경로는 1개다. • 트리는 사이클을 갖지 않는다. 디렉터리(폴더) -> 트리 구조 예시 이진 탐색 트리 (Bi.. 2022. 7. 29.
반응형