Etc 73

Git의 모든 것

# Git 분산 버전 관리 시스템(Distributed Version Control System)의 하나로, 소스 코드와 같은 문서의 변경 이력을 관리하고 추적하는 도구입니다. Git은 프로젝트의 협업, 소스 코드 관리, 변경 이력 관리 등에 사용되며, 여러 사람이 동시에 작업하는 경우에도 원활한 협업과 버전 관리를 지원합니다. 1. **Repository (저장소)**: Git은 프로젝트의 모든 파일, 폴더, 이력 등을 저장하는 저장소를 가지고 있습니다. 이 저장소는 로컬 컴퓨터나 원격 서버에 위치할 수 있습니다.(.git 이라는 폴더다) 2. **Commit (커밋)**: 커밋은 소스 코드 변경의 스냅샷을 의미합니다. 변경된 파일들의 모음이며, 각 커밋은 고유한 식별자(hash)를 가지며 변경 내용,..

Etc 2023.08.23

웹앱(Web app)에 관하여

# 웹 앱(Web App) 웹 브라우저를 통해 인터넷에 접속하여 실행되는 응용 프로그램입니다. 기존의 데스크톱 애플리케이션과는 달리, 사용자는 웹 브라우저만으로 해당 앱을 이용할 수 있으며 별도의 설치 과정이 필요하지 않습니다. 웹 앱은 웹 기술을 사용하여 다양한 플랫폼에서 동작할 수 있고, 사용자들은 모바일 장치나 컴퓨터를 통해 액세스할 수 있습니다. 웹 앱은 다양한 목적과 기능을 가질 수 있으며, 예를 들어: 1. 소셜 미디어: 페이스북, 트위터, 인스타그램 등과 같은 소셜 미디어 플랫폼은 사용자들이 사진을 공유하거나 친구들과 소통할 수 있는 웹 앱입니다. 2. 온라인 쇼핑: 아마존, 이베이와 같은 온라인 쇼핑 웹 앱은 사용자들이 제품을 검색하고 주문할 수 있는 기능을 제공합니다. 3. 업무 관리: ..

Etc 2023.08.03

RESTful API(Representational State Transfer)

# RESTful API 웹 서비스를 구축하는 데 사용되는 설계 원칙 중 하나로, 간단하게 말하면 웹 기술을 사용하여 데이터를 주고받는 방법을 정의하는 규칙입니다. REST는 Representational State Transfer의 약자로, 리소스(데이터)를 표현하고 상태를 전달하는 방식을 의미합니다. RESTful API의 주요 특징과 개념은 다음과 같습니다: 1. 리소스(Resource): RESTful API는 모든 것을 리소스로 간주합니다. 예를 들어, 사용자, 게시물, 제품 등은 각각 리소스가 될 수 있습니다. 2. URI (Uniform Resource Identifier): 각 리소스는 고유한 식별자인 URI를 갖습니다. URI를 통해 어떤 리소스에 접근하고자 하는지 명확하게 표현할 수 있..

Etc 2023.08.03

C언어 포인터(pointer)에 관하여

# 포인터 다른 변수의 메모리 주소를 저장하는 변수로, `&`는 주소 연산자(Address-of Operator)이고, `*`는 역참조 연산자(Dereference Operator)입니다. 1. & (주소 연산자: Address-of Operator): - `&`는 변수의 주소를 가져오는 역할을 합니다. - 변수 앞에 `&`를 붙여 사용합니다. - 예시: int num = 42; int *ptr = # 위의 예시에서 `&num`은 변수 `num`의 주소를 가져옵니다. 이를 포인터 변수 `ptr`에 저장할 수 있습니다. (주소는 0x7fff5fbff82c 이런 형식임) 2. * (역참조 연산자: Dereference Operator): - `*`는 포인터가 가리키는 주소에 저장된 값을 참조합니다. ..

Etc 2023.07.18

오버로딩(Overloading)과 오버라이딩(Overriding)과 다형성(Polymorphism)

오버로딩(Overloading), 오버라이딩(Overriding), 그리고 다형성(Polymorphism)은 객체지향 프로그래밍에서 중요한 개념입니다. 다음은 각 개념에 대한 비교 설명입니다: 1. 오버로딩(Overloading): - 오버로딩은 하나의 클래스 내에서 메서드의 이름은 동일하지만 매개변수의 타입, 개수, 또는 순서가 다른 여러 버전의 메서드를 정의하는 것을 말합니다. - 오버로딩을 통해 동일한 작업을 수행하는 메서드를 가독성 좋게 이름을 유지하면서 다양한 매개변수 조합으로 호출할 수 있습니다. - 오버로딩은 컴파일러가 메서드 호출을 분석하여 알맞은 버전의 메서드를 선택하는 정적(compile-time) 다형성의 한 형태입니다. 2. 오버라이딩(Overriding): - 오버라이딩은 부모 클..

Etc 2023.07.13

Boolean 타입 변수 활용

프로그래밍 언어를 배울 때, boolean 타입은 값에 대한 true or false 판단용으로만 사용하는 것처럼 보인다. 그리고 한참동안이나 그렇게만 써왔다... 논리타입, 논리타입, 논리타입... 프로그래밍이 객체지향형으로 짜여지면서 부딫히는 부분이 생기는데; 그 첫번째가 실행 흐름의 변경이다. 조건문이나 제어문을 사용할 수는 있겠는데, 생각했던 로직이 안나온다. 거기서 boolean 타입 변수가 중요한 역할을 한다. 원하는 로직에 대한 논리 흐름을 스위치처럼 변경시킬 수 있는 변수 되시겠다. 그 두번째가 스레드, 즉 멀티 스레드다. 코드의 흐름은 어느정도 익혔고, 끝까지 가는 방법은 알겠는데, 동시에 2가지 이상의 흐름이 안된다. 스레드는 추후에 다시 고찰하는 것으로... C# 부분에서

Etc 2023.07.13

도커(docker)와 쿠버네티스(kubernetes)비교

# 도커(Docker)와 쿠버네티스(Kubernetes) 컨테이너 오케스트레이션의 두 중요한 기술이며, 둘 다 애플리케이션 배포 및 관리를 단순화하고 자동화하는 데 사용됩니다. 그러나 각각의 역할과 목적은 다소 다릅니다. 다음은 도커와 쿠버네티스의 주요 비교 점입니다: 1. 역할: - 도커: 도커는 컨테이너 기술을 관리하는 소프트웨어 플랫폼으로, 개발자가 응용 프로그램을 컨테이너로 패키징하고 실행하는 데 사용됩니다. 도커는 컨테이너를 만들고 이미지로 공유할 수 있게 해줍니다. - 쿠버네티스: 쿠버네티스는 컨테이너 오케스트레이션 플랫폼으로, 여러 도커 컨테이너를 클러스터로 관리하고 오케스트레이션, 스케일링, 로드 밸런싱 등의 작업을 자동화합니다. 2. 단계: - 도커: 개발자는 도커 컨테이너 이미지를 작성..

Etc 2023.07.11

NAT (Network Address Translation)

# NAT (Network Address Translation) 네트워크에서 IP 주소를 변환하는 기술입니다. 이는 사설 네트워크와 공인 네트워크 간의 통신을 가능하게 하는 방법 중 하나입니다. 사설 네트워크는 일반적으로 인터넷에 직접 연결되지 않고, 사설 IP 주소를 사용하여 내부적으로 구성됩니다. 그러나 인터넷과의 통신을 위해서는 공인 IP 주소가 필요합니다. 이때 NAT가 사용됩니다. NAT는 사설 IP 주소와 공인 IP 주소 사이에서 IP 패킷을 변환하는 역할을 합니다. 이를 위해 NAT 장치가 사용되며, 일반적으로 라우터나 방화벽에서 NAT 기능을 제공합니다. NAT의 기본 작동 방식은 다음과 같습니다: 1. 내부 네트워크에서 인터넷으로 나가는 패킷이 NAT 장치에 도달합니다. 2. NAT 장치..

Etc 2023.07.07

HTTP통신과 소켓통신 비교

둘 다 컴퓨터 네트워크에서 데이터를 주고받는 방법이지만, 목적과 동작 방식에서 차이가 있습니다. 1. 목적: - 소켓 통신: 소켓 통신은 일반적으로 클라이언트와 서버 간의 저수준 네트워크 통신을 위해 사용됩니다. 데이터 전송에 있어서 직접적인 제어와 유연성을 제공합니다. - HTTP 통신: HTTP 통신은 웹 기반의 응용 프로그램에서 주로 사용됩니다. 주로 웹 브라우저와 웹 서버 간에 웹 페이지, 이미지, 동영상 등의 리소스를 요청하고 응답하는 데 사용됩니다. 2. 프로토콜: - 소켓 통신: 소켓 통신은 TCP/IP 프로토콜 스택을 기반으로 작동하며, TCP 또는 UDP를 사용하여 데이터를 전송합니다. - HTTP 통신: HTTP 통신은 HTTP 프로토콜을 사용하여 데이터를 전송합니다. HTTP는 TCP..

Etc 2023.07.07

소켓 통신(socket)

# 소켓 통신 컴퓨터 네트워크에서 프로세스 간 통신을 가능하게 해주는 일반적인 방법입니다. 이를 통해 서로 다른 컴퓨터나 같은 컴퓨터의 다른 프로세스 간에 데이터를 주고받을 수 있습니다. 소켓은 소프트웨어적으로 구현된 네트워크 인터페이스로, 일종의 통신 도구로 생각할 수 있습니다. 클라이언트-서버 모델에서 클라이언트는 특정 서버에 연결하고, 서버는 클라이언트의 연결을 받아들이고 데이터를 교환합니다. 일반적으로, 소켓 통신은 TCP/IP 프로토콜 스택을 기반으로 작동합니다. TCP(Transmission Control Protocol)는 신뢰성 있는 연결 지향적인 프로토콜로, 데이터 전송을 보장하고 오류 복구를 제공합니다. UDP(User Datagram Protocol)는 비연결성이며 신뢰성을 보장하지 ..

Etc 2023.07.07