이번 주는 컴퓨터 구조, 네트워크, 백엔드 설계, AI 산업 구조에 대해서 배웠고, 황후순 강사님의 소방 콜봇 등 AI를 활용한 프로젝트들을 접할 수 있었고, 이론들을 조금이나 배울 수 있었다. 이번 주 부족한 공부들을 했는데, 자료구조, 디자인패턴, 자바의 정석, 파이썬, 모던자바인액션, 이펙티브 자바 등을 읽었다. 쇼핑몰 홈페이지 만들 때도 람다, 스트림이 많이 쓰이는 것을 보고 아직 부족하지만 더 열심히 공부를 해야겠다. 이번주 4~5시간씩 잠을 잤는데도 피곤한 것을 보면, 체력적 한계가 온 것이 아닌가? 라는 생각을 해본다. 스톱워치로 하루 순공시간을 찍어보았는데, 강의 시간을 제외하면 6~7시간 정도 찍는 것 같다. 집중을 더 해봐야겠다. 열심히 했지만, 다음주도 열심히 잘 하는 내가 되는 것을 상상해본다. 이번 주도 수고했어!
| 시스템 아키텍처 | 포인터 크기 | 최대 메모리 주소공간 |
|---|---|---|
| x86 (32bit) | 4 byte (32bit) | 2³² = 약 4GB |
| x64 (64bit) | 8 byte (64bit) | 2⁶⁴ = 사실상 무제한 (물리적 제한은 존재) |
@Scheduled(cron = "0 0 1 * * ?") // 매일 1시
NLP (자연어 처리): 언어의 기본 구조를 분석 (형태소, 문장 분석 등)
NLU (자연어 이해): 질문의 의미/의도 파악
정답 추론: 질의와 데이터 기반으로 최적의 응답 생성
문맥 유지: 멀티턴 대화, 이전 질문 기반 응답 생성
외부 API 연동: 외부 DB, 서비스와 연결
“서울 날씨 알려줘”
NLU: 위치 = 서울, 요청 = 날씨
정답 추론: OpenWeatherMap API 호출
API 연동: GET /weather?q=Seoul
POST /order (Command) → 메시지 큐로 전달
GET /orders (Query) → 조회 전용 DB에서 읽기
| 구분 | 설명 | 예시 |
|---|---|---|
| 인덱스(Index) | 테이블의 특정 컬럼에 대한 정렬된 목록 (B-Tree) | name, email |
| 역인덱스(Inverted Index) | 단어 → 문서의 맵핑 (검색엔진에서 주로 사용) | “hello” → 문서 A, C, F |
객체가 만들어지고, 사용되고, 소멸되는 일련의 과정을 제어하는 패턴
public class MyBean implements InitializingBean, DisposableBean {
public void afterPropertiesSet() { ... } // 초기화
public void destroy() { ... } // 소멸
}
(1) 테이블 통합 시 PK 충돌 방지
(2) 복합키 대신 단순키로 관리
(3) 개인정보 노출 방지 (본질 식별자 암호화)
CREATE TABLE Member (
member_id BIGINT AUTO_INCREMENT PRIMARY KEY, -- 인조 식별자
name VARCHAR(50),
ssn CHAR(13) -- 주민번호는 암호화 대상
);
for(int i=0; i<3; ++i) xyz[i] = i; // 루프 계산 + 배열 접근 → 총 10회 연산
xyz[0]=0; xyz[1]=1; xyz[2]=2; // 연산 3회
단, 가독성과 유지보수성도 고려해야 해서 선택해야 한다!
| 개념 | 설명 |
|---|---|
| MCP (Model Context Protocol) | 모델 상태와 맥락 정보를 구조화하여 처리 흐름을 제어 |
| A2A (Agent-to-Agent) | 에이전트 간 직접 메시지 송수신 구조 |
| LangChain | LLM 기반 앱 구축을 돕는 프레임워크 (Chain, Tool, Memory 등 제공) |
| NAT (Network Address Translation) | 사설 IP → 공인 IP로 변환하여 인터넷 통신 가능케 함 |
| OSI 7계층 | 네트워크 구조의 계층적 모델: 물리-데이터링크-네트워크-전송-세션-표현-응용 |
| 폰 노이만 구조 | 명령어 실행의 기본 흐름: FETCH → DECODE → EXECUTE |
MCP는 LLM 기반 시스템 설계에서 모델(Model), 문맥(Context), 프로토콜(Protocol)을 명확히 구분하고 관리하는 구조적 원칙이다.
| 구성 요소 | 설명 |
|---|---|
| Model | LLM (예: GPT-4, Claude 등) 또는 도메인 특화 모델 |
| Context | 입력 프롬프트, 사용자 대화 이력, 시스템 규칙 등 |
| Protocol | 모델 간 상호작용 방식 또는 워크플로우 제어 규칙 |
A2A는 에이전트들이 직접 서로 통신하며 협업할 수 있는 구조 또는 패턴이다. 일종의 멀티에이전트 시스템(MAS)의 기초.
sequenceDiagram
participant AgentA
participant AgentB
AgentA->>AgentB: "날씨 요약 완료 → 여행 일정 추천 요청"
AgentB-->>AgentA: "여행 추천 완료 → 예산 계획 요청"
LangChain은 LLM 기반 애플리케이션을 쉽게 만들 수 있도록 도와주는 Python 기반 프레임워크이다.
| 구성 요소 | 설명 |
|---|---|
| Chain | 여러 LLM 호출 및 논리 흐름을 순차적으로 연결 |
| Tool | 외부 API, 계산기, 파일시스템 등 LLM이 호출할 수 있는 기능 |
| Memory | 이전 대화의 문맥을 저장하는 객체 |
| Retriever | 벡터 DB에서 유사한 문서 검색 |
| Agent | 주어진 도구를 통해 상황에 따라 스스로 결정을 내리는 LLM 구조 |
NAT는 사설 IP 주소를 공인 IP 주소로 바꾸어주는 네트워크 기술이다.
컴퓨터 간 통신이 어떻게 이루어지는지를 설명하기 위한 추상화된 네트워크 모델. 각 계층은 서로 독립적으로 구성되어 있음.
| 계층 | 이름 | 설명 | 대표 프로토콜 |
|---|---|---|---|
| 7 | Application | 사용자에게 가장 가까운 계층 (브라우저, 앱) | HTTP, FTP |
| 6 | Presentation | 데이터 표현 방식 처리 (암호화, 인코딩) | JPEG, ASCII |
| 5 | Session | 세션 관리, 연결 유지 | TLS, NetBIOS |
| 4 | Transport | 종단 간 연결 및 흐름 제어 | TCP, UDP |
| 3 | Network | IP 주소 및 경로 결정 | IP, ICMP |
| 2 | Data Link | MAC 주소 기반 전송 | Ethernet |
| 1 | Physical | 전기 신호/광신호 수준 | 케이블, NIC |
현대 컴퓨터의 기초 아키텍처. 명령어와 데이터를 같은 메모리 공간에서 관리하는 구조.
메모리 <--> 제어장치 <--> 연산장치
↕
레지스터
↕
입출력 장치