글
[Nginx-C++로 서버 구축을 해보자] Nginx 간단 원리 확인 [1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
간단한 프로젝트 진행 중.... (https://github.com/warguss/CommonServer) NginX란? (영어 참 지옥이네요...) 하나 하나 풀어서 확인해 보겠습니다. Controlling NGINX Processes at Runtime - Master and Worker Processes = 주인 그리고 하인 수행... [Master-Worker?] = Master 스레드가 요청을 받아서, Worker 스레드에 나눠주는 개념 (프로세스로도 가능) (Worker 스레드는 기본적으로 스레드 풀로 구성) = Master가 모든 것을 관장 하신다고 보면 될거 같습니다. - 상세 = 공식 문서입니다. 전 영어 잘몰라서 번역기로 해보겠습니다... [요약하자면...] 1. Master Process와 하나 이상의 Worker Process존재 (캐싱 설정이 되어 있다면 메모리 or H/W 캐싱으로 처리가능 [무엇을?]) 2. Master Process는 conf 파일을 읽고, 지속적으로 Worker Process를 관리 3. 실제 요청 처리는 Worker Process가 처리 4. 요청에 대한 분배 처리는 OS-dependent(뭐지이거) 메카니즘으로 처리 5. worker process에 대한 갯수 설정은 nging.conf에서 하세요 (코어 갯수에 따라 자동적으로 조정되긴한다[진짠지...]) Controlling Nginx = Master Process 사용법 정도라서 넘어가겠습니다... 위 공식 문서는(https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#master-and-worker-processes) 입니다. 설정 파일들에 대한 자세한 설명들이 있지만, 이건 사용 방법 이라 판단 되기에 바로 설치로 넘어가도록 하겠습니다. ...
[EffectiveC++ 요약] 1장. C++에 왔으면 C++의 법을 따릅시다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
항목1. C++은 여러 언어의 연합체 = C = 객체 지향 개념의 C++ = 템플릿 = STL = 위 4가지로 구성 항목2. #define을 쓰려거든 const, enum inline을 떠올리자 Ex] #define TEST_Ratio 1.653 사용 시, 기호 테이블에 들어가지 않음 (Symbol Table) = 소스 -> 전처리기 -> 컴파일러 순으로 진행 시, = TEST -> 1.653으로 바꿔버려 어디에 오류가 있는지 찾기 힘듬 (사족) 컴파일 에러를 말하는지, Logic 에러를 말하는지 모르겠네 = TEST_Ratio가 사용된 만큼 메모리가 사용 (TEST_Ratio -> 1.653으로 바꾸기에, TEST_Ratio 등장 횟수 만큼 리소스 사용 = 매크로 대신 상수를 쓰는 방법으로 대체 (const double TestRatio = 1.653) = 상수 포인터 정의하는 경우 주의 사항 = char* 형식 문자열 상수 정의시 , ptr과 value까지 const로 선언하는 것이 보통 Ex] const char* const AuthorName = "Test Author"; -> const char* (Ptr에 대한 Const) -> const AuthorName (Value에 대한 Const) char* 보단 std::string을 쓰는것이 좋다 const std::string AuthorName("Test Author"); 항목2-1. 클래스 상수 정의 Ex] class Player{ private: static const int NumTurns = 5; //상수 선언 ... }; (사족) numTurns는 객체가 사용되기 이전에 PreProcess 단계에서 만들어지기에 static이 필요할것으로 보인다. (미리 메모리에 올라가 있어야하니...) = NumTurns는 선언 된 것, 정의가 아니다. (...
[프로젝트 RTS] 게임서버를 만들어보자 [1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
최근 회사 일만으로 개발 실력 향상에 부족한 거 같아 게임을 만들어보자라는 계획을 잡고 후배와 진행중입니다.. (유니티 Client Unix C++ 서버 ) 목표로는 웜즈와 비슷한 UI로 Real Time 대전 액션 게임...인데 현실은... ... 어쩃든! 현재는 로그인/로그아웃만 구현이 되어있습니다. 이제 이동 및 이벤트에 대해 처리해야하는데, 갈길이 머네요 ㅎㅎ... 게임 서버 아키텍쳐에 대해서도 고민이 되고 구현 방식에도 참 다른점을 많이 느꼈습니다. (특히 protobuf가 지옥이었습니다..) 또, real time 서버에서는 구역화를 나누는게 어렵더군요 (전체 유저에게 이벤트 정보를 주기보다 구역을 나눠 근처에 있는 유저에게만 주는?) 현재 위 이슈에서 막혀있습니다... 좀더 노력을 해봐야겠네요 로그인 까지의 코드는 해당 github에 있습니다. ( https://github.com/warguss/ProjectRTS ) 추가로 읽으면 좋을 것
[취업] Kakao 코딩 테스트 문제[3]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
다음 문제는 캐시와 LRU와 관련된 문제입니다. [문제] 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 입력 형식 - 캐시 크기(cacheSize)와 도시이름 배열(cities)을 입력받는다. - cacheSize는 정수이며, 범위는 0 ≦ cacheSize ≦ 30 이다. - cities는 도시 이름으로 이뤄진 문자열 배열로, 최대 도시 수는 100,000개이다. - 각 도시 이름은 공백, 숫자, 특수문자 등이 없는 영문자로 구성되며, 대소문자 구분을 하지 않는다. 도시 이름은 최대 20자로 이루어져 있다. 출력 형식 [풀이] 이 문제의 경우 LRU(Least Recently Used)알고리즘을 이해하고 있냐를 묻는 문제입니다. LRU는 큐 + cache hit(우선순위)를 섞으신거라 보면되는데, 캐쉬가 가득 찼을 경우, 1. cache hit가 가장 낮은 것 검사 2. 만약 동일 hit 갯수가 있다면, 먼저 들어온 놈이 나가게 되는 형식입니다. LRU에 대해 일단 위 예제로 수행을 한다면.. 밑 케이스 의 출력은 50이고, 캐쉬 크기는 3입니다. (“Jeju”, “Pangyo”, ...
[취업] Kakao 코딩 테스트 문제[2]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
2번째 문제를 한번 풀어보았습니다...! 점수판 계산 문제이며, 대게 파싱에 대한 문제인것 같습니다. 다음은 문제입니다. 2. 다트 게임 (난이도: 하) 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. - 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. - 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수^1 , 점수^2 , 점수^3 )으로 계산된다. - 옵션으로 스타상(*) , 아차상( # )이 존재하며 스타상( * ) 당첨 시 해당 점수와 바로 전에 얻은 점수를 각 2배로 만든다. 아차상(#) 당첨 시 해당 점수는 마이너스된다. - 스타상( * )은 첫 번째 기회에서도 나올 수 있다. 이 경우 첫 번째 스타상( * )의 점수만 2배가 된다. (예제 4번 참고) - 스타상( * )의 효과는 다른 스타상( * )의 효과와 중첩될 수 있다. 이 경우 중첩된 스타상(*) 점수는 4배가 된다. (예제 4번 참고) - 스타상( * )의 효과는 아차상( # )의 효과와 중첩될 수 있다. 이 경우 중첩된 아차상(#)의 점수는 -2배가 된다. (예제 5번 참고) - Single(S), Double(D), Triple(T)은 점수마다 하나씩 존재한다. - 스타상( * ), 아차상( # )은 점수마다 둘 중 하나만 존재할 수 있으며, 존재하지 않을 수도 있다. - 0 ~ 10의 정수와 문자 S, D, T, *, #로 구성된 문자열이 입력될 시 총점수를 반환하는 함수를 작성하라. 입력 형식 ...
[취업] Kakao 코딩 테스트 문제 [1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
카카오 코딩테스트를 풀어보자! 한번 풀어보는 것에 대해 많은 도움이 될 것 같아 포스팅 해보려합니다. 저는 단순 풀어보는데에 의의를 두고 있기에, 더 좋은 방법이 있다면 공유 부탁드려요 문제를 사이트에서 직접 풀어보지 않아. 처음부터 끝까지 구현하긴 했는데... Solution에 대한 함수만 짜면 된다는 얘기를 들은 거 같아, 혹시 아신다면 공유 부탁드릴게요 우선 문제에 대한 설명입니다. ( http://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/ ) 문제 1에 대해서 풀어보겠습니다...! 문제를 푼 환경은 Linux(Centos) C++로 풀었습니다. 1. 비밀 지도(난이도: 하) 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 1. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 “공백”(“ “) 또는 “벽”(“#”) 두 종류로 이루어져 있다. 2. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 “지도 1”과 “지도 2”라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. 3. “지도 1”과 “지도 2”는 각각 정수 배열로 암호화되어 있다. 4. 암호화된 배열은 지도의 각 가로줄에서 벽 부분을 1, 공백 부분을 0으로 부호화했을 때 얻어지는 이진수에 해당하는 값의 배열이다. 입력 형식 = 입력으로 지도의 한 변 크기 n 과 2개의 정수 배열 arr1, arr2가 들어온다. - 1 ≦ n ≦ 16 -...
[Linux/CentOS/ProtoBuf] Centos - Protobuf 연동[echo 서버][2]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
아래 포스팅에서의 작업은 다음과 같습니다. 1. *.proto 생성방법 2. 간단한 Echo 서버 및 Makefile 작성 3. 통신 테스트 1. *.proto 생성방법 ProtoBuf 통신을 위해서는 *.proto , *.pb 관련 파일을 생성해야 합니다. 이게 무엇인가하면, ProtoBuffer는 객체를 byte화 시키고(Serialize) Client쪽에서도 byte를 객체로(DeSerialize) 변환을 진행합니다. (통신에는 byte stream으로만 통신하기 때문에) [Serialize] [DeSerialize] 즉, Protocol과 같은 역활을 진행하기 때문에, Client - Server간에 Protocol에 해당하는 명세서를 작성한다고 생각하시면 편할것 같습니다. 그럼 이거를 수동으로 만드냐? 그건 아닙니다. ProtoBuffer에 프로그램이 존재하는데, 만드는 방법은 다음과 같습니다. protoc 프로그램을 통해, 정의된 *.proto를 *.pb로 생성하는 역활을 진행합니다. protoc 실행방법은 아래와 같습니다. (경로 = protobuf 메인/src/protoc ) protoc -I=../../../ProjectRTS/ClientRoot/proto --csharp_out=../../../ProjectRTS/ClientRoot/proto ../../../ProjectRTS/ClientRoot/proto/addressbook.proto -I에는 *.proto가 있는 경로 output에는 *.pb로 생성 될 경로 그 뒤의 경로는 어느 *.proto를 바꿀지 정의합니다. 해당 명령어는 C#에 해당하는 건데, c++의 경우는 --csharp_out을 단순 --cpp_out으로 변환하면 됩니다. 해당 명령을 진행하면 어떻게 되느냐? /* 해당 정의된 Package들이 ...
[C/C++] Dangling Pointer란 무엇일까?
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댕글링 포인터(Dangling Pointer) 란 무엇일까? 막상 이름만 들었을 땐 귀엽지만, 잘못하면 문제를 발생시키기 쉬운 녀석이다. 원인은 다음과 같다. 1. 동적 할당(힙에 할당) 된 메모리가 존재. 2. free or delete를 통해 삭제 3. 삭제된 메모리를 가르키고 있는 상태. 코드 상 예를 들자면 다음과 같다. /* 할당 */ char *str = (char)malloc(sizeof(char) * 4); strcpy(str, "test"); /* str 작업...*/ printf("str[%s]\n", str); /* 해제 */ free(str); /* str 재사용 */ if ( str ) { printf("%p str %p is Not Null [%s]\n", &str, *str, str); } /* 기대값으로, str이 가르키는 값은 해제되었기에 if문을 타지 않겠지? */ /* 허나 수행해버리고 종료되어버린다. */ --- 무슨 말인고...? 1. A 할당 = A에 대한 문자열 첫번째에 대한 주소값을 가진다. 2. A 해제 = A에 대해 주소값을 여전히 가진다. 이 과정에서 NULL로 초기화 해주는 소스코드가 들어가야한다. /* 할당 */ char *str = (char)malloc(sizeof(char) * 4); char *ptr = str; /* str 작업...*/ /* 해제 */ free(str); str = NULL; /* 해제 후엔 꼭 가르키는 주소값(포인터)을 Null로 초기화를 하자 */ /* 재사용 */ if ( str ) { printf("%p str %p is Not Null [%s]\n", &str, *str, str); } 댕글링 포인터가 많아지면 디버깅이 어려워지기에 잘 확인하여야한다. 다음은 다른 포인터 변수에 넣는 경우...
[Linux/CentOS/ProtoBuf] Centos - Protobuf 연동[echo 서버][1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
https://github.com/google/protobuf에서 clone을 받습니다. $ git clone https://github.com/google/protobuf.git 매뉴얼은 protobuf폴더 내, src/README.md 에 C++용 가이드가 있습니다. 영어로 되어 있으며 utunto 기준으로 설명을 합니다. CentOS로 풀어서 가이드로 해보면 설치 전 필요 Tool은 다음과 같습니다. 1. autoconf , $ yum install -y autoconf 2. automake , $ yum install -y automake 3. libtool , $ yum install -y libtool 4. curl , $ yum install -y curl (gmock을 다운받기 위한 용도) 5. g++ , $ yum install -y gcc-c++ 6. unzip , $ yum install -y unzip 그 다음 protobuf가 clone된 메인에서 $ ./autogen.sh 를 실행합니다. 그 이후 $ (sudo) ./configure [저의 경우는 root유저로 ./configure로 했을 때, configure: error: C++ compiler cannot create executables 가 발생하였고, sudo 를 붙이니 해결되었습니다.(가이드는 sudo없음)] $ make $ make check $ sudo make install $ sudo /sbin/ldconfig // Library를 unit library Cache에 적재 이제 이 Library와 Include들을 상대적이게 할 것 인지, 절대적으로 /usr/경로에 넣을 것인지 를 선택합니다. 저의 경우는 상대적으로 작업을 하였는데, 이유는 git에 올렸을 때, clone시 protobuf 설치 없이 가능하도록 하기 위해서 였습니다. 우선 필요 include...
[Unix/C/C플플] 인클루드 꺽쇠와 따옴표차이
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
꺽쇠와 따옴표의 차이 1. Standard Library Header를 쓰는가? <- 꺽쇠 2. User Defined Header를 쓰는가? <- 따옴표 이렇게 쓰는것이 일반적입니다. 왜 그럴까요? #include <stdio.h>를 예로 든다면 컴파일러가 모든 유저가 참고 가능한 /usr/include 에서 헤더를 찾고 종료합니다. [모든 유저가 include할 수 있는 헤더] 그리고 stdio.h.는 /usr/include 내부에 존재합니다. 하지만 User Defined Header의 경우 /usr/include에 파일이 없기에 빌드에러를 내뿜게 됩니다. 그렇다면 꺽쇠를 사용한 경우는 어떨까요 1. User가 정의한 헤더 경로를 먼저 찾는다. 즉 -I../include 와 같이 상대 혹은 절대경로의 유저가 정의한 경로를 먼저 참고합니다. 2. /usr/include 쪽에서 헤더를 찾습니다. Ex, "" -> <>로 바뀐다고 생각하시면 됩니다. 그 다음 /usr/include에서 헤더를 찾습니다. 이런 차이가 발생하기에, User정의 헤더라면 따옴표를 사용하는 것이 좋습니다.
[Linux/CentOS] git, bash prompt , vim diff수정
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
prompt에서 git 정보를 보기 위한 수정입니다. $ vi ~/.bash_profile parse_git_branch() { git branch 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } export PS1="[\u@\H \[\033[32m\]\W\[\033[00m\]]\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ " // 위 내용 추가 $ source ~/.bash_profile 을 통해 적용 다음과 같이 출력됩니다. 아래경우는 config 수정하여 vim diff를 출력하는 부분입니다. git config --global diff.tool vimdiff git config --global difftool.prompt false git config --global alias.d difftool 저는 색깔을 vimrc에 이렇게 입혀놓고 적용하였습니다. hi DiffDelete ctermfg=Red ctermbg=6 hi DiffAdd cterm=bold ctermbg=6 hi DiffChange cterm=bold ctermbg=6 아래는 결과물입니다.
[Linux/CentOS] Cannot find a valid baseurl for repo: base/7/x86_64
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
CentOS 처음 설치 시, Putty연결을 시도하기 전에, ssh를 설치하는데요, 이때, iptables가 없다면 제목과 같은 오류가 발생합니다. Linux/Centos,Cannot find a valid baseurl for repo: base/7/x86_64, 다음과 같은 작업을 처리하여 수행가능합니다. $ dhclient $ systemctl stop firewalld $ systemctl mask firewalld $ yum install iptables-services $ systemctl enable iptables $ systemctl start iptables $ service iptables save 이후 ssh설치 및 작업을 수행하시면 됩니다.
[C/C++] HTTP Server 요청 처리 [1] (Linux LineParser [readline])
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
HTTP는 기본적인 웹을 위한 프로토콜입니다. [*프로토콜 = 일종의 통신 규약] [ EX) 내가 A-A1-A2 라고 보낼 테니 처리해줘 라는 개념 ] Client -> HTTP 규약의 요청(Request) -> Server Client <- HTTP 규약의 응답(Response) <- Server 을 주고 받는 것이 기본 구조입니다. 엄청 자세한 것은 따로 책이나 문서를 찾아 보시는 것이 좋습니다. 그럼 요청을 어떤 구조로 보내야 기본적인 웹사이트에서 응답을 받을 수 있을까? 가 문제가 됩니다. 기본적인 포맷은 다음과 같습니다. EX] Naver 예 GET / HTTP/1.1\r\n Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n Accept-Encoding:gzip, deflate, sdch\r\n Accept-Language:ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4\r\n Cache-Control:max-age=0\r\n Connection:keep-alive\r\n Cookie:npic=qkG66SYW2jtZBlXtH/Wije5Ykpf3CQP+5H+oH3ktJhsKKMuY5MFRbu1UaznPikHHCA==; NNB=22YFY2PRRCLFQ; ASID=7c3565980000015a18ebb3aa00000059; nx_ssl=2; PM_CK_rcode=04190121\r\n Host:www.naver.com\r\n Upgrade-Insecure-Requests:1\r\n User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36\r\n 다음과 같은 포맷을 전달 할 때 다음의 ...
제주도 자전거 여행 계획[17.04.29 ~ 17.05.03]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이번 징검 다리 휴가를 맞아... 휴가하루를 내고 제주도 자전거 여행을 가려합니다. 계획이래봣자 거창한건 없고 경로 , 근처 게스트 하우스, 자전거 대여? 정도로 계획짜려합니다. (완주하면 남다른 하체를 가지는 건지...?) [그림 출처](http://m.post.naver.com/viewer/postView.nhnvolumeNo=4272048&memberNo=472213&vType=VERTICAL} 04.29 (토) 20:30 제주 국제공항 도착 예매를 늦게해서 비행기 표가 저녁시간대 밖에 없어... 우선 도착 후, 근처 게스트하우스에서 하루를 묵고 다음날 부터 시작합니다. 근처 게스트하우스가 두개인데, 어느쪽이 공항에서 가장 가까울지 모르겠습니다. 미라클 게스트하우스 같은 경우, 평이 그렇게 좋지는 않고 B: 고추잠자리게스트하우스 인데, 연예인 오재현씨가 운영한다고 합니다. 남: 6 , 여: 6 예약만 받아서 제가 갈 때, 자리가 있을지 모르겠네요 그리고 먹방파티라고하는 파티를 하는데[필수랍니다] (오후 7 ~ 새벽 1시) 도착시간이 20:30 이라서 받아 줄지 모르겠네요. 일단은 두개의 게스트하우스를 선정합니다. 04.30 (일) 08:00 일어나 준비를 하고 대여를 하러갑니다. 반시계 방향으로 돌 예정이라 가장 가까우면서, 인터넷상 가격이 명시 된 곳으로 찾습니다. (필수 짐받이) 일단 기본적으로 준비할 사항 [스포츠 안경, 팔토시 , 자전거용 목 쿨토시, 다리토시(레깅스) , 고글, 장갑, 자전거 라이트, 우비 정도는 필요합니다] 헬멧 , 자전거, 로프, 스마트폰 거치대 정도는 대여점에서 빌릴 수 있구요 [다른 것도 빌릴 수 있긴 하지만, 가서 고르기에는 좀 애매해서..] 이후 일정...
이 블로그의 인기 게시물
윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석
## 1. 배경 2024년 12월 3일, 윤석열 대통령이 국가 비상사태를 이유로 계엄령을 선포하였습니다. 계엄령은 전시나 사변 등 국가의 안녕과 공공질서가 심각하게 위협받을 때 대통령이 군사적 권한을 통해 이를 방어하고 유지하기 위해 발효하는 특별한 조치입니다. 이러한 조치는 국내 정치·경제 전반에 큰 영향을 미치며, 특히 주식시장에서는 관련 기업들의 주가 변동이 예상됩니다. 24.12.03 오전 5시 계엄 해제로 아래 관련주 추천 - [윤석열 계엄령 해제! 이재명 관련주 급등? 투자자 필독 전략](https://warguss.blogspot.com/2024/12/yoon-martial-law-lift-lee-jaemyung-stocks.html) --- ## 2. 기업 및 관련주 ### 2-1 식품 관련주 - 계엄령이 선포되면 사회적 불안정성이 증가할 수 있으며, 이에 따라 생필품 및 음식 관련 주식이 단기적으로 강세를 보일 가능성이 있습니다. #### 1. CJ제일제당 (KOSPI: 097950) [시가총액: 약 10조 원] - **주요 산업**: 식품 및 생필품 제조 - **관련주 근거**: 국가적 위기 상황에서 식료품 수요가 증가하며, 즉석밥, 가공식품 등의 판매가 확대될 가능성이 있습니다. - **주가정보**: [네이버 차트](https://finance.naver.com/item/main.nhn?code=097950) #### 2. 오뚜기 (KOSPI: 007310) [시가총액: 약 3조 원] - **주요 산업**: 식품 제조 및 유통 - **관련주 근거**: 라면, 즉석식품 등 비축 가능한 식품 수요가 증가하며, 매출 상승이 기대됩니다. - **주가정보**: [네이버 차트](https://finance.naver.com/item/main.nhn?code=007310) #### 3. 대상 (KOSPI: 001680) [시가총액: 약 2조 원] - **주요 산업**: 식품 제조 및 발효제품 - **관련주 근거**: 계엄...
대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석
--- ## 1. 배경 2024년 12월 3일, 윤석열 대통령이 비상계엄령을 선포했으나, 짧은 시간 내에 이를 해제하면서 정치적 긴장감이 커졌습니다. 이에 따라 대규모 촛불시위와 같은 사회적 움직임이 예상되며, 통신과 관련된 기업 및 촛불 제조와 연관된 산업에 관심이 모이고 있습니다. --- ## 2. 기업 및 관련주 대규모 시위 및 관련 활동으로 인해 통신, 미디어, 그리고 촛불 제조와 관련된 기업들이 단기적인 수혜를 볼 것으로 예상됩니다. ### 2-1. 통신 관련주 #### 1. **KT (030200) [약 12조 원]** - **주요 산업:** 통신 - **관련주 근거:** 시위 생중계 및 대규모 통신 트래픽 증가로 매출 증대 가능성 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code=030200) #### 2. **SK텔레콤 (017670) [약 12조 원]** - **주요 산업:** 통신 - **관련주 근거:** 대규모 데이터 사용 증가로 인한 수익 상승 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code=017670) #### 3. **LG유플러스 (KOSPI, 032640) [약 4.9조 원]** - **주요 산업:** 통신 - **관련주 근거:** 촛불시위로 인한 데이터 및 음성 서비스 사용 증가 예상 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code=032640) --- ### 2-2. 방송 관련주 #### 1. **SBS (034120) [약 2,924억 원]** - **주요 산업:** 방송 및 미디어 콘텐츠 제작 - **관련주 근거:** 시위 관련 특집 방송 및 실시간 보도에 따른 광고 수익 증가 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code...
키움 OPEN API MFC 개발 (1)
* 키움 API 개발 - visual studio 2019 , MFC * Visual Studio Set - 새 프로젝트 만들기 / MFC 검색 - 다음 이후, MFC 설정에서 어플리케이션 종류 변경 (대화 상자 기반) * 기본 적용 Flow ( https://www.kiwoom.com/nkw.templateFrameSet.do?m=m1408000000 ) = 우선 생략하고, Step 2 설치 = Step 3 자료실/ KhOpenApiTest_2.71.zip 다운로드 * Step 2 설치 후, 설치 경로의 OpenAPI 디렉토리 찾기 1. 파일 찾기 2. KHOpenAPI.ocx 를 프로젝트 소스에 복사 * Step 3 자료실/다운로드 1. khOpenApiTest_2.71.zip 다운/압축 풀고, 2. KHOpenAPI.cpp/h KHOpenAPICtrl.cpp/h 프로젝트 소스에 복사 * 내부 소스에 다음추가 header에 class 생성 cpp에 다음 소스 추가 * 리소스 뷰 > IDD_TRADINGAPP_DIALOG 1. 확인 우클릭 > Active X 컨트롤 삽입 2. KHOpenAPI Control 적용 하면 위 화면처럼 적용 이후 실행 시 다음 화면 이후 매수/매도 적용