목록전체 글 (155)
Rootable의 개발일기
Ubuntu 환경에서 단체 채팅방을 C와 MySQL을 통해 구현했다. MySQL은 채팅 내용을 저장하는 용도로 사용한다. 📜 기능 목록 모든 사용자에게 채팅 메시지가 전달된다.최초 접속하면 최근 10개의 채팅을 볼 수 있다.채팅 내용은 MySQL에 저장한다. 📌 클라이언트 동작 흐름 MySQL 커넥션 초기화 및 연결서버와 통신할 소켓 생성소켓에 연결할 서버 주소 정보 바인딩서버에 연결 요청DB로부터 최근 10개 레코드 조회 후 각 클라이언트 화면에 출력데이터 전송시간 정보, 사용자 이름, 채팅 메시지 등을 포맷팅 하여 서버에 전송클라이언트가 'exit' 명령을 입력하면 로그아웃으로 간주하여 close 수행데이터 수신서버에서 작성한 메시지가 있다면 읽어온 후 출력 📌 서버 동작 흐름 MySQL 커넥션..
🤔 소켓이란 네트워크에서 데이터를 송수신할 수 있도록 네트워크 환경에 연결할 수 있게 만들어진 연결부 네트워크에 연결하기 위한 소켓은 정해진 규약, 즉 통신을 위한 프로토콜에 맞게 만들어져야 한다. 보통 OSI 7 계층 중 4 계층인 TCP 상에서 동작하는 소켓을 주로 사용하며, 이를 TCP 소켓 또는 TCP/IP 소켓이라고 부른다. 마찬가지로 UDP에서 동작하는 소켓을 UDP 소켓이라고 부른다. 소켓은 크게 프로토콜, IP 주소, 포트로 정의된다. 🚩 용어 정리프로토콜(Protocol)컴퓨터 사이에서 메시지를 주고 받는 데 필요한 양식, 약속이나 규약IP 주소(IP Address)각 장치(호스트)를 식별하기 위한 고유 주소. 송신자와 수신자를 식별포트(Port)IP 주소를 통해 도착한 호스트에서 어..
🚩 학습 목표 ✔ 연결 리스트 자료 구조 사용✔ 구조체 노드 생성✔ 포인터를 통한 데이터 접근✔ 계산기 구현 ✍ 연결 리스트 여러 데이터를 앞 뒤로 포인터를 통해 사슬처럼 연결할 수 있는 자료구조 🔎 특징 연속되는 항목들이 포인터로 연결되어 있음마지막 항목은 NULL을 가리킴프로그램이 수행되는 동안 크기가 동적으로 변함메모리 공간 낭비가 적지만 포인터 메모리가 필요함배열보다 데이터 추가와 삭제, 삽입 등 용이순차 접근을 해기 때문에 탐색 속도가 떨어짐데이터는 객체 단위로 추가함head의 링크를 끊어버리면 전체 노드를 삭제할 수 있음 🔨 구현 ✅ 선언 typedef struct{ double item; struct Node *ptr;} Node; 위와 같은 식으로 선언할 수 있다. 하지..
🔎 C언어의 주요 기능 🚀 저수준 메모리 접근 포인터를 통해 메모리 할당, 해제 및 데이터 조작 등의 작업을 수행할 수 있다. 이 기능은 메모리 관리가 중요한 시스템 프로그래밍과 임베디드 시스템 개발에서 큰 장점으로 작용한다. 🚀 다양한 표준 라이브러리 C 언어는 표준 입출력, 문자열 처리, 수학 연산, 파일 처리 등 다양한 기본적인 프로그래밍 작업을 지원하는 방대한 표준 라이브러리를 제공한다. 이것은 C 언어가 저수준뿐만 아니라 고수준 언어의 특징을 갖고 있어 다양한 애플리케이션 개발을 지원한다는 것을 의미한다. 🚀 이식성 C언어의 표준화 덕분에, 소스 코드는 매우 적은 변경이나 추가 작업 없이도 다른 시스템으로 옮겨져 컴파일될 수 있다. 따라서, C언어로 작성된 프로그램은 다양한 플랫폼과 하드..