전체 글
-
랜섬웨어의 진화: 단순한 암호화에서 이중 갈취 전략으로security 2025. 3. 5. 14:09
https://archive.md/2shjf 랜섬웨어의 진화는 지난 30년 동안 사이버 보안 환경에서 가장 중요한 변화 중 하나입니다. 1990년대 비교적 조잡한 형태의 디지털 강탈 수단으로 시작했던 랜섬웨어는 수십억 달러 규모의 정교한 위협으로 발전했습니다. 1989년 에이즈 트로이 목마로 시작된 이 공격은 피해자가 파나마의 사서함에 189달러를 우편으로 보내도록 하는 원시적인 공격이었지만, 지금은 고도의 암호화, 이중 강탈 전술, 암호 화폐 지불을 사용하는 고도로 조직화된 공격으로 변모했습니다.이러한 극적인 진화는 기술 발전뿐만 아니라 기회주의적인 개인이 사업체처럼 효율적으로 운영되는 전문 범죄 조직에 자리를 내준 사이버 범죄 자체의 변화하는 특성을 반영합니다. 1990년대부터 2024년까지의 주요..
-
린 소프트웨어 개발론 적용book 2024. 12. 10. 23:38
로드맵1. 현재 위치에서 시작해라 : 어떻게 가치와 이윤을 창출할 것인가?2. 가장 큰 제약사항을 찾아라 : 가치와 이익을 창출하는 데 있어 능력을 제한하는 가장 큰 문제는 무엇인가?3. 가장 큰 위험을 내다보라 : 향후 오랜 기간동안 꾸준히 가치를 창출하고 이윤을 내는 데 있어 가장 큰 위협은 무엇인가?4. 문화를 평가해라 : 최일선 작업자와 동료를 깊이 존중하는 문화를 만들어라. 직원의 자부심을 빼앗는 요인을 제거해라.5. 훈련시켜라 : 작업 절차를 개선하기 위한 체계적인 접근법을 사용하여, 팀을 어떻게 이끌 것인지, 작업자들을 어떻게 가르칠 것인지, 어떻게 도울 것인지에 대하여 팀 리더와, 관리감독자, 관리자들을 훈련시켜라6. 가장 큰 문제를 해결해라 : 작업 팀에게 가장 큰 제약사항을 넘겨라. 다..
-
파이썬 트리computer science/algorithm 2024. 12. 10. 23:37
트리의 구조와 관련 용어트리는 아래의 사진과 같이 노드(node)와 가지(edge)로 구성된다. 각 노드는 가지를 통해 다른 노드와 연결된다.루트 : 트리의 가장 위쪽에 있는 노드를 루트라고 한다. 루트는 트리 하나에 1개만 존재한다. 리프 : 가장 아래쪽에 있는 노드를 의미한다. 단말 노드(terminal node), 외부 노드(external node)라고도 한다. 물리적으로 가장 밑에 위치한다는 의미가 아니라 가지가 더 이상 뻗어나갈 수 없는 마지막에 노드가 있다는 뜻이다. 비단말 노드(non-terminal node) : 리프를 제외한 노드. 내부 노드(internal node)라고도 한다. 자식 : 어떤 노드와 가지가 연결되었을 때 아래쪽 노드. 노드는 자식을 몇개라도 가질 수 있다. 부모 ..
-
파이썬 연결리스트computer science/algorithm 2024. 12. 10. 23:30
리스트는 데이터에 순서를 매겨 늘어놓은 자료구조다. 구조가 간단한 리스트로 선형 리스트(linear list) 또는 연결 리스트(linked list)가 있다.위의 그림은 연결 리스트의 기본 구조다. A에서 F까지 데이터가 순서대로 나열되고 각 데이터가 화살표로 연결되어 있다. 이런 구조에서는 누군가를 건너뛰거나 뒤돌아 앞사람에게 연락해서는 안 된다.연결 리스트에서 각각의 원소를 node라고 한다. 노드는 data와 pointer를 갖고 있다. 맨 앞에 있는 노드를 head node, 맨 끝에 있는 노드를 tail node라고 한다. 각 노드에서 바로 앞에 있는 노드를 predecessor node, 바로 뒤에 있는 노드를 successor node라고 한다. 배열로 연결 리스트 만들기뒤쪽 노드 꺼내기:..
-
파이썬 정렬 알고리즘computer science/algorithm 2024. 12. 10. 23:27
정렬 알고리즘의 정의정렬(sorting)이란 텍스트나 숫자 등의 key를 항목 값의 대소 관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업을 말한다. 데이터를 정렬하면 쉽게 검색할 수 있다. 값이 작은 데이터를 앞쪽에 늘어놓는 것을 오름차순(ascending order)정렬이라 하고, 반대를 내림차순(descending order) 정렬이라 한다.정렬 알고리즘은 데이터를 교환-선택-삽입하면서 정렬을 완료한다. 대부분의 정렬 알고리즘은 이 세가지를 응용한다.안정성여러 정렬 알고리즘 가운데 안정적인(stable) 알고리즘과 그렇지 않은 알고리즘으로 나눌 수 있다.위의 그림처럼 안정적인 정렬 알고리즘은 값이 같은 원소의 순서가 정렬한 후에도 유지되는 것을 말한다. 안정적이지 않은 알고리즘은 정렬 ..
-
재귀 알고리즘computer science/algorithm 2024. 12. 4. 22:14
어떠한 이벤트에서 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의되는 경우 재귀(recursion)라고 한다. 재귀를 사용하는 대표적인 예로 팩토리얼(factorial) 문제가 있다. 팩토리얼은 양의 정수를 순서대로 곱한다는 의미다. 양의 정수 n의 팩토리얼(n!)은 다음과 같이 재귀적 정의를 할 수 있다.(재귀 과정으로 팩토리얼값을 구하는 문제는 재귀의 원리를 이해하기 위한 예제일 뿐 알고리즘 문제를 풀 때 현실적으로 적절하지 않다.) 더보기def factorial(n :int): if n > 0: return n * factorial(n - 1) else: return 1 if __name__ == '__main__': n = int(input('..
-
queue, stack (큐, 스택)computer science/algorithm 2024. 12. 4. 22:12
Queue큐는 스택과 같이 데이터를 임시 저장하는 자료구조이다(배열을 사용하여 구현 가능).가장 먼저 넢은 데이터를 가장 먼저 꺼내는 선입선출(FIFO) 구조이다. 컴퓨터에서 데이터를 주고받을 때 각 주변장치들 사이에 존재하는 속도의 차이나 시간차이를 극복하기 위한 임시 기억 장치로 큐가 사용되는데, 이것을 buffer라고 한다. 큐에 데이터를 추가하는 작업을 인큐(enqueue), 데이터를 꺼내는 작업을 디큐(dequeue). 데이터를 꺼내는 쪽을 front, 넣는 쪽을 rear라고 한다. 위의 배열은 원소 24를 인큐하고 19를 디큐하는 작업이다. 인큐는 맨 뒤의 인덱스에 추가하면 그만이기 때문에 복잡도는 O(1)으로 적은 cost로 구현 가능하다. 하지만 디큐는 맨 앞의 원소를 꺼낸 후 모든 원소..
-
검색 알고리즘 - 선형검색, 이진검색, 해시법computer science/algorithm 2024. 12. 4. 22:04
검색의 종류로는 배열 검색, 연결 리스트 검색, 이진 검색 트리 알고리즘이 있다.배열 검색의 종류로는 선형 검색 : 무작위로 늘어놓은 데이터 집합에서 검색을 수행한다.이진 검색 : 일정한 규칙으로 늘어놓은 데이터 집합에서 빠른 검색을 수행한다.해시법 : 추가-삭제가 자주 일어나는 데이터 집합에서 빠른 검색을 수행한다. 체인법 : 같은 해시값 데이터를 연결 리스트로 연결하는 방법이다.오픈 주소법 : 데이터를 위한 해시값이 충돌할 때 재해시하는 방법이다.선형 검색 linear search가장 기본적인 배열 검색 방법이다. 선형으로 늘어선 배열에서 원하는 Key값을 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘이다.즉, 선형 검색에서 배열 스캔의 종료 조건은 2가지다.1. 검색할 값을 찾지 못하..