C# - 제어문, 반복문, 함수 (작성중)
제어문 if 문
제어문 if 문
리스트
우선순위 큐
이상적인 해시함수 가장 이상적인 해시함수는 키들을 균등하게(Uniformly) 해시테이블의 인덱스로 변환하는 함수 해시에서 해결해야할 문제 쫑이 나면 어떻게 할까?(겹치면 어떻게 해결하지?) 개방 주소 방식 저장되지 않은 곳을 열린 공간으로 생각한다. 폐쇄 주소 방식 폐쇄주소...
배열이나 연결리스트 : 데이터를 일렬로 저장하기 때문에 탐색 연산이 순차적으로 수행. 배열은 미리 정렬(Sort)을 해놓으면 이진탐색을 통해 효율적인 탐색이 가능하지만, 삽입이나 삭제 후에도 정렬 상태를 유지해야함. 삽입이나 삭제하는데 O(N) 시간 소요.
스택 Last-In First-Out 스택은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 데이터의 입력과 출력 순서가 후입선출이다. 스택에 데이터를 넣는 작업을 푸시, 스택으로부터 데이터를 꺼내오는 작업을 팝이라고 한다. 스택은 실생활에서 접시 그릇을 차곡차곡 쌓아둔...
프로그램 = 자료구조 + 알고리즘 (예) 최대값 탐색 프로그램 = 배열+ 순차탐색
자료구조에서의 그래프 현실 세계의 사물 - 추상적인 개념 간 연결 관계를 표현한 것.
MMORPG 에서는 길찾기를 구현하는 것이 매우 중요하다. 특히 몬스터들이 플레이어를 향해서 길찾기를 하여 다가가야하기때문이다. BFS의 단점. 직관적으로도 알 수 있는 최단경로라고하더라도, BFS를 이용하면 결국 그래프 전체를 탐색해야한다. 필수적이지 않은 정보들까지 검색을 해...
그래프 탐색이란 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것이다. 예를 들어 특정도시에서 다른 도시로 갈 수 있는지, 전자회로에서 특정 단자와 단자가 서로 연결되어 있는지를 탐색하는 알고리즘이다.
1) 현재 노드로부터 연결된 노드들 중 방문하지 않은 노드들을 큐에 넣는다. 2) 큐에서 가장 나중에 들어간 노드를 큐에서 빼내고 해당 노드를 방문한다. 3) 위의 1),2) 과정을 반복한다.
자료구조의 분류
인프런 강사님 "Rookis" 님의 "[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘"를 수강하고 정리해보고자 쓴 글입니다. 잘못된 정보가 있을 수 있으니 참고용으로만 봐주시면 감사하겠습니다. 해당 글은 꾸준히 수정할 계획입니다. 감사합니다...
반복문:
```cpp
연결리스트
배열
포인터
다음 기억공간의 이름으로서 가능한 것은? Char No2 _abcd intfloat %int 풀이) Char No2, _abcd intfloat 변수 이름 짓는 규칙: 영문자, 숫자, _ 조합으로 만든다. 예약어는 사용할 수 없다.(-> char, int, shor...
2차원 배열
이전에 우리는 문자상수를 다루는 방법을 살펴보았었습니다. 즉 1바이트짜리 정수형의 공간을 만들고자 할때는 char ss; 로 선언하고, 이곳에 -128 ~ 127 사이의 값을 저장할 수 있었죠. ss=14; 그런데 이렇게 선언된 1바이트짜리 공간에는 문자상수를 저장할 수도 있었습...
배열 동일한 일련의 데이터 타입들을 연속적으로 나열한 것.
1부터 10까지 더하는 프로그램을 쉽고 간단하게 작성하려면 어떻게 해야할까?
구조적 프로그래밍 기법 4가지 요소 순서 : 실행문은 위에서 아래로 차례로 실행된다 판단 : 프로그램의 흐름으 바꿀 수 있도록 한다. 반복 : 반복되는 명령어를 갖고 있어야 한다. 프로시저 : 독립된 함수를 만들 수 있고, 이를 호출할 수 있어야한다. if 문의...
변수에 사용자가 입력한 값 받아오기
출력함수 문자열 “Hello” 출력 ```cpp include
산술 연산
SQLite 설치 링크 DB 기본 명령어 Java DB 기본 명령어 SELECT) ResultSet rs = stat.executeQuery(“SELECT ID,Name FROM User”); INSERT) prstat = con.prepareStatement(“insert...
1. 서버-클라이언트 프로그래밍 소켓 간 연결 서버 자신의 IP주소, 포트번호를 묶음(bind) 클라이언트 socket에서 connect 신호가 오기까지 기다림. br.readLine() : 읽어들임 pw.println() : 보냄. 클라이언트 socket을 만들어서 기다리고 ...
예제 1)
참고 : 클래스 상속, 오버라이딩
메서드 반복되는 명령들을 한 번에 묶어서 처리하고 싶을 때 사용한다.
클래스
예외 처리 - 예외(Exception) * 자바에서는 실행 중 발생하는 에러를 예외로 처리 * 실행 중 예외가 발생하면 자바 플랫폼은 응용프로그램이 예외를 처리하도록 호출 * 응용프로그램이 예외를 처리하지 않으면 프로그램 강제 종료 시킴 - 예외 발생 경우 ...
배열 동일한 일련의 타입의 데이터들이 순차적으로 저장하는 공간. 인덱스를 이용해 원소 데이터 접근 반복문을 이용하여 처리하기에 적합한 자료 구조 배열을 이용하면 한 번에 많은 메모리 공간 선언 가능 변수에는 레퍼런스만을 담는다.
식별자 클래스, 변수, 상수, 메소드 등에 붙이는 이름 식별자 작성 원칙 ‘@’, ‘#’, ‘!’와 같은 특수 문자, 공백 또는 탭은 사용불가, ‘_’, ‘$’는 사용 가능 유니코드 문자 사용 가능. 한글 사용 가능 자바 언어의 키워드...
조건문
4. NumPy Basics: Arrays and Vectorized Computation
CHAPTER 12. 데이터 길들이기 지금까지 파이썬 언어 자체(데이터 타입, 코드 구조, 구문 등)만 다뤘다. 2부부터는 실제 문제 적용을 다룰 것이다. 이 장에서는 데이터 길들이기에 대한 실용적인 기술을 배운다. 이것을 데이터 먼장(data munging)또는 데이터베이스...
>>> import keyword >>> print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue...
숫자 데이터 타입
이 포스팅의 목적 내가 프로그래밍 공부를 통해서 게임 개발자가 되고싶어했지만, 구체적으로 어떤 방향으로 공부를 해야할지가 너무 막막했다. 그래서 우리 부대 전산병 선임분께서 답을 알고계실 것 같아서 도움을 요청했다. 선임분께서는 다음과 같은 방법으로 공부의 방향을 잡아보라고 권하...
10월에 한 것들
8월에 한 것 훈련소 생활 wow 8월에 읽은 책 <필요한 사람인가> <습관의 힘> <방구석 미술관> <반 고흐, 영혼의 편지> <백종원의 장사 이야기> <상상하지 말라 : 그들이 말하지...
해커란 본래 시스템 전체에 대해 파악한 사람을 의미로 사용된다. 이후 범죄를 일으키는 해커를 일반적인 해커로 지칭하여 사용된다. 게임에서는 게임 치트(ex. FPS 에임 핵), 금융의 경우 DNS 스푸핑을 통한 미러사이트 접속 유도 등의 경우가 대표적인 해킹의 예이다. 4차 산업혁...
영상 자료를 보고 난 뒤, “레디 플레이어 원”이라는 영화가 떠올랐다. 영화속 등장인물들은 현실에서는 빈민촌 생활을 하며 고통스러운 생활을 보내지만, HMD를 착용한 후 그 안서는 오아시스 라는 VR게임 가상 세계에 몰입하여 현실을 잊은 채 행복해하는 모습을 보여준다. 영화에서 ...
4차 산업 혁명 시대의 핵심 기술은 정보통신기술(ICT)이라고 할 수 있다. 다양한 산업에서 정보통신과 정보처리는 중요한 역할을 하는데, 특히 5G 기술은 현재 우리가 살고 있는 디지털 컨버전스를 실현하는데에 있어서 매우 중요한 기술이다. 4G LTE 와 비교했을 때, 전송속도가...
정수 형식 (및 범위) byte : 1byte(0~255) short : 2byte(-3만~3만) int : 4byte(-21억~21억) long : 8byte sbyte : 1byte(-128~127) ushort : 2byte(0~6만) uint : 4byte(0~43억) u...
델리게이트 단점 델리게이트 객체를 호출하는 것이 코드 설계에 있어서 매우 중요한 부분이라면, 델리게이트 객체를 호출하는 함수에서만 인자로 받아 사용해야 한다.
static으로 선언된 필드는 여러 객체를 생성해도 오로지 한개만 존재. 정말로 한 클래스안에 한개만 존재하는 필드를 만들 때는 유용하게 사용됨. 필드만 넣는것이 아니고 함수에도 사용할 수 있으나 개념상 똑같다.
객체지향에서 은닉성을 보장하기 위해서 C#에서는 protected, private 등과 같은 키워드로 변수의 값을 외부에서 지정하는 것을 막도록한다. 그리고 변수에 대한 getters 와 setters를 작성하여 외부에서 함수를 이용해야만 변수 값을 지정해줄 수 있도록한다. 하지만...
대리자 지금까지는 코드를 작성할 때, 직관적이고 순차적으로 만들었다.
클래스 개념
1. 다음 중 어셈블리어와 관계없는 것은? 2 2. 다음 중 피연산자의 수를 줄이는 방법과 거리가 먼 것은? 4 3. 다음 분기 명령어 중 가장 많은 작업을 수행하는 연산은? 1 4. CPU 내부에 기억장치를 추가할 때 나타나는 효과와 관계없는 것은? 3 5. 다음 중 폰노이만형 ...
1. 명령어 집합 명령어 집합의 의미 원시 부족 문화 이해 <- 원시 부족 언어를 알아야 함. 컴퓨터 이해 <- 프로세서 언어(명령어)를 알아야 함. 명령어는 CPU가 수행할 동작을 2진수 코드로 정의한 것. 일반적으로 2진수 코드 대신 연상 부호를 사용한 어셈블리어 ...
연습 문제 1. 다음 중 컴퓨터 구현과 관계 없는 것은? 컴퓨터 구현 = 컴퓨터 구성 => 컴퓨터가 어떻게 만들어졌는지에 대한 투명한 하드웨어 내역 답 : (4) 2. 다음 중 컴퓨터의 4대 기능과 관계없는 것은? 컴퓨터의 4대 기능 = 입력, 저장 혹은 보관, 처리, 출...
1. 다음 중 폰노이만 아키텍처와 관계없는 것은? 답 : (2) 유니버설 기계 폰노이만 아키텍쳐는 명령어를 해석하고 데이터를 처리하는 CPU, 명령어와 데이터를 저장하는 메모리, 입출력장치로 구성. 프로그램 자체와 프로그램에서 사용하는 데이터를 동일한 형태로 메모리에 저장할 수 ...
1. 컴퓨터의 세대별 발전
1. 컴퓨터 시스템 컴퓨터 시스템의 개념적 구성 컴퓨터 시스템 : HW + SW
통신 프로토콜의 개요 OSI 7 layer 통신 프로토콜의 기능과 구성요소 꼭 이해해야 하는 것. OSI 7 layer 프로토콜 계층 구조의 개념과 도입 배경, 구성요쇼
3. 정보 전송 방식 데이터 전송 방식 (직렬 전송과 병렬 전송 용어 이해하기!) 직렬 전송 serial transmission 데이터 최소 요소인 문자 하나를 구성하는 각 비트를 전송선로 1개를 이용하여 차례로 전송하는 방식 컴퓨터 하드웨어끼리는 워드단위로 병렬...
지난수업 : 정보 통신 시스템의 정보처리파트에 대해서 자세하게 살펴봤다. 컴퓨터 하드웨어 관점에서 컴퓨터 구조, 컴퓨터 설계에 대한 내용. CPU, 메모리 등 하드웨어에 대한 부분을 봤고, 정보처리 시스템에서 데이터의 역할, 데이터 베이스, 운영체제 및 소프트웨어에 대해서 간단하게...
주요 내용 - 정보처리 시스템의 이해 - 스마트폰의 하드웨어+소프트웨어 - 컴퓨터와 소프트웨어의 발전 방향 (컴퓨터통신에서 처리파트는 잘 안하지만, 1학년 때 했던 컴퓨터 개념 등을 정리하는 기회로 다시 해봄.) 지난 내용 : 정보 통신 시스템 신호 변환장치 어떤 신호(디,아)를...
이번주 수업의 주요 내용 정보 통신 시스템 개요 통신(정보전송) 시스템의 하드웨어
캐시 : 단기기억 해뒀다가 나중에 어느정도 모이면, 공유 메모리에 넣어둠. 공유 메모리에 적기 전에 변경됐다면, 다시 공유 메모리까지 가서 변경하는게 아니라, 캐시에 기억된 데이터를 변경된 메모리에 넣는다. 코어 하나에 ALU(산술연산장치)와 캐시가 같이 들어있다. 메모리와 CP...
C# 서버 프로그래밍 - 멀티쓰레드 | 컴파일러 최적화 |
Task t 객체 t.Wait(); // Thread 종료까지 기다리겠다는 의미 Thread 객체였다면 t.join()하는 것과 같음. 디버깅 모드와 릴리즈 모드 평소에는 디버깅 모드로 실행해왔지만, 실제로 라이브로 배포할 때는 릴리즈모드로 실행한다. 이 때 버그가 터질 수 있...
C# 서버 프로그래밍 - 멀티쓰레드 | 쓰레드 생성 |
Thread 실행 순서 메인이 끝난 뒤에 실행하는 것은 아니고, 동시에 실행된다. 쓰레드는 실행한 순간 자유로운 영혼이라 생각한다. 메인 쓰레드와, 새로 만든 쓰레드 양쪽에서 로그를 찍는다면, 순서를 예측할 수 없게 된다. Thread 생성 단점과 해결 Thread 객체를 생성하...
컴포넌트 패턴
객체 지향 프로그래밍 OOP : Object Oriented Programming
에뮬레이션 : 직렬 통신을 하드웨어 모양을 흉내내는 것. 예전 세대에서는 직렬 통신을 하드웨어 적으로 구현함. 현재에는 sw로 구현 직렬 통신이 연결되려면 com 포트를 열어줘야 함. pc에서 usb 케이블을 연결하게 되면, 데이터를 보내고 받는 방법은 직렬 통신 방법. 직렬 ...