전체 글 120

C/C++ 구조체(struct, class)

■ C/C++ 구조체(struct, class) ㆍ C와 C++ 비교 - 클래스와 객체의 차이는 구조체를 위한 함수들이 클래스의 경우 "종속성"을 띠지만, 객체의 경우 "전역함수"의 형태를 띠기 때문에 "종속성"을 나타내지 못하고 다른 영역에서 해당 함수를 호출하는 실수를 범할 수 있다. * C++에서는 객체 안에 함수를 넣을 수 있다. 1. C 언어(struct) ex> #define ID_LEN 20 #define MAX_SPEED 200 #define FUEL_STEP 2 #define ACC_STEP 10 #define BRK_STEP 10 typedef struct Car { char gamerID[ID_LEN]; int fuelGauge; int curSpeed; } Car; void Show..

Coding/C & C++ 2020.02.18

C/C++ 함수 오버로딩 vs 함수 오버라이딩

■ C/C++ 함수 오버로딩 vs 함수 오버라이딩 ㆍ 함수 오버로딩 - 동일한 이름의 함수 정의를 허용하는 것 ex> int funcOverloading(int num) { num++; return num; } int funcOverloading(int a, int b) { return a+b; } - C++은 함수를 호출할 때, '함수의 이름'과 '매개변수의 선언' 정보를 가지고 찾는다. => 그렇기 때문에 함수 오버로딩을 위해서는 매개변수의 반환형이나 개수를 다르게 해야 한다. ㆍ 함수 오버라이딩 - 상속에서 사용된다. - 하위 클래스에 상위 클래스와 동일한 이름과 형태의 함수를 선언하게 되면, 상위 클래스의 함수는 하위 클래스 함수에 의해 가려진다. - 하위 클래스에서 상위 클래스의 오버라이딩 된 ..

Coding/C & C++ 2020.01.31

C/C++ 배열과 포인터

■ C/C++ 배열과 포인터 ㆍ 배열 - 선언에 필요한 것: 배열 이름, 자료형, 길이정보 - 값을 바꿀 수 없는 "상수 형태의 포인터" - 다차원 배열의 경우, 배열 포인터를 이용하여 표현 가능 - "변수 형태의 문자열", 문자열 변경이 가능 * 문자열을 저장하는 경우, 항상 마지막에 '\0'(널 문자)이 들어가야 된다. 널 문자가 없는 경우 문자 배열로 취급한다. ex> int arr0[5]; int arr1[3] = { 0, 1, 2 }; char arr2[3] = { 'H', 'i', '~' }; // 문자 배열 char arr3[4] = { 'H', 'i', '~', '\0' } // 문자열 int * parr = arr0; ㆍ 포인터 - 메모리의 주소 값을 저장하기 위한 변수 - & 연산자: ..

Coding/C & C++ 2020.01.11

C/C++ 입출력

■ C/C++ 입출력 ㆍ 출력 □ printf() - 출력하는 함수 ex> int a = 7; printf("My number is %d\n", a); □ 특수 문자 - \a : 경고음 - \b : 백스페이스(backspace) - \f : 폼 피드(form feed) - \n : 개 행(new line) - \r : 캐리지 리턴(carriage return) - \t : 수평 탭 - \v : 수직 탭 - \' : 작은 따옴표 출력 - \" : 큰 따옴표 출력 - \? : 물음표 출력 - \\ : 역슬래쉬 출력 - %% : % 하나 출력 □ 서식 문자 - %d : int - %lld : long long - %x : unsigned int(16진수) - %f : float - %lf : double - ..

Coding/C & C++ 2020.01.04

C/C++ 변수와 상수, 데이터 표현

■ C/C++ 변수와 상수 ㆍ 변수와 상수 - 변수 및 상수 = 값을 저장할 수 있는 메모리 공간 1. 변수 - 변수(Variable)는 변할 수 있는 데이터 - 변수를 선언할 때는 자료형과 변수명을 입력한다. 원하는 경우 초기값을 적용할 수 있다. - 초기화되지 않은 변수는 쓰레기 값이 들어간다. ex> int a; int b = 7; * 변수 이름 선언 시 적용되는 규칙 1) 변수의 이름은 알파벳, 숫자, 언더바(_)로 구성된다. 2) C언어는 대소문자를 구분한다. 3) 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다. 4) 이름 사이에 공백이 삽입될 수 없다. ① 지역 변수 - 중괄호 내에 선언되는 변수는 모두 지역 변수이다. - '스택(Stack)'이라는 메모리 영..

Coding/C & C++ 2020.01.03

C/C++ 개발 환경 구축

■ C/C++ 개발 환경 구축 및 과정 ㆍ 통합 개발 환경(Integrated Development Environment) - 프로그램 개발에 사용되는 코딩, 디버깅, 컴파일, 배포의 모든 과정을 통합적으로 관리할 수 있도록 해주는 소프트웨어를 의미, 줄여서 IDE라고 한다. => Visual Studio, Eclipse 등 ㆍ Windows ① Microsoft Visual Studio 접속 및 Community 다운로드 및 실행 * 아래와 같은 에러 발생 시, .NET 버전 확인 ② 실행 및 설치 진행 * 에러 발생 시, Log 확인 https://docs.microsoft.com/ko-kr/visualstudio/install/troubleshooting-installation-issues?view..

Coding/C & C++ 2020.01.02

폴링 / 롱 폴링 방식

■ 폴링 / 롱 폴링 방식 ㆍ 폴링 방식 - 특정 주기를 기준으로 반복적인 요청-응답이 진행된다. - 단점으로는 쓸모없는 요청-응답이 많기 때문에 트래픽이 낭비된다. - 사용하는 경우 1) 응답이 실시간이 아니어도 괜찮거나 3초 이상의 시간차가 발생해도 괜찮은 경우 2) 10명 이상의 상대와 채팅해야 하는 경우 3) 다른 서버 애플리케이션과 함께 동작해야 하는 경우 4) 반복 주기가 짧지 않은 경우 사용, 예시로 페이스북 웹 채팅에서 사용자 리스트 갱신주기는 1분 폴링 기법 사용 ㆍ 롱 폴링 방식 - 서버 측에서 접속을 열어두는 시간을 길게 하는 방식이다. - 서버에서 Connection을 가지고 있으며, 이벤트가 발생 시 응답을 보낸다. - 이벤트가 발생하면 바로 응답이 이루어지기 때문에 실시간성이 아..

Network 2019.11.06

AWS 클라우드

■ 클라우드 ㆍ클라우드 컴퓨팅이란 - 인터넷 기반 컴퓨팅의 일종으로 정보(각종 연산 및 처리)를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술 ㆍ클라우드의 기능 1) 프로그래밍 가능한 리소스 - 기존의 접근 방법으로는 가능하지 않은 방식으로 빠르게 인프라를 구축하고 해제할 수 있다. 2) 동적 기능 - 리소스에 액세스하여 매우 역동적으로 추진할 수 있다. 처리량 또는 컴퓨팅 파워를 늘릴 수 있다. 3) 종량 과금제 - 클라우드 컴퓨팅은 사용량에 따라 비용을 지불한다. ㆍAWS 클라우드의 장점 1) 자본 비용을 가변 비용으로 대체 - 데이터 센터와 서버에 투자 -> 컴퓨팅 리소스를 사용할 때만, 사용한 만큼만 리소스를 지불 2) 규모의 경제로 얻게 되는 이점 - 더 높은 규모의 경제를 ..

Cloud 2019.10.24

Login Shell

Shell 목록 - /etc/shells 확인 가능 • /bin/sh • /bin/bash • /usr/bin/sh • /usr/bin/bash • /bin/tcsh • /bin/csh Login shell - 사용자가 로그인 했을 때 적용되는 Shell을 의미한다. 로그인은 계정과 암호를 입력해서 Shell을 실행하는 것으로 SSH 접속하거나 로컬에서 GUI를 통해 Shell을 실행하는 경우가 있다. - 로그인할 때, 적용되는 스크립트 파일 • /etc/profile, ~/.profile: shell이 bash가 아니어도 로그인하면 로드되어 적용된다. • ~/.bash_profile, ~/.bash_login: bash shell로 로그인되었을 경우만 적용된다. => /etc/profile 만 전체 사..

카테고리 없음 2019.09.25

Git 사용 방법

■ Git - 분산 버전 관리 시스템(VCS, Version Control System) ■ 개념 * 참고 : https://milooy.wordpress.com/2017/06/21/working-together-with-github-tutorial/ • Clone: 저장소 복제하기 • Pull: 개발한 코드를 받아온다. • Add: 변경 사항을 Index에 저장 • Commit: Index에 있는 사항들을 Local Repository에 저장한다. git commit -m "fix bug" • Push: Commit을 원격 저장소에 Upload 한다. • Branch: 한 저장소에서 다른 개발자와 같이 작업할 때 사용, Commit이 해당 Branch를 기준으로 생기게 된다. => 같이 곳에서 작업을 ..

Tool/Git 2019.09.19