본문 바로가기

분류 전체보기174

2장 - 테이블에서 데이터 검색 4. Hello World! SELECT DML에 속하는 명령, 데이터베이스의 데이터를 읽어와 출력함 - 질의나 쿼리라고 불리기도 함 SELECT * FROM 테이블명; SELECT, *, FROM 테이블명 등의 단어들 사이에는 공백이 필요 SELECT 명령은 여러 개의 구로 구성됨 - SELECT *가 SELECT구, FROM sampe21은 FROM구에 속함 SELECT, FROM : 구를 결정하는 키워드 = 예약어 * : 모든 열을 의미하는 메타문자 FROM 이름 : 명령어로 처리하고자 하는 대상명 입력 대상은 데이터베이스 객체로써 서로 다른 이름으로 존재하며 예약어는 데이터베이스 객체명으로 사용할 수 없음 데이터베이스 객체명과 예약어는 대소문자를 구별하지 않음 ; : SQL 명령문의 마지막에는 세.. 2023. 3. 29.
1장 - 데이터베이스와 SQL 1. 데이터베이스 데이터(컴퓨터 안에 기록되어있는 숫자)의 집합, 넓은 의미에서는 '컴퓨터 안에 기록된 모든 것' 영구적으로 보존되어야하기에 하드디스크 또는 플래시메모리(SSD) 등의 비휘발성 저장장치에 저장 데이터센터의 서버에서 운용하는게 일반적(인터넷 쇼핑, 예약 서비스 등), 개인용 컴퓨터 및 휴대용기기에 내장되어있는 형태로도 존재(전화번호부 등) 일반적으로 DB라는 약자로 통용됨 DB를 효율적으로 관리하는 프로그램을 데이터베이스 관리 시스템(Database Management System, DBMS)이라고 부름 DBMS가 필요한 이유 시스템 개발 과정에서의 생산성 향상 DB를 사용하는 모든 시스템에서는 데이터 검색 / 추가 / 삭제 / 갱신과 같은 처리가 이루어짐 - 이러한 기본 기.. 2023. 3. 29.
IOCP 서버 제작 실습 10 추가로 구현해야하는 내용들 정리 기능 추가 채팅방에 속한 유저 리스트 기능 귓속말 기능 채팅방 방장, 강퇴 기능 Redis DB에 저장된 비밀번호 변경 최적화 좀 더 발전된 함수들 사용 (GetQueuedCompletionStatusEx 함수 등) 서버 코드 내에서 각종 수치(최대 클라이언트 수 등)들을 지정하는 것이 아니라 입력받도록 설정 동적 할당 최소화 Lock 최적화 구조 버퍼 구조를 어떻게 하면 더 잘 짤 수 있을지 고민 프로그램을 부분별로 나누어 정적 라이브러리로 활용 클라이언트 Reference 클라이언트가 아닌 나만의 클라이언트 만들어보기 서버의 스트레스 테스트가 가능하도록 더미 클라이언트 구현 2023. 3. 27.
IOCP 서버 제작 실습 9 추가로 로그아웃 기능을 구현 Logout 로직 기본적인 작동 방식은 Login과 동일 [PacketManager] LOGOUT_REQUEST 패킷을 받아 ProcessLogout() 함수 호출, REQUEST_LOGOUT Task를 생성 [RedisManager] REQUEST_LOGOUT Task를 받아 ProcessLogout() 함수 호출, RESPONSE_LOGOUT 패킷을 생성 [PacketManager] REQUEST_LOGOUT 패킷을 받으면 ProcessLogoutDBResult() 함수를 호출 유저가 Room에 들어가있는 상태라면 RoomManager의 LeaveUser() 함수를 호출하여 Room에서 제거 유저 정보도 UserManager의 DelUser() 함수를 호출하여 리스트에서 .. 2023. 3. 27.