글
[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 일어나 준비를 하고 대여를 하러갑니다. 반시계 방향으로 돌 예정이라 가장 가까우면서, 인터넷상 가격이 명시 된 곳으로 찾습니다. (필수 짐받이) 일단 기본적으로 준비할 사항 [스포츠 안경, 팔토시 , 자전거용 목 쿨토시, 다리토시(레깅스) , 고글, 장갑, 자전거 라이트, 우비 정도는 필요합니다] 헬멧 , 자전거, 로프, 스마트폰 거치대 정도는 대여점에서 빌릴 수 있구요 [다른 것도 빌릴 수 있긴 하지만, 가서 고르기에는 좀 애매해서..] 이후 일정...
[C&C++] fseek , ftell, lseek ,사용 정리
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
매번 찾아보는 게 귀찮아서 정리. 함수 int fseek(FILE * stream, long offset, int whence) 헤더 stdio.h 인자 정보 FILE *stream (파일 포인터) long offset (이동할 크기) int whence (어디서 부터 이동할지의 위치) whence의 경우, 정의된 값 혹은 상수값 사용 가능 SEEK_SET = 파일 시작 부 SEEK_CUR = 현재 파일 포인터 위치 SEEK_END = 파일 끝 반환 값 0(성공) or -1(실패) 함수 long ftell(FILE * fp) 헤더 stdio.h 인자 정보 FILE *fp (파일 포인터) 반환 값 현재 파일포인터의 위치(성공) , -1(에러) fseek + ftell을 사용하면 파일 사이즈를 구할 수 있다. fseek(fp, 0, SEEK_END); int file_size = ftell(fp); fseek(fp, 0, SEEK_SET); /* do File Work */ 함수 off_t lseek(int file_des, off_t offset, int whence) (Linux 기반) 헤더 unistd.h 인자 정보 int file_des (파일 디스크립터) off_t offset (이동할 크기) int whence (어디서 부터 이동할지의 위치) 반환 값 현재 파일포인터의 위치(성공) , -1(에러) fseek와 차이점은 FILE 포인터를 쓰냐 디스크립터를 쓰냐의 차이. 파일 Size를 구할 때, int file_size = lseek (fd , 0 , SEEK_END); /* do File Work */ 로 사용 [출처] http://forum.falinux.com/zbxe/index.php?do...
[네트워크] Quality Of Service 개념 [1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Quality Of Service = 특정 네트워크 대역폭을 보장하는 것 정도로 정의할 수 있다. Ex] - 서버가 특정 사용자에 대해 대역폭 제어하도록 유도 하는 것 현재 기업들에서 사용하는 방법은 주로 사용량을 토대로 구분합니다. 일정 이상 사용하게 된다면, QoS를 적용하여 특정 수치의 대역폭만 사용하도록 유도하는 것이지요. 실시간으로 이것을 조절하는 기업은 못 본것 같습니다. 주로 쓰이는 QoS는 DiffServ / InterServ입니다. 1. DiffServ / InterServ 개념 및 모델 일단 결론 부터 말하면 스위치/라우터 계층에서 가능한 QoS이다. 즉, 라우터/스위치가 우선 전송을 하는 방식인데, App 레벨에서, Type of Service 라고 하는 필드에 표시만 하면 된다. IP 헤더 안, TOS 필드 마킹을 통해 전송 우선 순위를 스위치/라우터가 진행 하는 방식 InterServ의 경우 TOS 필드 중 3bit를 사용 하지만 DiffServ의 경우 TOS 필드 전체 사용 TOS 비트 위치에 따라 DS 필드 라고도 불린다. DiffServ에서는 TOS를 DSCP(DifferServ Code Point) 라고 부른다. 이를 바탕으로 동작하는 것을 PHB(Per-Hob-Behavior) , 홉 단위 동작 구분이라고 한다. 결론 부터 말하면, 대역폭 조절을 라우터 및 스위치에 맡겨버리는 형식 가장 오버헤드가 적은 걸로 알고 있다. 자세한 모델 및 알고리즘은 다음과 같다 InterServ RSVP = Reservation Protocol WFQ = 가중치 큐 장점으로 엄격한 QoS 보장 가능하며, 실시간 지원이 가능하다 (End-to-End 개념으로의 QoS) 단점으로 적용되는 스위치/라우터 모델 기준이 Ve...
[네트워크/Unix] 소켓 통신 개념
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Unix 소켓 통신의 개념을 함수 별로 정리해보려 합니다. --- 1. Application에서 Socket 함수 호출 시, Kernel을 통해 Socket 기술자가 생성됩니다. --- 2. Bind, IP 혹은 Port정보를 통해, 소켓 기술자와 Application을 연결합니다. --- 3. 이후 Listen을 호출하면 해당 소켓에 대한 Back log Queue, 연결 대기 큐가 생기게 됩니다. --- 4. Client 연결 요청에 따라, Backlog Queue 에 쌓이게 됩니다. --- 5. 이후 Backlog Queue에 쌓인 Client를 FIFO 로 가져오게됩니다. 여기까지가 unix 함수를 통해 알아본 소켓 내부 동작과정입니다. 아마 거의 모든 소켓프로그래밍이 이 과정을 거치리라 생각합니다. 추가로 읽으면 좋을 것
[Unix/Linux] Thread Pool 구현 [1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Thread Pool을 만들 일이 있어 포스팅 합니다. 일단 Event Driven 형식으로 Epoll Event가 오면, 작업을 시작하는데, Non-Block을 하려하지만 큰 파일 전송 상황을 가정하여 ThreadPool로 구현합니다. 구현을 위해서, thread 작업 클래스가 필요하며, 작업이 끝남을 알기위해, flag를 넣었습니다. 일단 기초 작업이며, 이것을 base로 작업하시면 요긴하실 것 같습니다. 우선적으로 threadPool로 사용할 클래스입니다. 작업 시 필요한 것을 class화 시키고, flag 또한 dataClass에 넣습니다. 작업이 끝남을 확인하기 위한 ch_flag Test입니다. StartService 시, false -> true로 바꾸고 do_work(thread 작업) 시 true -> false로 재변환 합니다. 그리고 endService() 에서 종료를 검사합니다. 다음은 실행 시 결과입니다. 이를 바탕으로 thread pool을 구현하겠습니다. 추가로 읽으면 좋을 것
[일상] 남산타워 여행기
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
10.02 (일) 개천절 기념으로 남산을 다녀왔습니다. 정자역에서 출발했는데, 1시간 넘게 걸리더군요... 갓다오니 녹초 서울 야경을 찍었습니다. 탁 트인 모습이 굉장히 좋더군요 비록 비는 왔지만... 안에 들어 갈 수 있는 건물입니다. 여기서 최상층 까지 갈수 있는데 비용은 만원정도 하더군요 (성인 기준) 입구 들어가는길 보이는 화면입니다 ㅎㅎ 되게 예쁘더군요 저도 여자친구가 생기면....ㅜ 자물쇠가 되게 많았습니다. 또한 다양한 국적의 사람들이 와서 신기하였죠 ㅎㅎ 탁 트인 남산. 한번쯤은 와보셔도 좋을 거 같네요 ㅎㅎ 순환번스 타면 금방오는거 같아요 ㅎㅎ
[Linux/Centos] Centos 설치, Putty 연동 하기
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
최근에 바빠서.. 따른 일을 준비 하는 바람에, 안드로이드 보다 Linux 관련 게시물을 업로드 하게 되었습니다. 일단 Centos와 Oracle Vitual Box를 설치 합니다. https://www.virtualbox.org/ 여기서 그냥 아무버전이나 받으시면 될 것같네요. 그 다음에 Centos dvd 버전을 다운 받습니다. http://isoredirect.centos.org/centos/6/isos/i386/ i386 버전인데, x86-x64 버전과는 틀립니다. 제 노트북이 OS windows 8.1, 64bix 인데, 버츄얼 박스에서 x86-x64 버전은 설치가 안되더군요. http://isoredirect.centos.org/centos/6/isos/i386/ 아마 다른 분들도 비슷하지 않을까..해서 올려둡니다. 그다음 새로 가상머신을 만듭니다. Linux - [Red-Hat 32bit] 로 설정하면 됩니다. 그 다음 설정에 들어가셔서 컨트롤러 가상 이미지 파일 iso 를 설정 해 준뒤 실행합니다. 그 다음, Putty 통신을 하려면 SSH와 Iptables를 셋팅해주어야 합니다. iptables는 방화벽 설정이고, SSH는 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜 을 가리킵니다. su 명령어를 통해 Root 계정으로 만듭니다. yum -y install openssh-server openssh-clients service sshd start 명령어를 통해 활성화 시킵니다. yum install iptables-service ...
[안드로이드] 기상청 중기예보 [1]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
중기예보 측정을 안드로이드 환경에서 진행 중 입니다. 하면 할수록 열받아서 하기 싫긴 하네요.. 문제점을 한번 나열 해보겠습니다. 1. 날씨 정보와 온도정보를 나눈 것 - 같은 날임에도 불구하고 Url 요청을 두번해야합니다. 2. 중기육상예보과 중기육상온도예보의 지역코드가 틀립니다. - 중기 육상은 그렇다 치더라도, 온도의 경우 이해할 수 없는 지역코드 - 해당 도시가 없는 코드는 따로 예외처리를 해주어야함 이렇게 애매하게 할거면 그냥 중기육상예보코드랑 동일하게 가는게 맞다고 생각합니다. 최소 도 단위까지는 구분을 지어야 하는데, 위 코드에 없는 도시는 따로 개발과정에서 예외처리를 일일이 해주어야합니다. 3. 중기예보 코드를 보시면 '강원도 영서' 와 '강원도 영동'에 대한 지역코드 존재 - 문서에는 강원도 영서, 영동을 나누는 기준이 없음 - 최소 위도, 경도의 기준값이라도 제시해 줘야 한다고 생각함 - 그게 아니라도, 어떤 도시들은 영동이고 어떤 도시는 영서인지는 포함되어야 할듯 4. 동네 예보의 경우 자기들만의 위도 경도 변환식을 사용 - 문서에 나와있긴 하지만 '왜 변환을 하지?'라는 생각이 듭니다.. 기상청 API를 사용하면서 느끼는 점은 개발자한테 예외에 대해 다 떠넘기는 거 같아서 불편하네요. 어쨋든 조만간 안드로이드 기반 중기예보에 대해 포스팅 하겠습니다. 추가로 읽으면 좋을 것
[안드로이드/자바] String.replaceAll을 이용한 숫자 추출
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
안드로이드에서 숫자만 추출해서 쓸 일이 있어서 따로 적어두려합니다. Java 환경에서는 모두 동작할 듯 싶습니다. public static int AfterDay(String data) { String mData = ""; mData = data.replaceAll("[^0-9]", ""); Log.i(TAG, TAG + " : " + mData); return Integer.valueOf(mData); } replaceAll(string1,string2) 함수를 통해, 값을 얻어냅니다. 원래 replaceAll 은 string1의 조건이 만족하는 string을 string2로 교체하는 역활입니다. replace같은 경우, 처음만 바꾸는 등의 여러 조건이 있지만, replaceAll은 문장 전체에 해당합니다. 위의 replaceAll("[^0-9]","")는 숫자를 제외한 String을 ""로 바꾸어 줍니다. 그리고 Integer.valueOf(String)을 통해 String -> int 형으로 값 변환을 합니다. 두가지 방법이 더 있는데, String clean3 = string1 . replaceAll ( "\\D" , "" ); String clean2 = string2 . replaceAll ( "[^\\d]" , "" ); 를 통해서도 추출이 가능합니다. 정규표현식으로 알고 있는데, 자세히는 모르겠네요, 다음에 포스팅 해야겠습니다.. 위의 그림은 Input 값 wf30을 30으로 바꾸어 추출한 결과입니다. (출처 : http://stackoverflow.com/questions/6...
[안드로이드] 기상청 중기예보 [0]
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
기상청 OpenApi를 써서 중기예보에 대해 만들고 있는데, 아니 대체왜 API를 이런식으로 구성 했는지 이해가 안된다. OpenWeather처럼 한 날짜에 정보를 넣을 수 있을 텐데 날씨정보 & 기온 정보를 얻을려면 두번의 api요청을 해야되고, (중기육상조회[ MiddleLandWeatherRequest ] , 중기기온조회[ getMiddleTemperatureRequest ] 두번) 심지어 10일 치 날씨라고 해놓고 현재부터 3일 뒤의 날씨를 알려준다. (오늘이 13일 이라면, 16일 날씨부터 23일 날씨까지 알려줌) 도대체 왜??? 그럼 다음날,다다음날은? 만들꺼면 제대로 만들었으면 하는 아쉬움만 남는다 중기만 그런게 아니고 동네예보도 문제가 많다. OpenWeather를 많이 쓰는 이유가 있는 것 같다. 추가로 읽으면 좋을 것
[안드로이드] SimpleDataFormat을 이용한 현재날짜, 시간 받아오기
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
시간을 따로 받아야 할 경우가 생겨 따로 함수로 구현하였습니다. 이를 통해, 년 월 일 시간 분 으로 쪼개어 사용하는 함수입니다. public ArrayList MakeSaveData() { SimpleDateFormat currentTime = new SimpleDateFormat("yyyy.MM.dd.HH.mm"); //SimpleDateFormat sdfNow = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss"); String time = currentTime.format(new Date(System.currentTimeMillis())); StringTokenizer mToken = new StringTokenizer(time,"."); ArrayList mTemp = new ArrayList<>(); while(mToken.hasMoreTokens()) { mTemp.add(mToken.nextToken()); } Log.i(TAG, "time print: " + time); for(int i = 0; i < mTemp.size(); i++) Log.i(TAG, "time print: " + mTemp.get(i)); return mTemp; } 로그를 통해 결과를 확인 해 보면, 다음과 같은 결과를 얻습니다. 시간의 경우 현재 휴대폰의 시간을 통해 얻습니다. 추가로 읽으면 좋을 것
[알고리즘] 3. 동적 계획법 개념
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
동적 계획법 이란, 동적 계획법(Dynamic Programming) , 줄여서 DP는 특정 범위까지의 값을 구하기 위해서 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계 기법이다. 조금 장난스럽게 말해서 답을 재활용하는거다. 앞에서 구했던 답을 뒤에서도 이용하는 것으로 볼 수있다. (출처 : 나무위키 - 동적계획법 https://namu.wiki/w/%EB%8F%99%EC%A0%81%20%EA%B3%84%ED%9A%8D%EB%B2%95?from=%EB%8F%99%EC%A0%81%EA%B3%84%ED%9A%8D%EB%B2%95) 이 말처럼 DP, 동적계획법은 완전 탐색에서 중복된 부분 문제를 한번만 계산 하기 위한 메모이제이션( Memoization) 이다. 메모이제이션이란, 같은 계산을 여러 번 해야 할 때, 한 번 계산한 결과를 메모리에 저장해 이후 동일한 계산 과정을 생략할 수 있게 하는 기법이다. (출처 : 나무위키 - 메모이제이션) https://namu.wiki/w/%EB%A9%94%EB%AA%A8%EC%9D%B4%EC%A0%9C%EC%9D%B4%EC%85%98 ) 보통 동적계획법 알고리즘 구현은, 1. 주어진 문제를 완전 탐색 이용 해결, 2. 중복된 부분 문제를 한 번만 계산하도록 메모이제이션 적용 두가지 방법으로 나뉜다. 이를 토대로 탐색을 통해 이전 값을 참고하는 것을 해 본다면, [취업] 삼성 SW후기 포스팅의 문제를 동적계획법으로 설계 해 보려 한다. 일단 문제는, Player 비행기가 끝까지 도달하였을 때, 코인의 최대값이 문제다 (자세히는 포스팅을 참조...) 보통 완전탐색으로 모든 경우의 수 탐색을 통해 해결할 수 있지만, 크기가 커지면 탐색하는데 시간 초과가 발생한다. 이를 해결하기위해 동적계획법을 쓴다면, ...
이 블로그의 인기 게시물
윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석
## 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조 원] - **주요 산업**: 식품 제조 및 발효제품 - **관련주 근거**: 계엄...
한국 핵무장 논의와 방위산업 관련주: 핵무기 개발 과정과 유망 종목 분석
한국의 독자적 핵무장 논의가 주요 이슈로 떠오르며 방위산업 관련 주식들이 주목받고 있습니다. 특히, 핵무기 및 방어 관련 기술력을 보유한 기업들이 관심을 끌고 있어 투자자들에게 큰 잠재적 수혜가 예상됩니다. 트럼프 전 미국 대통령의 재집권 가능성 등 외교적 변화는 이러한 방위산업 관련주를 더욱 부각시키고 있습니다. --- ### 핵무기 생산과정 요약 #### **핵연료 확보** : 고농축 우라늄-235 또는 플루토늄-239와 같은 핵분열 물질을 확보하는 과정입니다. - **우라늄 농축**: 우라늄-235의 비율을 약 90% 이상으로 높이는 과정입니다. - **플루토늄 생산**: 원자로에서 우라늄-238을 중성자로 포획하여 플루토늄을 생성하고 이를 화학적으로 분리합니다. #### **폭발 장치 개발** : 확보한 핵연료를 폭발할 수 있도록 설계된 장치입니다. - **충돌 방식 (Gun-type)**: 고농축 우라늄을 이용해 두 덩어리를 빠르게 결합시켜 핵분열을 유도합니다. - **내부 압축 방식 (Implosion-type)**: 고폭압력으로 플루토늄을 압축하여 임계 질량을 초과하도록 합니다. ####. **무기화 및 배치** - 폭발 장치를 무기 형태로 조립하여 배치 가능한 상태로 만드는 과정입니다. 미사일, 폭격기 등에 탑재될 수 있도록 설계합니다. --- ### 핵심적인 부분 가장 중요한 부분은 **핵연료 확보**와 **폭발 장치 개발**입니다. - **핵연료 확보**: 핵분열 물질 확보가 핵무기 개발의 필수 조건입니다. 우라늄 농축과 플루토늄 생산은 고도의 기술력을 요구하며, 보안과 국제적인 감시가 강화된 부분입니다. - **폭발 장치 개발**: 핵연료가 있어도 이를 효과적으로 폭발시키는 장치가 없다면 무기화가 불가능합니다. 압축 방식 등 폭발 장치 개발 기술이 핵무기의 폭발력과 신뢰성을 좌우하는 중요한 요소입니다. --- ### 핵연료 확보 관련 기업 - **한전원자력연료 (KEPCO NF)** :...
[로스트아크] 제작 효율 최적화 위한 영지 세팅
### 1. 대성공 확률 증가 vs. 제작 수수료 절감 - **대성공 확률 증가**: 대성공 확률이 2% 증가해도 실제 효과는 크지 않습니다. 예를 들어, 기본 대성공 확률 5%에 2% 증가를 적용해도 실질적인 효과는 0.1% 증가에 불과합니다. - **제작 수수료 절감**: 제작 수수료를 2% 절감할 경우, 제작할 때마다 발생하는 골드 비용을 직접적으로 줄일 수 있어 비용 절약 효과가 훨씬 큽니다. - 결과적으로, 제작 수수료 절감이 대성공 확률 증가보다 약 10배 더 많은 이득을 제공합니다. 따라서 대성공 확률보다는 수수료 절감에 집중하는 것이 권장됩니다. --- ### 2. 효율적인 영지 세팅을 위한 이득 극대화 세팅 - 영지 내 필수 세팅 아이템으로 "곡예사의 대기실," "찬란한 소원 나무," "여신의 가호"가 추천됩니다. - **곡예사의 대기실**: 마리샵에서 블루 크리스탈로 구매할 수 있으며, 기본적인 제작 효율을 높이는 데 필수 아이템입니다. - **찬란한 소원 나무**: 수수료 절감을 제공하여 제작 비용을 절감하는 효과가 있어 이득 극대화에 도움이 됩니다. - **여신의 가호**: 미술품 42개를 모아 획득할 수 있으며, 추가적인 제작 효율을 제공합니다. 여유가 있다면 필수로 장착하는 것이 좋습니다. - 여신의 가호 대신, **곡예사의 무기 진열대**를 구매해 사용할 수도 있으며, 경제적인 선택지로 활용할 수 있습니다. --- ### 3. 의상 세팅 (선택적 적용) - 특정 의상을 착용하면 제작 효율이 약간 증가하지만, 최적의 의상 옵션은 없기 때문에 필수는 아닙니다. 크리스탈 비용이 부담스러울 경우 생략 가능하며, 다른 세팅을 우선적으로 강화하는 것이 좋습니다. - **드레스룸 이용**: 크리스탈을 사용하여 드레스룸에서 특정 NPC와의 호감도로 얻을 수 있는 의상을 구매할 수 있습니다. - **추천 의상**: 페...