최근에 새로운 사이드 프로젝트를 시작했습니다. 조금은 새로운 분야를 개발해보려고 하는데 CLI 프로그래밍입니다. CLI는 Command Line Interface로 '글자를 입력하여 컴퓨터에 명령을 내리는 방식'을 의미합니다. 데스크탑용 프로그램을 개발하려하는데, GUI를 만들기전에 API를 직접 CLI로 만들어서 사용성을 높이는 프로젝트를 해보려합니다.(물론 효용성이 더 떨어질 수도 있겠지만요.) I Programing 테스트해본 개발 환경은 ubuntu22.04, 20.04 클라우드 환경에서 테스트해보았습니다. 언어는 여러 선택지가 있었는데, 일단은 이식성이 좋은 cpp로 개발해보고, 너무 불편하다 싶으면 JS 라이브러리가 괜찮은게 있길래 써볼까도 고려중입니다. -> commander - npm (n..
백준 10799번 쇠막대기 문제 C++ 풀이입니다. 10799번: 쇠막대기 (acmicpc.net) 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 2015 초, 중등부 정올 지역본선 문제입니다. 문제 요약 레이저로 잘린 쇠막대기의 개수를 구하는 문제인데, 입력값이 괄호로 이뤄져 있습니다. 1. 모든 레이저는 "( )" 로만 표현됩니다. 2. 나머지 괄호는 막대기의 양 끝을 표현하게 됩니다. 이때 문제에 중요한 조건이 있습니다. '쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다' 항상 안쪽에 위치하는 괄호가 더 짧은..
백준 1956번 운동 문제 파이썬 풀이입니다. 1956번: 운동 (acmicpc.net)문제 자체는 짧고 간단합니다. '가중치가 있는 유향그래프에서 가장 작은 사이클을 찾아라' 로 요약할 수 있겠습니다. 처음에 다익스트라 문제로 착각하여 삽질을 좀 했는데, 아래와 같이 코드를 짰을 때 반례가 생겼다. 틀린코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 from collections import deque INF = float('inf') v, e = map(int, input().split()) graph = [[] for _ in range(v+1)] for _ in range(e): a, b, ..
[Terraform] github codespaces에서 Terraform 사용하기 1편 | Linux에 terraform 설치 (tistory.com) [Terraform] github codespaces에서 Terraform 사용하기 1편 | Linux에 terraform 설치 왜 Linux에서 돌리게 되었는가? AWS 요소 관리를 위해서 테라폼을 사용하려는데, 싸지방 컴에 직접 깔자니 껏다키면 리셋되는 문제가 있었다. 그래서 외부 서버를 사서 접속해서 code를 run 할까하다 pypystory.tistory.com 1편에서 볼 수 있었듯 github codespace 위에서 terraform을 실행할 수 있게 되었다. 근데 여기서 한가지 문제가 있다. 발생한 문제 바로 github codespac..
왜 Linux에서 돌리게 되었는가? AWS 요소 관리를 위해서 테라폼을 사용하려는데, 싸지방 컴에 직접 깔자니 껏다키면 리셋되는 문제가 있었다. 그래서 외부 서버를 사서 접속해서 code를 run 할까하다가 가격적인 문제도 있고 하니. .tfstate 파일은 S3로 클라우드 위에서 관리하고, 실질적인 code run은 쓸 때만 github codespaces에 접속해서 돌리는 방식으로 해보려고 한다. 현재 OS 확인 github codespace는 리눅스 서버 위에서 돌아가고 있는 것을 확인할 수 있었다. MS azure 위에서 돌고 있는 듯하다. Linux에 terraform 설치 방법 * OS별 다운로드 방법은 아래의 공식 사이트 링크에서 잘 알려주고 있다. Install | Terraform | H..
아니 왜 배포 실패함... 그동안 잘 되던 배포가 특정 시점부터 되다가 안되다가를 반복하는 일이 발생했다. 가장 큰 문제는 어쩌다 될 때도 있다는 것이다. elastic beanstalk 에러 메시지 상으론 npm 설치를 못했다고 eb-engine.log를 참고하라고 나온다. Instance deployment: 'npm' failed to install dependencies that you defined in 'package.json'. For details, see 'eb-engine.log'. The deployment failed. 일단 로그 확인에 앞서서 npm 버전이나 새롭게 추가된 패키지 dependency등을 확인해봤다. 이전에 배포한 버전과 큰 차이는 없었다. Error: Command..
군대에 와서 싸지방에서 개발을 할 방법을 강구하다가 Github codespaces라는 아주 착한 서비스를 찾아냈다. github에서 서버를 빌려주고 거기서 코드를 돌릴 수 있게 해주는 PaaS였다. (지난번에 aws 행사에 참여하였을 때 AWS에서도 비슷한 기능을 가진 서비스를 내놨었는데 어느게 시장을 선점할 지 궁금하다.) 해당 서비스와 개발 환경 세팅에 대해서는 나중에 따로 글을 적어보겠다. codespaces에서 개발을 하려고 node package를 yarn으로 설치하려고 하는데 node version 에러 메시지가 나왔다. The engine "node" is incompatible with this module. Expected version "20.1.0". Got "18.17.0" 음 노..
백준 14938번 서강그라운드 문제 파이썬 풀이입니다. 14938번: 서강그라운드 (acmicpc.net) 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 2017 SPC에 출제 되었던 문제입니다. 한 노드에서 각 노드까지의 최단거리를 알아야하기에, 최단 경로 탐색 알고리즘인 다익스트라(Dijkstra) 알고리즘으로 풀 수 있는 문제입니다. 다익스트라 알고리즘은 N*logN 시간복잡도를 가지게 되는데, 총 N개의 노드를 시작점으로 탐색해야기에 N개 * N*logN 의 시간복잡도를 필요로 하고, N은 최대 100이기에..
이것저것 많은 준비 끝에 군대가는 것이 확정되었다. 결론부터 말하면 '공군 정보보호병'이라는 병과로 입대하게 되었는데, 여러 이유가 있었지만 공부와 컴퓨터에 대한 감?을 잃고 싶지 않았다. 그래서 최대한(그나마) 컴퓨터와 친밀도를 유지할 수 있는 보직을 준비하려했다. 공군 정보보호병 경쟁률경쟁률은 평균적으로(요즘 육군 정보보호병이 폐지되고 좀 많이 늘어난거 같다) 5.대 정도는 되는 것 같다. 1차 선발1차는 출결 + 가산점인데 (고등학교 출결) + (헌혈, 국가유공자, 다자녀, 한국사&영어 공인시험 등의 가산점)으로 산정된다. 고등학교 출결이 결석이 없으면 10점인데, 이번에 컷이 12점인걸로 보아 가산점 조금만 챙기면 1차는 무난히(운이 나쁘지 않다면) 통과할 수 있을것이다. 2차 선발문제는 2차인데..
예전에 AWS S3에 자동 배포를 위해서 걸어둔 github action을 업데이트를 위해 오랜만에 실행할 일이 생겼다. 그런데 push 이후 배포 되었다고 왔어야할 알림이 10분 째 오지 않는 것이다. 다른 test를 거치는 것도 아니고, 그냥 react를 build해서 s3에 배포하는 과정인데, 평소였으면 1분 안쪽으로 끝났어야 할 일이다. 깃헙에 들어가보니 10분이 넘도록 돌아가고는 있다. 근데 ubuntu 작업 환경 세팅을 못하고 있었다. 찾아보니 ubuntu-18 버전을 github에서 지원하지 않기로 하였다고 한다. - https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-b..