반응형

2025/02/16 30

쿠버네티스란?

쿠버네티스(Kubernetes)컨테이너 오케스트레이션 플랫폼도커 컨테이너를 자동으로 배포, 확장, 관리부하 분산, 자동 복구, 무중단 배포 지원**개념**쿠버네티스는 컨테이너화된 애플리케이션의 자동 배포, 스케일링, 관리를 위한 오픈소스 플랫폼입니다.**주요 컴포넌트**1. 마스터 노드 컴포넌트- API Server: 모든 통신의 중심점- etcd: 클러스터의 상태 정보 저장소- Scheduler: 새로운 워크로드 배치 담당- Controller Manager: 클러스터 상태 관리2. 워커 노드 컴포넌트- kubelet: 노드에서 컨테이너 실행 관리- kube-proxy: 네트워크 규칙과 포워딩 관리- Container Runtime: 컨테이너 실행 환경**핵심 개념**1. Pod```yamlapiVer..

개발공부/CS 2025.02.16

메시지 큐(Message Queue)

메시지 큐는 프로그램 간에 데이터를 주고받을 때 사용하는 비동기 통신 방식입니다. 주요 특징과 장점을 살펴보겠습니다:작동 방식:- 발신자(Producer)가 메시지를 큐에 보냅니다- 수신자(Consumer)가 자신의 처리 속도에 맞춰 큐에서 메시지를 가져갑니다- 메시지는 선입선출(FIFO) 방식으로 처리됩니다주요 장점:1. 비동기 처리- 시스템 간 즉각적인 응답이 필요 없어 서로 독립적으로 동작할 수 있습니다- 부하 분산과 성능 향상에 도움이 됩니다2. 안정성- 메시지 유실 방지- 시스템 장애 시에도 메시지가 보존됩니다3. 확장성- 시스템 간 결합도를 낮출 수 있습니다- 새로운 시스템 추가가 용이합니다대표적인 사용 사례:```1. 이메일 발송- 사용자 가입 → 메시지 큐에 환영 이메일 요청 추가 → 이메..

개발공부/CS 2025.02.16

프레임워크와 라이브러리의 차이점

프레임워크와 라이브러리의 주요 차이점을 설명해드리겠습니다.가장 중요한 차이는 '제어의 주체'입니다:라이브러리:- 개발자가 직접 제어 흐름을 결정합니다- 필요한 기능만 골라서 호출하여 사용할 수 있습니다- 예를 들어 jQuery, Moment.js와 같이 특정 기능을 모아둔 도구 모음입니다프레임워크: - 프레임워크가 전체적인 흐름을 제어합니다- 개발자는 프레임워크가 정해둔 규칙과 설계 원칙을 따라야 합니다- Spring, Django, Angular와 같이 전체적인 아키텍처와 규칙을 제공합니다이를 비유하자면:- 라이브러리는 가구를 직접 배치할 수 있는 빈 방과 같습니다. 원하는 가구(기능)를 원하는 위치에 놓을 수 있습니다.- 프레임워크는 이미 가구가 배치된 방과 같습니다. 방의 구조(아키텍처)는 이미 정..

개발공부/CS 2025.02.16

파라미터(Parameter)와 아규먼트(Argument)의 차이점

## 파라미터(Parameter)와 아규먼트(Argument)의 차이점프로그래밍에서 함수를 정의하고 호출할 때 사용되는 용어인 파라미터(Parameter)와 아규먼트(Argument)는 종종 혼동되어 사용되지만, 명확한 차이가 있습니다.### 1. 파라미터(Parameter)* **정의**: 함수를 정의할 때 함수 내부에서 사용될 변수의 이름으로, 함수 선언 부분에 나열됩니다.* **역할**: 함수가 입력받을 값을 나타내는 **형식적인 변수**입니다.* **예시**:```pythondef my_function(x, y):  # x와 y는 파라미터    return x + y```### 2. 아규먼트(Argument)* **정의**: 함수를 호출할 때 함수에 실제로 전달되는 값입니다.* **역할**: 함수..

개발공부/CS 2025.02.16

Call by Reference

## Call by Reference (참조 호출)**Call by Reference (참조 호출)**는 함수나 메서드를 호출할 때 인자로 변수의 **주소**를 전달하는 방식을 말합니다. ### Call by Value (값 호출) 와의 차이점* **Call by Value (값 호출)**: 변수의 **값**을 복사하여 함수에 전달합니다. 함수 내에서 인자의 값이 변경되어도 원래 변수에는 영향을 주지 않습니다.* **Call by Reference (참조 호출)**: 변수의 **주소**를 전달하므로 함수 내에서 인자의 값을 변경하면 원래 변수의 값도 함께 변경됩니다.### 장점* 함수 내에서 원래 변수의 값을 직접 변경할 수 있습니다.* 큰 데이터를 복사하지 않고 주소만 전달하므로 메모리 효율성이 좋습니..

개발공부/CS 2025.02.16

Call by Value란?

📌 Call by Value란? **Call by Value(값에 의한 호출)**은 함수 호출 시, 인자로 전달된 값을 복사하여 함수 내부에서 사용하는 방식이야.➡️ 즉, 함수가 인자로 받은 변수의 복사본을 사용하므로, 함수 내부에서 변경해도 원래 변수에는 영향을 주지 않아! ✅ Call by Value 특징 ✔ 값이 복사됨 → 원본 데이터가 변경되지 않음✔ 독립적인 메모리 공간 사용 → 함수 내 변수는 원본과 별개✔ **기본 데이터 타입(Primitive Type)**에서 주로 사용됨 (예: int, float, char 등) 📌 Call by Value 예제 (Java) 💡 값을 복사해서 전달하기 때문에 원래 변수에는 영향이 없음! class Example {    static void modi..

개발공부/CS 2025.02.16

Git과 GitHub 차이점

📌 Git과 GitHub 차이점 Git과 GitHub는 서로 관련 있지만, 완전히 다른 개념이야!➡️ Git은 “버전 관리 시스템”이고, GitHub는 “Git을 저장하고 공유하는 서비스”야. ✅ 1. Git이란?  Git = 분산형 버전 관리 시스템(DVCS, Distributed Version Control System) 📌 즉, 코드의 변경 이력을 추적하고, 여러 개발자가 협업할 수 있도록 도와주는 툴이야.📌 Git을 사용하면 코드의 변경 사항을 기록하고, 이전 버전으로 되돌릴 수 있어!📌 인터넷 없이도 로컬에서 사용할 수 있음! 💡 Git의 주요 기능 ✔ 버전 관리 (Version Control) → 변경 이력을 저장하고, 원하는 시점으로 되돌릴 수 있음.✔ 브랜치 (Branching) ..

개발공부/CS 2025.02.16

추상화란?

복잡한 부분은 감추고 공통된 주요 부분으로 일반화 하는 것.  📌 추상화(Abstraction)란? 추상화(Abstraction)는 복잡한 시스템에서 핵심적인 개념만을 추려내어 단순화하는 과정이야.➡️ 불필요한 세부 사항을 숨기고, 중요한 정보만 강조하는 것이 핵심이야! 💡 쉽게 말해? 📌 운전할 때 자동차 내부 구조를 몰라도 핸들과 페달만 알면 운전할 수 있지?📌 스마트폰을 사용할 때 내부 회로를 몰라도 앱을 실행하고 전화를 걸 수 있지?➡️ 이게 바로 “추상화”야! 🎯 📌 객체지향 프로그래밍(OOP)에서 추상화란? 객체지향 프로그래밍(OOP)에서 추상화란,➡️ 객체의 필수적인 특징만을 정의하고, 불필요한 세부사항은 숨기는 것을 의미해! ✔️ “어떤 기능을 제공하는지”만 정의하고, “어떻게 ..

개발공부/CS 2025.02.16

오버로딩(Overloading) vs. 오버라이딩(Overriding) 차이점

📌 오버로딩(Overloading) vs. 오버라이딩(Overriding) 차이점 오버로딩(Overloading)과 오버라이딩(Overriding)은 객체지향 프로그래밍(OOP)에서 자주 사용되는 개념하지만 둘은 완전히 다른 개념이니까 헷갈리지 않도록 정리해볼게! 😊 구분 오버로딩 (Overloading) 오버라이딩 (Overriding)정의 같은 이름의 메서드를 매개변수(파라미터)만 다르게 여러 개 정의하는 것 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것적용 대상 같은 클래스 내에서 적용 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 변경메서드 이름 같아야 함 같아야 함매개변수(파라미터) 다르게 설정해야 함 (개수, 타입 등 변경) 부모 메서드와 완전히 동일해야 함반환 타입 다르게 ..

개발공부/CS 2025.02.16

가비지 컬렉터란?

📌 가비지 컬렉터(Garbage Collector, GC)란? **가비지 컬렉터(GC)**는 프로그래밍 언어에서 더 이상 사용되지 않는 메모리를 자동으로 정리해주는 기능.➡️ 불필요한 객체를 자동으로 감지하고 메모리를 해제하는 역할을 해! 💡 쉽게 말해?우리가 변수를 만들거나 객체를 생성하면 메모리가 할당돼.그런데, 이 변수가 더 이상 필요 없을 때 우리가 직접 해제하지 않아도,GC가 알아서 정리해 줌! 🧹✨ 📌 가비지 컬렉션이 필요한 이유 프로그래밍에서 메모리 관리는 매우 중요해!1️⃣ 메모리 누수 방지 → 사용되지 않는 객체가 계속 남아 있으면 메모리 부족 문제 발생!2️⃣ 개발자가 직접 메모리 해제할 필요 없음 → C 언어처럼 free()를 호출하지 않아도 됨.3️⃣ 코드 안정성 향상 → 잘..

개발공부/CS 2025.02.16
728x90