본문 바로가기

Computer Science40

[전산 공부] 소프트웨어 개발 보안 🔹 소프트웨어 개발 보안 ✔️ 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.
[DB] Lock을 활용한 Concurrency Control 기법 다시 돌아온 CS 공부하는 주디! 블로그 포스팅 스터디를 하고 있지만 이미 벌금 12000원을 납부한 그녀.. 🤖 : 야 너 취업하더니 의지가 다 어디 갔냐 🐰 : 칼퇴해도 운동하고 집 가면 하루가 없다고!!! 🤖 : 변명이야!!! 열공해라 주디 🐰 : ㄴ ㅔ . . . 오랜만에 CS 공부하러 출~발~ ⛄️ DB Locking 오늘은 Lock을 활용한 Concurrency Control 기법을 공부해보려고 한다. Concurrency Control 기법?! 오!! 이거 주디 블로그 시리즈물 아닌가? 맞다!! 아래 내용을 참고하면 된다! [DB] 트랜잭션 #1 | 개념과 ACID 속성 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) [DB.. 2023. 12. 24.
[알고리즘] 최소 공통 조상(LCA) 알고리즘 🧩 최소 공통 조상(LCA) 알고리즘 최소 공통 조상(LCA): 두 노드의 공통된 조상 중에서 가장 가까운 조상을 찾는 문제 여기서 3번 노드와 11번 노드의 공통 조상 노드는 1번이다. ✔️ 동작 과정 모든 노드에 대한 깊이(depth)를 계산 최소 공통 조상을 찾을 두 노드를 확인 먼저 두 노드의 깊이(depth)가 동일하도록 거슬러 올라간다. 이후에 부모가 같아질 때까지 반복적으로 두 노드의 부모 방향으로 거슬러 올라간다. 모든 LCA(a, b) 연산에 대하여 2번의 과정을 반복한다. 1) 모든 노드 깊이 계산 우선 DFS를 이용해서 루트 노드에서부터의 깊이를 구한다. 2) 공통 조상을 구할 노드 선택 두 노드의 깊이를 맞춰주고, 거슬러 올라간다. 그렇게 2번 노드가 공통 조상임을 찾을 수 있다! .. 2023. 12. 10.
[Oracle] 날짜 데이터 가지고 놀기 📆 📄 TO_CHAR DATE 타입의 데이터를 가지고 원하는 형식으로 출력할 수도 있고 연도, 월, 요일만 추출해서 따로 사용할 수도 있다. 숫자와 날짜 타입을 문자로 변경해주는 형변환 함수이다. ✔️ 날짜, 시간 변환 TO_CHAR(SYSDATE,'YYYY') AS YYYY /* 년도 */ TO_CHAR(SYSDATE,'MM') AS MM /* 숫자 월 표시 */ TO_CHAR(SYSDATE,'MONTH') AS MONTH /* 긴 영문 월 표시 */ TO_CHAR(SYSDATE,'MON') AS MON /* 짧은 영문 월 표시 */ TO_CHAR(SYSDATE,'DDD') AS DDD /* 365일 형태로 일 표시 */ TO_CHAR(SYSDATE,'DD') AS DD /* 31일 형태로 일 표시 */ .. 2023. 11. 22.
[Oracle] 🚂 쿼리 열차 출발합니다~ 시간대 별로 데이터 개수 세기 최근에 쿼리 작성할 일이 많았는데 (다시 시작된 일 찾아서 하는 대견한(?) 주디🐰 하나씩 내 이름으로 올리는 거 제법 재밌단 말이지~?!) 근데 뭔가 검색하면서 쿼리를 작성하니 나중에는 또 까먹고 다시 검색할 것이 눈에 보여 하나하나 간단한 예제로 정리해보려고 한다! (근데 이 정도면 금융권은 알고리즘보다 SQL 문제를 더 내야 한다!!!! 재밌는데 어려워!! 튜닝은 더 모르겠어) 그럼 쿼리 열차 출발~~🚂🚂 비키세요 비키세요 폭주 기관차 주디 지나갑니다 🐰🚂 이 글은 Oracle 기준으로 작성된 글입니다. 🌱 시간대 별로 데이터 개수 세기 ▶️ 요구사항 1시부터 24시까지 각 시간대 별로 데이터의 개수를 출력 데이터가 없는 시간대에도 0이라고 표시해서 데이터 출력 흔히 통계 데이터 조회에서 1시부터 .. 2023. 11. 6.
[자료구조] 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.
[웹개발자 필수2] HTTPS 작동 원리 우리는 웹으로 많은 일을 할 수 있다. 그 중 웹 사이트에서 신용카드로 물건을 구매한 경험이 있을것이다. 이때 우리의 브라우저와 서버 간의 통신은 거의 확실하게 TLS 위에서 사용하고 있을 것이다. (URL이 https:로 시작한다면 TLS를 사용하고 있는 것이다.) 금융 정보나 메일 등 중요한 정보를 보호하기 위해서 가장 기본적인 기술이 HTTPS라고 할 수 있다. 지금부터 HTTPS에 대해서 알아보자. 🔒 HTTPS (Hypertext Transfer Protocol Secure) 인터넷 상에서 정보를 암호화하는 TLS 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTP는 평문 텍스트, 즉 암호화되지 않은 텍스트를 전송하는 TCP 프로토콜의 일종이다. 여기에 S(Se.. 2023. 3. 20.
[자료구조] 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.
[DB] 인덱스 (index) 🔖 인덱스 (index) 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 즉, index는 데이터의 주소값을 저장하는 별도의 특별한 자료 구조이다. index를 활용해서 빠르게 원하는 데이터를 찾을 수 있다. ✔️ Point 1 : DB 테이블에 인덱스(index)가 필요한 이유 🧐 만약 table에 index를 걸지 않으면 어떻게 될까? SELECT * FROM customer WHERE first_name = "Jeongyoon"; 원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야 한다. 즉, first_name에 index가 걸려있지 않다면 "Jeongyoon"을 찾기 위해서는 모든 데이터를 하나씩 확인해야 한다. full .. 2023. 2. 16.
반응형