본문 바로가기

프로그래밍 관련119

리눅스 gcc에 대하여 개요 사용방법 옵션들 정의: gcc는 리눅스에서 사용하는 컴파일러의 한 종류이다. 가장 널리 알려지고 사용되는 컴파일러이다. 사용방법 : 비쥬얼스튜디오에서 프로젝트를 하나만들어서 c코드를 만든다고 생각해보자 test.c 라는 파일을 만들고 코드를 작성한다. 그러고나서 빌드를 누르면 하나의 exe 파일이 생성된다. 리눅스에서도 똑같은 test.c 라는 파일을 만든다. 근데 리눅스에는 비쥬얼스튜디오가 없다. 이 c파일을 어떻게 빌드해서 실행파일을 만들어낼까? 참고로 리눅스에서는 실행파일 확장자가 .exe가 아니라 .out이 나온다. 이때 사용하는게 gcc 컴파일러다. test.c라는 소스코드가 위치한 디렉토리에서 cmd를 연다. 그리고나서 다음과 같이 입력한다 gcc test.c 이렇게 입력하고 엔터를 누르면 a.out이라는 실.. 2021. 4. 19.
VS Code. Extension Offline 설치 다운로드 받은 vsix 파일을 설치하려는 Offline 컴퓨터로 이동Offline 컴퓨터에서 extension 설치탭으로 이동 2021. 4. 19.
REST API. 그리고 JWT 토큰 & 인증에 대하여 REST API를 이용하여, 클라이언트가 서버에게 데이터전송을 요청한다는 것을 알게되었다. 그런데 만약 회원의 전화번호, 집주소 이런 정보를 REST API 를 사용하여 요청하면 어떻게 될까? 공개된 REST API를 사용해서 누구나 다른 사람의 개인정보를 Return 받을 수 있다면, 이는 문제가 된다. 따라서, 인증을 거쳐서 인증이 통과된 사람만 특정 데이터를 받을 수 있도록 하는 보안절차가 필요하다. =====토큰? 이러한 보안절차 중에 사용되는 방법 중 하나가 바로 JWT 토큰을 이용한 인증이다. 토큰이라는 것은 '어떤 데이터' 인데, 인증의 증거물로 사용되는 데이터 라고 할 수 있다. (비밀번호 같은 느낌이라고 해야되나?) 예시를 들어보자. 회원의 전화번호를 서버에게 요청하는 Case를 생각해보.. 2021. 4. 15.
REST API에 대하여(Feat. 업비트 API) 업비트 거래소를 이용하여, 코인 자동 매매 프로그램을 만들어보자그럴려면 REST API의 개념에 대해 알아야한다. 일단 REST API가 뭔지, 구체적인 예시를 보자. 웹상에서 서로 간에 데이터를 주고 받으려면, 클라이언트(수신자)가 서버(송신자)에게 이런이런 정보를 주세요~ 하고 요청을 해야 서버가 클라이언트에게 데이터를 줄 것이다. 그런데, 그 요청을 어떻게 할건지를 정해놔야 서버와 클라이언트가 서로 소통을 할 수 있을것이다. 이 때, 클라이언트가 서버에게 요청하는 방법(형식?)을 표준화 해놓은걸 REST API라고 한다. 자잘한 설명보다 구체적인 예시를 보이는게 이해가 빠를 것 같다. 위 그림은 가상화폐 거래소인 업비트에서 제공하는 API에 대한 설명을 제공하는 페이지이다.위 그림을 보면 "마켓코드.. 2021. 4. 14.
Priority Queue(Heap) 우선순위 큐라는것이 있다. 배열.링크드리스트 같이 같은 타입의 변수 여러개를 갖고 있는 자료구조이다. 그런데 이 Queue는 항상 top 값이 원소중에 가장 작은값 or 큰값을 나타내는게 특징이다. 이러한 자료구조를 Heap 이라고하고 stl에서는 priority queue가 이런 기능을 제공함. 근데 동적자료할당에서 얘기하는 heap이랑은 관계없으니 헷갈리지말자 1. #include 2.priority_queue abc; 이렇게하면 큐인데 톱은 항상 제일 큰 놈 리턴 , greater 2020. 5. 22.
C++ map 참고하면 좋은 블로그 https://sarah950716.tistory.com/m/6 map 데이터타입은배열의 일종인데, 인덱스가 숫자가 아니라는 점이 배열과의 차이점이다.예시를 들어 설명하겠다. 1. #include 필요 2. 개념 예시map abc;abc["test1"]=5;abc["test2"]=3; 위의 배열 abc는 멤버변수가 2개인데, 접근하는 인덱스가test1, test2가 된다. 일반적으로 배열,벡터 등은 인덱스가 오직 정수인 것과 구분되는 개념이다. 3.멤버 추가하는 방법map.insert( {"test3", 12} );요런식으로도 추가가 가능하다. 앞서 말했듯 이런 명령말고 그냥 map["test3"] = 12; 이런식으로 해도 효과는 같다 4. 학생 이름 별로 학번,전화번호 정보를 갖.. 2020. 5. 2.
C++ stack 1.#include 필요 2. stack abc; 3. stack.push(5); 4. stack.top() 스택의 top값 리턴 5.stack.pop() 마지막원소 삭제 6. size() 7.empty 8.erase 2020. 5. 1.
c++ sort 1. #include 필요 2. vector 에서 사용 vector abc; sort(abc.begin(), abc.end() ) ; 하면 기본적으로 오름차순으로 정렬됨 ex. 1 2 3 4 5... 3. 배열에서 사용 .int arr[10]; sort(arr,arr+10); 하면 배열 정렬됨. 4. bool compare(int a, int b) { return a > b;} sort(xx , xx , compare); 이렇게 쓰면 내림차순 정렬가능. 5. compare 함수를 적절하게 쓰면 여러가지 데이터타입들을 원하는 규칙으로 정렬가능. ex)string vector abc; bool compare(string a , string b){ 여기서 true로 리턴하는 조건으로 정렬하게됨 return a.. 2020. 4. 29.
C++ string c언어에서 문자열을 사용할 때, char 형태의 배열에 담거나혹은 char* 형태의 포인터 상수를 사용했었다. 그리고 c언어에서 문자열은 마지막에 \0 이 들어가는것으로 구분했었다. 그리고 c언어에서 string과 관련된 여러가지 작업을 하기 위해서 표준 라이브러리를 사용했는데,strcpy, strlen 등의 함수가 그것이다. 한편, C++ 에는 좀 더 문자열과 관련하여 사용자가 다루기 쉽도록 string이라는 데이터타입이 추가되었음. 1) #include 을 호출해서 사용해야 한다. 2) string abc; //이런식으로 선언해서 쓸 수 있다. abc="this is string"; // 이런식으로 abc라는 string 변수에 문자열 대입이 가능하다. abc="change content" // 이런.. 2020. 4. 26.