학습(공부)하는 블로그 :: 학습(공부)하는 블로그
 

 
반응형
블로그 이미지
학습하고 공부한 것을 보고 싶을때 다시 볼려고 요약해서 정리한 블로그입니다. 세상 돌아가는 이야기도 같이 나누고 공유합니다. 세상 살아가면서 알면 도움이 되는 것들을 서로 공유하고 삽시다. 깨비형
« 2026/5 »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

Archive»


Category»

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

05-10 10:21

반응형

글로벌 AI Daily 브리핑

2026년 5월 10일 일요일 | 실시간 멀티모달 혁신과 거대 인프라의 결합

📌 오늘 이것만은 꼭! (최신 24시간 내 핵심)

OpenAI의 정밀도 혁명: 환각 현상을 52.5% 줄인 'GPT-5.5 Instant'가 ChatGPT의 기본 모델로 공식 업데이트되었습니다. 엔비디아의 5GW 베팅: 엔비디아가 IREN과 파트너십을 맺고 글로벌 전역에 5기가와트(GW) 규모의 AI 팩토리 구축을 가속화합니다. Google I/O 2026 카운트다운: 오는 5월 19일 개최될 Google I/O에서 자율적 행동이 가능한 'Gemini 3'와 안드로이드 17의 AI 통합이 예고되었습니다. 글로벌 AI 확산: 한국의 생성형 AI 채택률이 지난 분기 대비 6.4%p 상승하며 글로벌에서 가장 가파른 성장세를 기록했습니다.

🚀 실시간 뉴스 상세보기

1. OpenAI, GPT-5.5 Instant 공개... ChatGPT 기본 모델 업데이트

OpenAI가 정밀도와 속도를 대폭 개선한 GPT-5.5 Instant를 출시했습니다. 이전 모델 대비 환각 수치를 절반 이상 낮췄으며, 특히 법률 및 금융 데이터 처리 능력이 강화되었습니다. 또한, 메모리 소스 기능을 도입하여 사용자 개인화 컨트롤을 강화했습니다.

2. 엔비디아, IREN과 5GW 규모 AI 인프라 구축 파트너십 체결

엔비디아가 데이터센터 인프라 기업 IREN과 전략적 파트너십을 맺었습니다. 양사는 텍사스 스위트워터(Sweetwater) 캠퍼스를 기점으로 총 5기가와트 규모의 AI 팩토리를 구축할 예정이며, 엔비디아는 이 프로젝트에 최대 21억 달러를 투자할 권리를 확보했습니다.

3. Google I/O 2026 예고: 에이전트형 AI 'Gemini 3' 공개 임박

구글의 연례 개발자 컨퍼런스가 5월 19일로 확정되었습니다. 이번 행사에서는 프롬프트 없이도 스스로 업무를 수행하는 'Gemini 3'가 공개될 것으로 보이며, 안드로이드 17과 새로운 스마트 글래스와의 결합이 핵심이 될 전망입니다.

4. 한국, 전 세계 AI 채택률 증가 1위... 'AI 확산의 전초기지'

마이크로소프트 산하 연구소의 리포트에 따르면 한국의 생성형 AI 채택률은 지난 분기 대비 6.4%p 상승하며 37.1%를 기록했습니다. 이는 조사 대상 147개국 중 가장 높은 증가폭이며, 전 세계 평균인 17.8%를 크게 상회하는 수치입니다.

🏷️ 핵심 키워드

#GPT5.5_Instant #엔비디아_5GW #Gemini3 #한국_AI채택률 #GoogleIO2026

 

 

반응형
:

9. 이진 탐색 트리

학과 수업 노트/자료구조 | 2026. 5. 9. 10:30 | Posted by 깨비형
반응형

 

  • TL;DR
  • 이진 탐색 트리(BST)는 왼쪽 < 루트 < 오른쪽 규칙을 따르는 이진 트리 기반의 탐색 자료구조
  • 주요 연산은 탐색 / 삽입 / 삭제 / 개수 4가지이며, 삭제 연산이 가장 복잡함
  • 순회 방법은 전위(루트→왼→오) / 중위(왼→루트→오) / 후위(왼→오→루트) 3가지
  • 중위 순회를 하면 정렬된 순서(오름차순)로 데이터를 방문할 수 있음
  • 탐색·삽입·삭제 평균 O(log n), 편향 트리(최악)에서는 O(n)으로 저하
  • 실제 응용: 단어장 프로그램, 폴더 용량 계산 등

 

 

 

01  이진 탐색 트리(BST)란?

 

탐색(Search)은 일상에서도 매우 중요한 작업입니다. 사전에서 단어를 찾거나, 쇼핑몰에서 상품을 검색하는 것도 모두 탐색이죠. 컴퓨터에서 이 탐색 작업을 효율적으로 처리하기 위해 고안된 자료구조가 바로 이진 탐색 트리(BST, Binary Search Tree)입니다.

 

📖 이진 탐색 트리(BST) 정의
레코드의 집합에서 특정 레코드를 찾아내는 탐색에 특화된 이진 트리 기반의 자료구조.
배열과 선형 리스트의 단점을 보완하기 위해 연결리스트로 구성된 이진 트리를 사용하며, 원소의 삽입·삭제가 용이하다.

 

📌 탐색 관련 핵심 용어

 

용어 설명
레코드 자료를 체계적으로 관리하기 위해 구성한 일정한 단위
예) 학생 정보 1명분 (이름, 학번, 학과 등)
필드 레코드를 구성하는 하위 항목
예) 이름, 학번, 학과 각각이 필드
키(Key) 레코드를 구별하기 위한 고유한 값을 가진 필드
예) 학번처럼 중복이 없는 고유 식별자
파일 여러 레코드가 모여서 구성된 집합
예) 학생 전체 명부

 

📌 BST의 4가지 핵심 성질

 

번호 성질
모든 노드는 유일한 키를 가짐 (중복 없음)
왼쪽 서브 트리의 키들은 루트의 키보다 작음
오른쪽 서브 트리의 키들은 루트의 키보다
왼쪽·오른쪽 서브 트리도 각각 이진 탐색 트리임 (재귀적 구조)

 

✓ 예시로 이해하기
루트가 18인 트리가 있다면:
· 왼쪽 서브 트리 = 18보다 작은 값들 (예: 7, 12, 15)
· 오른쪽 서브 트리 = 18보다 큰 값들 (예: 26, 22, 30)
이 규칙이 트리 전체에 재귀적으로 적용됩니다.

 

⚠️ BST의 한계
데이터 원소가 정렬되어 있어야 하며, 빈번한 삽입·삭제가 필요한 경우에는 부적합합니다.
삽입·삭제가 잦으면 트리가 한쪽으로 치우쳐 성능이 O(n)까지 저하될 수 있습니다.

 

 

 

02  BST의 4가지 연산

 

탐색 연산
Search
삽입 연산
Insert
삭제 연산
Delete
개수 연산
Count

 

🔍 탐색 연산 (Search)

 

탐색은 항상 루트 노드에서 시작하며, 찾는 키(key)값과 현재 노드의 키를 비교해가며 내려갑니다.

 

C 코드 — 노드 구조체 정의

#include <stdio.h>
#include <stdlib.h>

// BST 노드 구조체
typedef struct TreeNode {
    int key;                    // 키(데이터)
    struct TreeNode *left;    // 왼쪽 자식 포인터
    struct TreeNode *right;   // 오른쪽 자식 포인터
} TreeNode;

 

C 코드 — 재귀적 탐색 함수

TreeNode* search(TreeNode *root, int key) {
    if (root == NULL) return NULL;  // 탐색 실패

    if (key == root->key)        // 탐색 성공
        return root;
    else if (key < root->key)   // 왼쪽 서브 트리로 재귀 탐색
        return search(root->left, key);
    else                         // 오른쪽 서브 트리로 재귀 탐색
        return search(root->right, key);
}

 

📖 코드 포인트
· root == NULL : 찾는 키가 없는 경우(탐색 실패). 삽입 시에는 이 위치가 새 노드 자리가 됨
· 재귀 호출 : BST의 구조적 특성(서브 트리도 BST)을 활용해 같은 함수를 반복 적용
· 반환값 : 찾은 노드의 포인터를 반환. 없으면 NULL 반환

 

상황 동작
key == 루트의 키값 탐색 성공! 해당 노드가 찾는 노드
key < 루트의 키값 왼쪽 서브 트리로 이동하여 탐색 재시작
key > 루트의 키값 오른쪽 서브 트리로 이동하여 탐색 재시작
탐색 중 NULL(빈 노드) 도달 탐색 실패 — 해당 키는 트리에 없음

 

⏱️ BST 시간 복잡도 성능 비교

 

연산 평균 (균형 트리) 최악 (편향 트리) 최악이 되는 조건
탐색 O(log n) O(n) 데이터가 오름/내림차순으로 삽입되어 트리가 한쪽으로 쏠릴 때
삽입 O(log n) O(n) 편향 트리에서 삽입 위치를 찾기 위해 전체 노드를 순회해야 할 때
삭제 O(log n) O(n) 편향 트리에서 후계자 탐색까지 전체 노드를 거쳐야 할 때

 

❌ 편향 트리(Skewed Tree)란?
예를 들어 1, 2, 3, 4, 5를 순서대로 삽입하면 모든 노드가 오른쪽으로만 연결됩니다.
이렇게 되면 트리가 사실상 연결 리스트와 동일해져서 BST의 장점인 O(log n) 성능을 전혀 살릴 수 없습니다.

이를 해결하기 위해 AVL 트리, 레드-블랙 트리 같은 자가 균형 BST가 고안되었습니다.

 

 

➕ 삽입 연산 (Insert)

 

✓ 삽입 연산의 핵심 원칙
BST에서는 같은 키 값을 갖는 노드가 없어야 합니다.
탐색에 실패한 위치 = 새로운 노드를 삽입할 위치
따라서 삽입 전에 반드시 탐색을 먼저 수행해야 합니다.

 

① 탐색 수행
삽입할 키로 탐색 시작
② 실패 위치 확인
탐색이 실패한 NULL 위치 확인
③ 노드 삽입
해당 위치에 새 노드 추가

 

슈도코드 (Pseudocode) — 삽입 연산 전체 흐름

insert (root, n)

if KEY(n) = KEY(root)                  // 중복 키 — 삽입 불가
    then return;

else if KEY(n) < KEY(root)          // 삽입 키가 더 작으면 왼쪽
    if LEFT(root) = NULL
        then LEFT(root) ← n;           // 왼쪽이 비었으면 바로 삽입
        else insert(LEFT(root), n);   // 아니면 왼쪽 서브트리로 재귀

else                                    // 삽입 키가 더 크면 오른쪽
    if RIGHT(root) = NULL
        then RIGHT(root) ← n;        // 오른쪽이 비었으면 바로 삽입
        else insert(RIGHT(root), n); // 아니면 오른쪽 서브트리로 재귀

 

C 코드 — 재귀적 삽입 함수

TreeNode* insert(TreeNode *root, int key) {
    if (root == NULL) {                       // 빈 자리 발견 → 새 노드 생성
        TreeNode *n = (TreeNode*)malloc(sizeof(TreeNode));
        n->key = key;
        n->left = n->right = NULL;
        return n;
    }
    if (key == root->key)                    // 중복 키 → 그냥 반환
        return root;
    else if (key < root->key)               // 왼쪽 서브트리로 재귀
        root->left = insert(root->left, key);
    else                                      // 오른쪽 서브트리로 재귀
        root->right = insert(root->right, key);
    return root;
}

 

📖 코드 포인트
· root == NULL 도달 : 탐색 실패 위치 = 새 노드를 삽입할 자리
· 중복 키 처리 : KEY(n) = KEY(root)이면 아무 작업 없이 바로 return (BST는 중복 불허)
· 재귀 호출 : 삽입할 키와 현재 노드를 비교해 왼쪽/오른쪽으로 내려가며 빈 자리를 탐색

 

 

🗑️ 삭제 연산 (Delete) — 가장 복잡한 연산

 

노드 삭제는 BST에서 가장 복잡한 연산입니다. 삭제 후에도 BST의 성질(왼쪽 < 루트 < 오른쪽)을 반드시 유지해야 하기 때문입니다. 삭제할 노드의 자식 수에 따라 처리 방법이 달라집니다.

경우 처리 방법
Case 1
단말 노드(자식 없음) 삭제
가장 단순한 경우. 노드를 그냥 삭제하면 됨.
단, 부모 노드의 링크 필드(자식을 가리키는 포인터)를 NULL로 변경해야 함.
Case 2
자식이 하나인 노드 삭제
삭제할 노드를 제거하고, 유일한 자식을 부모 노드에 직접 연결.
삭제 노드가 부모의 왼쪽/오른쪽 자식인지, 자식이 왼쪽/오른쪽인지 모두 고려해야 함.
Case 3
자식이 둘인 노드 삭제
중위 후속자(Inorder Successor)를 찾아서 삭제 위치에 복사한 뒤, 후계자 노드를 삭제.
후계자 = 오른쪽 서브 트리의 최솟값 (또는 왼쪽 서브 트리의 최댓값)

 

📖 중위 후속자(Inorder Successor)란?
중위 순회(왼→루트→오) 기준으로 삭제 노드 바로 다음에 방문될 노드를 의미합니다.
이 값은 삭제 노드보다 크면서 가장 작은 값이므로, 그 자리에 들어와도 BST 성질이 유지됩니다.

· 중위 후속자 위치 : 오른쪽 서브 트리에서 가장 왼쪽(= 가장 작은) 노드
· 중위 전임자(Inorder Predecessor) : 왼쪽 서브 트리에서 가장 오른쪽(= 가장 큰) 노드

예) 노드 18 삭제 시
· 중위 후속자 = 오른쪽 서브 트리의 최솟값 → 22
· 중위 전임자 = 왼쪽 서브 트리의 최댓값 → 12
→ 22 또는 12 중 하나를 18 위치에 복사한 뒤, 원래 22(또는 12)를 삭제

 

 

🔢 개수 연산 (Count)

 

🔢 개수 연산 방법
전체 노드 수 = 왼쪽 서브 트리 노드 수 + 오른쪽 서브 트리 노드 수 + 1(루트)

모든 노드를 순회하면서 count 변수를 증가시키는 방식으로도 구현 가능.
이진 트리의 전체 노드 개수를 세기 위해서는 모든 노드의 순회가 필요합니다.

 

슈도코드 (Pseudocode) — 개수 연산

count_node(x)

if x = NULL                               // 빈 노드 → 0 반환
    then return 0;
    else return 1 + count_node(x.left)  // 루트 1 + 왼쪽 + 오른쪽
                    + count_node(x.right);

 

C 코드 — 재귀적 노드 개수 계산 함수

int count_node(TreeNode *x) {
    if (x == NULL)                                // 빈 노드 → 0 반환
        return 0;
    else
        return 1 + count_node(x->left)  // 현재 노드(1) + 왼쪽 서브트리
                 + count_node(x->right); // + 오른쪽 서브트리
}

 

📖 코드 포인트
· x == NULL : 트리가 없거나 리프 노드의 자식에 도달한 경우 — 0을 반환해 합산을 종료
· return 1 + ... : 현재 노드 자신(1) + 왼쪽 서브트리 개수 + 오른쪽 서브트리 개수
· 재귀 구조 : 모든 노드를 빠짐없이 방문하는 후위 순회와 동일한 흐름으로 동작

 

 

 

03  BST의 3가지 순회 방법

 

순회(Traversal)란 트리에 속하는 모든 노드를 중복 없이 한 번씩 방문하여 데이터를 처리하는 작업입니다. 선형 자료구조(배열, 리스트 등)는 순회 방법이 하나뿐이지만, 트리는 비선형 자료구조이므로 루트와 좌·우 서브 트리를 어떤 순서로 방문하느냐에 따라 3가지 방법으로 나뉩니다.

 

순회 종류 방문 순서 특징
전위 순회
(Preorder)
루트 → 왼쪽 → 오른쪽 루트를 가장 먼저 방문.
트리 복사 등에 활용
중위 순회
(Inorder)
왼쪽 → 루트 → 오른쪽 정렬된 순서(오름차순)로 방문.
BST에서 가장 유용한 순회
후위 순회
(Postorder)
왼쪽 → 오른쪽 → 루트 루트를 가장 마지막 방문.
폴더 용량 계산 등에 활용

 

✓ 중위 순회가 정렬 순서인 이유
BST의 성질상 왼쪽 < 루트 < 오른쪽이므로,
왼쪽 서브 트리를 모두 방문 → 루트 → 오른쪽 서브 트리 순으로 가면
자연스럽게 작은 값부터 큰 값 순서(사전식/오름차순)로 방문하게 됩니다.

 

📖 이진 트리 순회의 재귀적 특성
이진 트리는 전체 트리와 서브 트리의 구조가 동일합니다.
따라서 전체 트리 순회에 사용한 알고리즘을 서브 트리에도 그대로 적용할 수 있습니다. (재귀 구조)

 

 

 

04  실제 응용 사례

 

📚 응용 1 — 나의 단어장

이진 탐색 트리로 단어장 프로그램 구현 가능.
각 노드의 레코드 = "단어" + "의미" 두 필드로 구성.

· 입력(i) : 단어·의미 입력하여 노드 추가
· 삭제(d) : 단어 입력으로 해당 노드 제거
· 단어 탐색(w) : 단어 → 의미 출력
· 의미 탐색(m) : 의미 → 단어 출력
· 사전 출력(p) : 중위 순회로 알파벳 순 출력
· 종료(q) : 프로그램 종료
  💾 응용 2 — 폴더 용량 계산

이진 탐색 트리 순회를 폴더 용량 계산에 응용.
단, 이진 트리이므로 하나의 폴더 안에 하위 폴더는 최대 2개까지만 가능.

· 서브 폴더의 용량을 모두 계산한 후 루트 폴더 계산
· 후위 순회 방식 사용
(자식 → 자식 → 부모 순으로 계산)
· 하위 폴더 용량을 먼저 계산해 반환하는 구조

 

✓ 폴더 용량 계산에 후위 순회를 쓰는 이유
부모 폴더의 용량을 알려면 자식 폴더의 용량을 먼저 알아야 합니다.
후위 순회(왼→오→루트)는 자식을 먼저 처리하고 부모를 마지막에 처리하는 구조이므로,
하위 폴더 용량을 합산하여 상위 폴더로 반환하는 계산에 딱 맞습니다.

 

 

📌 핵심 정리

· BST 정의 : 왼쪽 서브 트리 키 < 루트 키 < 오른쪽 서브 트리 키를 만족하는 이진 트리
· 시간 복잡도 : 평균 O(log n) / 편향 트리(최악) O(n) — 균형 유지가 핵심
· 탐색 연산 : 루트에서 시작, 키 비교로 좌/우 이동, 재귀 구조로 구현
· 삽입 연산 : 탐색 실패 위치가 삽입 위치, 반드시 탐색 먼저 수행
· 삭제 연산 : 단말 노드 / 자식 1개 / 자식 2개 세 경우 구분 처리
· 중위 후속자 : 오른쪽 서브 트리의 최솟값 — Case 3 삭제 시 후계자로 사용
· 전위 순회 : 루트 → 왼쪽 → 오른쪽
· 중위 순회 : 왼쪽 → 루트 → 오른쪽 (결과: 오름차순 정렬)
· 후위 순회 : 왼쪽 → 오른쪽 → 루트 (폴더 용량 계산에 활용)

 

 

태그 : 이진탐색트리란BST 자료구조이진트리 순회 종류전위순회 중위순회 후위순회 차이BST 삭제 연산이진탐색트리 탐색방법C언어 자료구조중위순회 정렬순서후계자 노드란BST 응용 사례

반응형

'학과 수업 노트 > 자료구조' 카테고리의 다른 글

8. 트리  (0) 2026.05.03
7. 리스트와 순환  (0) 2026.04.18
6. 연결리스트(Linked List)  (0) 2026.04.10
5. 포인터와 연결리스트  (1) 2026.04.05
4. 큐(Queue)와 덱(Deque)  (0) 2026.03.28
:
반응형

글로벌 AI Daily 브리핑

2026년 5월 9일 토요일 | AI 인프라 확산과 물리적 AI의 결합

📌 오늘 이것만은 꼭! (최신 24시간 내 핵심)

OpenAI의 정밀도 혁명: 환각 현상을 획기적으로 줄인 GPT-5.5 Instant가 ChatGPT의 기본 모델로 공식 탑재되었습니다. 물리적 AI의 가속: 삼성과 메타가 AI의 '몸체'를 차지하기 위해 휴머노이드 로봇 시장 진출을 공식화하며 하드웨어 경쟁이 격화되고 있습니다. 엔비디아의 공급망 선점: 엔비디아가 코닝(Corning)과 파트너십을 맺고 미국 내 광통신 생산량을 10배 늘려 AI 팩토리 인프라 독주 체제를 굳힙니다. 글로벌 AI 확산: 마이크로소프트의 보고서에 따르면 전 세계 생성형 AI 사용 인구가 17.8%를 돌파했으며, 특히 아시아권의 채택 속도가 가장 가파릅니다.

🚀 실시간 뉴스 상세보기

1. OpenAI, 'GPT-5.5 Instant' 정식 출시... ChatGPT 기본 모델 교체

OpenAI가 법률, 의료, 금융 등 정밀도가 요구되는 분야에서 환각을 최소화하도록 설계된 GPT-5.5 Instant를 공개했습니다. 기존 GPT-5.3을 대체하며 에이전트 성능이 대폭 강화되었습니다.

2. 삼성전자·메타, 휴머노이드 로봇 사업 전면화... "AI의 몸을 선점하라"

삼성전자가 하반기 제조 현장용 휴머노이드 출시를 예고한 가운데, 메타 또한 로봇틱스 연구를 가속화하고 있습니다. 이는 AI 소프트웨어가 물리적 세계로 확장되는 'Physical AI' 시대의 본격적인 서막입니다.

3. 엔비디아, 코닝과 파트너십... AI 인프라용 광통신 인프라 10배 확대

엔비디아는 AI 데이터센터의 병목 현상을 해결하기 위해 광섬유 전문 기업 코닝과 손을 잡았습니다. 이를 통해 미국 내 광학 연결 부품 생산량을 획기적으로 늘려 대규모 AI 팩토리 구축 속도를 높일 계획입니다.

4. MS 보고서: "한국·일본 등 아시아 국가 AI 채택률 급등"

2026년 1분기 글로벌 AI 확산 리포트에 따르면, 다국어 처리 능력이 개선되면서 한국과 일본 등 아시아 국가의 AI 사용량이 사상 최대치를 기록했습니다. 전 세계 생산 현장에서 AI 코딩 비중은 전년 대비 78% 증가했습니다.

🏷️ 핵심 키워드

#GPT5.5_Instant #휴머노이드_삼성 #엔비디아_코닝 #AI_Diffusion #실시간AI뉴스
반응형
:
반응형

1. BTS 때문? 여행수지, 11년여 만에 흑자 → 3월 2000억원(1억 4000만달러) 흑자. 이는 중국 관광객이 급증한 2014년 11월(5300만달러) 후 처음. BTS 공연 등으로 3월 입국자가 처음으로 200만 돌파. 고환율에도 내국인의 해외 여행이 줄고 있지 않아 흑자 추세 이어질지는 미지수.(매경)

 

 

2. 우리나라 국민의 40%는 점·사주·관상을 믿는다 → 한국갤럽이 ‘관악산 열풍’ 초창기인 지난 3월 조사한 수치. 2009년보다 9%포인트나 올랐다. 한국리서치의 지난해 11월 조사때도 비슷한 수치. 특히 2030(42%)이 점·사주에 의지하는 정도가 60대, 70대 이상보다 높았다.(중앙선데이)▼

 

 

 

3. AI 여론 조사, 실제에 근접했다 → 유권자 2139명의 연령·지역·학력·소득·직업, 이념 성향, 지지 정당 등의 정보를 입력한 뒤 이들이 지난 대선에서 실제 투표한 결과와 AI 추측을 비교했더니 큰 차이 없어. 실제(AI추측) : 이재명 57.3%(55.4%), 김문수 33.7%(31.7%), 이준석 6.5%(5.4%),..(중앙선데이)▼

 

4. 주식 ‘오른다’ 빚투 36조원 vs ‘내린다’ 공매도 28조원... 사상최대 대결 → 추가 상승을 기대하고 강세장에 올라타려는 '빚투' 자금과 고점 부담에 대비해 하락에 베팅하는 공매도 자금이 역대급으로 쌓이면서 ‘상승’과 ‘하락’ 베팅이 맞서는 모습.(매경)▼

 

 

 

5. 미 대법원, 트럼프 관세는 ‘모두 위법’ → 지난 2월 트럼프 행정부의 ‘상호관세’를 위법으로 판결한 데 이어 그 후속 조치로 무역법 122조를 근거로 부과한 ‘글로벌 관세(10%)’도 위법판결(7일, 현지 시간) 다만 소송을 제기한 미 수입업체 2곳으로 판결 효과를 한정해 세계 각국에 당장 직접적인 영향을 주진 못할 거라는 관측...(동아)

 

 

6. 기후 변화... 봄 수박 정착 → 10년 전만해도 봄 수박은 온풍기 연료비 등으로 마진이 없는 농사였다. 그러나 지금은 다르다. 봄 수박은 완만한 기온 상승 속에서 약 100일 동안 천천히 자라기 때문에 여름 수박(30~40일)보다 조직이 치밀하고 더 달다.(동아)

 

7. 한자는 모두 몇자 일까? → 2천년 전 나온 최초의 본격 사전인 '설문해자'에는 9353자가 실려있다. 흔히 말하는 ‘옥편’은 일반명사가 아니라 남북조 시대에 나온 사전 이름이다. 옥편 원본에는 1만6 917자가 담겼는데 현존하지 않고, 송나라 때 만든 증보판에는 2만 261자가 실렸다. 현대 사전엔 5만자 정도가 실린다. 실존하는 총 자수는 10만자가 될 것으로 보이는데 정확히는 모른다...(매경)

 

8. 이팝나무 → 늦은 봄 흰 꽃을 만발하는 큰 나무다. 최근에 도심 속 가로수로 많이 이용되고 있다. 풍성한 흰색의 작은 꽃들이 ‘이팝’(쌀밥)을 닮았다고 이름이 이팝나무다.(중앙선데이)▼

전주시 팔복동 산업단지 내 이팝나무 거리

 

9. 캘리포니아 ‘억만장자세’ 실현될까? → 부유층은 이미 탈출 시작. 미국 서비스노조 서부의료지부가 제안한 이 세금은 순자산 10억 달러(약 1조 4700억원) 이상 부자를 대상으로 자산의 5%를 일회성 세금으로 징수하는 내용이다. 현재 주민투표 성립 요건(87만)의 거의 두배를 넘어섰다. 오는 11월 3일 중간선거와 함께 주민투표가 치러진다.(국민)

 

 

10. 남용되는 '의' → 일상 언어에서는 ‘내 책’이라고 하지만 문자 언어에서는 흔히 ‘나의 책’이라고 한다. ‘나의 꿈’, ‘나의 계획’, ‘나의 판단’... 예는 많다. ‘만남 광장’으로 해도 될 것을 ‘만남의 광장’이 되어 있다.(연합뉴스 이런말 저런글)

 

이상입니다

 

 

반응형
:
반응형

 

  • JK 플립플롭 : SR FF의 S=R=1 불안정 문제를 해결. J=K=1이면 출력이 toggle(반전)
  • 특성방정식 (JK) : Q(t+1) = J·Q(t) + K·Q(t)
  • T 플립플롭 : JK의 J·K를 하나로 묶은 것. T=0이면 불변, T=1이면 toggle
  • 특성방정식 (T) : Q(t+1) = T·Q(t) + T·Q(t) → 출력 주파수 = 입력의 1/2 (분주회로)
  • 비동기 입력 : PR(Preset, Q→1) · CLR(Clear, Q→0) — active low, 클록 무관
  • 동작 특성 : 전파지연시간 / 설정 시간(Set-up) / 보류 시간(Hold) / 펄스 폭 / 최대 클록 주파수
  • 멀티바이브레이터 3종 : 무안정(발진기) / 단안정(one-shot) / 쌍안정(플립플롭)

 

 

01 JK 플립플롭 — SR의 한계를 넘어서

 

📖 왜 JK 플립플롭이 필요한가?
SR 플립플롭은 S=1, R=1 입력이 동시에 들어올 때 출력이 불안정(undefined)해지는 치명적 단점이 있다. JK 플립플롭은 이 금지 입력 조합을 toggle(반전) 동작으로 정의해 문제를 완전히 해결했다. 플립플롭 중 가장 널리 사용되는 이유가 여기에 있다.

 

🔁 JK 플립플롭 입출력 대응 관계

 

JK 플립플롭의 J는 SR의 S(set)에, K는 R(reset)에 각각 대응한다. 클록펄스(CP=1)가 인가되었을 때의 동작은 다음과 같다.

 

J K Q(t+1) 동작 설명
0 0 Q(t) — 불변 이전 상태 유지 (Hold)
0 1 0 — Reset 출력 강제로 0 (Reset)
1 0 1 — Set 출력 강제로 1 (Set)
1 1 Q(t) — Toggle 이전 출력의 보수로 반전 ← SR과 다른 핵심!

 

✓ 특성 방정식 (Characteristic Equation)

Q(t+1) = J · Q(t) + K · Q(t)

· J=1, K=0 → Q(t+1) = 1·Q(t) + 1·Q(t) = Q(t) + Q(t) = 1
· J=0, K=1 → Q(t+1) = 0 + 0 = 0
· J=K=1 → Q(t+1) = Q(t) + 0 = Q(t) (toggle)

 

 

⚡ 클록형 vs 에지 트리거 JK 플립플롭

클록형 (Level-triggered)

· CP가 High(1)인 동안 J, K 입력을 계속 감지
· 클록이 High인 전체 구간에서 출력 변화 가능
· 레이스(race) 문제 발생 위험
→ 클록이 1인 동안 toggle이 계속 반복될 수 있음
  에지 트리거 (Edge-triggered)

· 상승에지(↑) 또는 하강에지(↓) 순간에만 동작
· 논리기호에서 CP 입력에 '▷' 표시로 구분
· 레이스 문제 없이 안정적 동작
→ 74112: Dual 하강에지 트리거 JK FF

 

✓ 74112 IC — 비동기 입력 동작
PRCLRactive low 신호 (0일 때 동작).
· PR = 0 → J, K, CP 상태에 관계없이 Q = 1 (강제 Set)
· CLR = 0 → J, K, CP 상태에 관계없이 Q = 0 (강제 Reset)
· PR = CLR = 1 → 정상 클록 동작

 

 

02 T 플립플롭 — Toggle 전용 설계

 

📖 T 플립플롭 개념
JK 플립플롭의 J 입력과 K 입력을 하나로 묶어 단일 입력 T로 구동하는 플립플롭. JK FF에서 J=K=0 (불변) 또는 J=K=1 (toggle) 두 경우만 사용하도록 특화한 회로다.

· T = 0 → JK FF의 J=0, K=0과 동일 → 출력 불변(Hold)
· T = 1 → JK FF의 J=1, K=1과 동일 → 출력 toggle(반전)

 

 

📊 T 플립플롭 진리표 · 특성표 · 방정식

 

<진리표> — CP=1일 때

CP T Q(t+1)
1 0 Q(t) 불변
1 1 Q(t) Toggle

 

<특성표> — 현재 상태 Q(t)와 입력 T에 따른 다음 상태

Q(t) T Q(t+1)
0 0 0
0 1 1
1 0 1
1 1 0

 

✓ 특성 방정식 (Characteristic Equation)

Q(t+1) = T · Q(t) + T · Q(t)

· T=0 → Q(t+1) = 0 + Q(t) = Q(t) (불변)
· T=1 → Q(t+1) = Q(t) + 0 = Q(t) (반전)

📉 T 플립플롭의 분주(分周) 특성

 

⚠️ 시험 함정 — 출력 주파수
T 플립플롭(T=1 고정)에서 출력 주파수 = 입력 클록 주파수 × 1/2.
"출력 주파수 = 입력 주파수와 동일하다"는 표현은 틀린 설명이다.
클록이 들어올 때마다 출력이 반전되므로, 클록 2주기에 출력 1주기가 완성된다.

· T FF 2개를 직렬 연결 → 클록을 1/4로 분주 (4분주 회로)
· 이 원리로 계수(Counter) 회로의 핵심 소자로 사용

 

🔧 T 플립플롭 구성 방법

 

D 플립플롭으로 구성

· D 입력에 Q(이전 출력의 보수)를 연결
· CP 입력에 Toggle 신호 T를 연결
· 클록이 들어올 때마다 D=Q가 입력 → 자동 반전
  JK 플립플롭으로 구성

· J와 K 입력을 +5V(논리 1)로 고정 연결
· CP(클록) 입력에 T 신호를 인가
· J=K=1 상태에서 클록마다 toggle 동작

 

 

 

03 비동기 입력 — PR · CLR

 

📖 비동기 입력(Asynchronous Input)이란?
대부분의 플립플롭은 클록펄스(CP)에 의해 상태가 바뀌는 동기 입력이 있고, 클록과 무관하게 즉시 출력을 바꿀 수 있는 비동기 입력도 함께 갖추고 있다.

· PR (Preset, active low) : 0을 인가하면 즉시 Q = 1
· CLR (Clear, active low) : 0을 인가하면 즉시 Q = 0
· 주요 용도 : 회로 동작 전 초기값 설정, 시스템 리셋

PR CLR CP J K Q 설명
0 1 × × × 1 Preset 동작 — 즉시 Q=1 (클록 무관)
1 0 × × × 0 Clear 동작 — 즉시 Q=0 (클록 무관)
1 1 J K 정상 클록 에지에 따른 정상 JK 동작

 

04 플립플롭 동작 특성 파라미터

 

플립플롭이 실제 회로에서 올바르게 동작하려면 입력 신호의 타이밍이 정확해야 한다. 아래 파라미터들은 데이터시트에서 반드시 확인해야 하는 필수 수치들이다.

 

파라미터 기호 정의 및 설명
전파지연시간
(Propagation Delay)
tPLH, tPHL 입력 신호 인가 후 출력에 변화가 발생하기까지의 시간 간격
tPLH: Low→High 지연 / tPHL: High→Low 지연 / 기준점 50%
설정 시간
(Set-up Time)
tS CP 유효 에지(상승/하강) 도달 에 입력(J, K, D 등)이 안정된 값을 유지해야 하는 최소 시간
이 시간 이전에 입력이 바뀌면 FF가 오동작할 수 있음
보류 시간
(Hold Time)
tH CP 유효 에지 도달 에도 입력값이 변해서는 안 되는 최소 시간
에지 직후 입력이 바뀌면 래치업(latch-up) 등 오동작 발생
펄스 폭
(Pulse Width)
tW 클록 또는 preset/clear 입력 펄스가 정확하게 인식되기 위해 유지되어야 하는 최소 시간 폭
최대 클록 주파수
(Max. Clock Frequency)
fmax 플립플롭이 안전하게 동작할 수 있는 최대 클록 주파수. 항상 fmax 이하에서 동작시켜야 함
주기 = 1/fmax = tW(H) + tW(L)
전력 소모
(Power Dissipation)
P P = VCC × ICC
DC 공급전압 × 평균 공급전류

 

⚠️ 설정 시간 · 보류 시간 위반 시 발생하는 일
두 조건 중 하나라도 위반되면 플립플롭 출력이 0도 1도 아닌 메타스테이블(metastable) 상태에 빠질 수 있다. 이 상태는 예측 불가능한 출력을 만들어 디지털 시스템 전체를 오동작시키기 때문에 실제 설계에서 반드시 준수해야 한다.

 

 

 

05 멀티바이브레이터 3종

 

📖 멀티바이브레이터(Multivibrator)란?
기본적으로 두 개의 인버터가 서로의 출력을 입력으로 받아 피드백(feedback)을 구성하는 회로. 한쪽 출력이 0이면 반드시 다른 쪽은 1이 되어 동시에 같은 상태에 있을 수 없다. 디지털 시스템에서 2진수 저장, 펄스 계수, 연산 동기화 등 핵심 기능을 수행한다.

 

📋 멀티바이브레이터 3종 비교

종류 안정 상태 수 외부 트리거 특징 및 용도
무안정
(Astable)
구형파 발진기
0개
(불안정 2개)
불필요
(자력 발진)
외부 입력 없이 High·Low 두 불안정 상태 사이를 자동 반복. 주기적 구형파 발생 → 클록 생성, 타이머 555, 수정발진기에 활용
단안정
(Monostable)
one-shot
1개
(+준안정 1개)
필요
(트리거 신호)
트리거 신호 입력 시 일정 폭의 구형 펄스 1개를 출력하고 안정 상태로 복귀. 펄스 폭 연장·정형(74121, 555) 등에 활용
쌍안정
(Bistable)
= 플립플롭
2개 필요
(클록·J·K 등)
0과 1의 두 안정 상태를 가짐. 플립플롭과 동일. 데이터 기억·래치 등에 사용

 

❌ 용어 주의 — '준안정'과 '불안정'을 혼동하지 말 것
· 무안정(Astable) : 안정 상태가 0개. 두 불안정(unstable) 상태를 자동으로 오가는 발진 동작
· 단안정(Monostable) : 안정 상태 1개 + 준안정(quasi-stable) 상태 1개. 트리거가 오면 준안정 상태로 갔다가 일정 시간 후 자동으로 안정 상태로 복귀

따라서 "외부 트리거 없이 준안정 상태에서 다른 준안정 상태로 변화를 되풀이하는 것"은 정확한 표현이 아니며, 올바른 답은 '무안정(비안정) 멀티바이브레이터'이고 두 불안정 상태를 오간다고 이해하는 것이 정확하다.

 

🔔 무안정 멀티바이브레이터 구현 방법

 

① NOT 게이트 RC 회로

NOT 게이트 3개 + RC 소자
발진 주파수: f = 0.455 / RC
② 슈미트 트리거 (7414)

히스테리시스 특성으로 잡음에 강한 구형파 생성
74LS14 IC 활용
③ 타이머 555 / 수정발진기

555: R·C로 주파수 조정
수정발진기: 정밀 주파수(PPM급)

 

 

 

📌 핵심 정리

· JK 플립플롭 : J=K=1 → toggle, 특성방정식 Q(t+1) = J·Q(t) + K·Q(t), 가장 범용적
· 에지 트리거 : 상승(↑) 또는 하강(↓) 에지 순간에만 동작, 레이스 문제 없음
· T 플립플롭 : JK의 J·K를 묶은 것, T=1이면 toggle. 출력 주파수 = 입력의 1/2 (분주)
· 비동기 입력 : PR=0이면 Q=1, CLR=0이면 Q=0, 클록과 무관하게 즉시 동작
· 설정·보류 시간 : 위반 시 메타스테이블 상태 → 실제 설계에서 반드시 준수
· 무안정 : 안정 0개, 자력 발진 (발진기·타이머) / 단안정 : 안정 1개, 트리거 시 일정 폭 펄스
· 쌍안정 : 안정 2개 = 플립플롭. 플립플롭은 쌍안정 멀티바이브레이터와 동일하다

 

 

태그 : JK플립플롭이란JK플립플롭 SR플립플롭 차이T플립플롭이란T플립플롭 분주회로플립플롭 특성방정식에지트리거 플립플롭멀티바이브레이터 종류무안정 단안정 쌍안정 차이플립플롭 설정시간 보류시간디지털공학 플립플롭

반응형
: