본문 바로가기

전체 글192

[Script] 쉘 스크립트 모음 passwd에 stdin으로 패스워드 전달하기 usernam="root" password="12345" echo $password | passwd --stdin $username 여러 파일에서 특정 키워드 찾기 keyword="alias" path="/root/" filename=".bash_profile" grep $keyword `find $path -name $filename` 여러 파일에서 특정 문자열 변경하기 source="127.0.0.1" dest="192.168.0.100" path="/etc/" filename="ifcfg-*" sed -i s/$source/$dest/g `find $path -name $filename` 여러 파일에서 (특수기호 공백 제외하고) 특정 문자열 검색 #!/.. 2022. 9. 1.
[자격증] 2022년 정보처리기사 실기, 코로나 확진 시 환불 방법 - 실패 코로나 확진.. 2022년 7월 24일 일요일에 예정되어 있던 2회차 실기 시험을 코로나 확진으로 인한 격리 때문에 응시하지 못했다.. 그래서 실기 시험 비용을 환불 받으려고 했지만, 필요한 (귀찮은)서류들도 많았고 공지사항이나 양식들이 숨어(?)있어서 찾기부터 힘들었다. 그리고 결론부터 말하자면 이 글을 작성하는 시점에 환불은 실패했다. 하지만 코로나 확진자가 다시 늘어나면서 나처럼 격리로 인해 시험에 응시하지 못하는 경우도 많아 질 거라고 생각했기 때문에 찾아본 방법을 공유하려고 한다. 이제 어디서 어떻게 환불을 받을 수 있는지 알아보자. (참고로 집에 프린터와 스캐너가 있다면 좋다.) 코로나 확진 시 큐넷 기술자격 환불하기 우선 코로나 환불이라는 키워드로 관련된 공지사항들을 찾았다. 아래 링크를 누.. 2022. 8. 25.
[Windows Programming] 모니터 제어 명령 세트(MCCS)를 활용한 모니터 제어 프로그램 프로그램 제작 이유 만약 PC와 모니터가 2대씩 있을 때 각 PC를 둘 다 듀얼 모니터로 사용하고 싶다면 어떻게 하는게 좋을까? 가장 쉽게 문제를 해결하려면 매번 사용하는 PC의 HDMI 케이블을 바꿔서 연결하면 된다! 만약 그것도 귀찮다면 KVM 스위치를 구매해 연결해두고 필요한 PC의 버튼이나 단축키를 눌러서 사용하면 된다. (망 분리 환경이라면 보통 Aten과 같은 회사의 보안 인증이 된 제품을 지급해준다. 하지만 개인이 구매하기 어렵고 비싸다..!) 하지만 PC를 사용하다보면 양쪽 PC를 동시에 활용해야하는 경우가 꽤 많았고 개인적으로 KVM에서 듀얼 모니터 설정이 더 어려웠던 것 같다. 차라리 아래처럼 케이블을 전부 연결해두고 모니터 버튼으로 필요할 때마다 입력소스를 바꿔주는게 더 편하다. 많이.. 2022. 8. 7.
[SE] XP (eXtreme Programming) ** 아래 글은 개인의 조사를 바탕으로 주관적으로 작성되었습니다. 잘못된 부분은 댓글로 남겨주시면 수정하겠습니다. XP ? XP(익스트림 프로그래밍)은 애자일 방법론의 유형 중 하나로 미국의 소프트웨어 엔지니어인 캔트 벡이 제안한 소프트웨어 개발 방법론이다. 비즈니스 상의 요구사항이 계속해서 바뀌는 경우에 사용하면 효율적인 개발 방법이며, XP라는 약칭으로 불린다. XP는 5가지의 가치와 12개의 기본 원리(또는 실천 방법)와 1~3주 정도의 반복 주기(Iteration)가 존재하며, 개발 문서 보다는 소스 코드를 조직적인 개발의 움직임 보다는 개개인의 책임과 용기에 중점을 둔다. 또한 12가지 기본 원리 중 하나인 테스트 기반 개발(TDD; Test Driven Develop)를 통해 프로그래머들이 코.. 2022. 7. 10.
[Python] Paramiko 모듈 Paramiko 원격 장치에 대한 보안 연결을 위한 모듈로 SSH/ SFTP 연결 시에 사용한다. 만약 설치 중 에러 발생 시 pip를 업그레이드하고 의존성이 있는 라이브러리를 설치해준다. 코드 pip install paramiko # requirements.txt - paramiko import sys import subprocess try: import paramiko except: subprocess.check_call([sys.executable,'-m', 'pip', 'install', '--upgrade', 'pip']) subprocess.check_call([sys.executable,'-m', 'pip', 'install', '-r', 'requirements.txt']) import p.. 2022. 7. 7.
[SE] MSA (Micro Service Architecture) ** 아래 글은 개인의 조사를 바탕으로 주관적으로 작성되었습니다. 잘못된 부분은 댓글로 남겨주시면 수정하겠습니다. MSA (Micro Service Architecture) ? DevOps를 공부하면서 MSA라는 단어를 많이 듣게 되었다. 처음 단어를 들었을 때는 별로 깊게 생각하지 않았었기 때문에 (다시 생각해보면 조금 부끄럽지만) AWS와 GCP와 같은 클라우드 플랫폼을 말하는 거라고 생각했었다. 하지만 우연히 다시 검색해본 MSA의 설명은 충격적이었다. MSA : Micro Service Architecture 기존의 MA(Monorithic Architecture)는 모든 모듈이 하나의 서비스 내에 종속되어 있다. 이런 구조는 프로젝트의 개발과 빌드, 배포 등의 작업에 장점이 있지만, 만약 출시된.. 2022. 6. 26.
[Win32 API] GetCurrentDirectory : 현재 디렉토리 위치 구하기 MSDN https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory GetCurrentDirectory function (winbase.h) - Win32 apps Retrieves the current directory for the current process. docs.microsoft.com Header #include Syntax DWORD GetCurrentDirectory( [in] DWORD nBufferLength, [out] LPTSTR lpBuffer ); Parameters - [in] DWORD nBufferLength : NULL을 포함한 문자열 변수의 길이 - [out] LPT.. 2022. 6. 1.
[Win32 API] PathFileExists : 파일 존재 여부 확인하기 MSDN https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfileexistsa PathFileExistsA function (shlwapi.h) - Win32 apps Determines whether a path to a file system object such as a file or folder is valid. docs.microsoft.com Header #include #pragma comment(lib, "Shlwapi.lib") Syntax BOOL PathFileExistsA( [in] LPCSTR pszPath ); Parameters - 파일의 절대 경로를 LPCTSTR 타입으로 넣어줌. ( ex) L.. 2022. 6. 1.
[자격증] 2022년 정보처리기사 2회 필기 후기 정보처리기사 정보처리기사는 국가 자격증이다. 과학기술정보통신부에서 주관하고, 한국 산업인력공단에서 시행한다. 1년에 3회 시행되며, 필기 시험과 실기 시험으로 나눠진다. 시험 응시 자격은 관련 학과 학사 학위(또는 취득예정자) 또는 현업에서 일정 기간 이상 종사를 요구하지만, 정보기술 분야에 포함되는 자격증이므로 4년제 대학교 졸업자라면 학과에 상관없이 응시가 가능하다. (고용노동부고시 제2012-49호 "국가기술자격의 종목별 관련학과 고시") 시험의 응시는 아래 사이트에 로그인하고 일정에 맞춰 지원하고 결제하면 된다. * 참고로 2020년 이후로 개편되어 난이도가 올라갔다. 로그인 시 모바일 공인인증서도 지원해주는데 편한 것 같다. https://www.q-net.or.kr/man001.do?&gSit.. 2022. 5. 24.
[PowerShell] 작업 스케줄러로 휴지통 자동 비우기 명령어로 휴지통 비우기 아래 명령어를 활용하면 파워쉘로 휴지통을 비울 수 있다. PowerShell.exe -NoProfile -Command Clear-RecycleBin 만약 cmd에서 지우고 싶다면 아래처럼 활용이 가능하다. cmd.exe /c "echo Y|PowerShell.exe -NoProfile -Command Clear-RecycleBin" 윈도우 작업 스케줄러 활용하기 위 명령어들을 정해진 날짜, 시간, 조건 등에 자동으로 시행하기위해 윈도우 작업 스케줄러를 사용했다. 작업 스케줄러를 열어준 뒤 새 작업을 만들어준다. 트리거 탭으로 이동해 새로만들기 버튼을 눌러주면, 작업이 수행되는 조건(트리거)를 지정할 수있다. 매일 18시에 자동으로 실행되게 설정해 주었다. 동작 탭으로 이동해서 위.. 2022. 5. 15.
[Windows] CallBack 함수 CallBack 함수 함수는 일반적으로 프로그래머에 의해 작성되고 호출된다. CallBack 함수는 일반적인 함수와 비슷하지만, 호출되는 시점이 시스템(이벤트)에 의해 결정된다는 차이가 있다. 윈도우 API를 공부하면 가장 처음 배우는 Window를 띄우는 코드(링크)에서도 콜백 함수인 윈도우 프로시져를 볼 수 있는데, 해당 콜백함수(프로시져)는 WinMain에서 WndClass.lpfnWndProc=WndProc; 로 WNDCLASS 구조체에 등록된 뒤에 RegisterClass(&WndClass); 되어진 이후 따로 호출하지 않는다. 하지만 구조체의 정보가 등록된 이후는 WinMain 내부의 메시지 루프인 while(GetMessage(&Message, NULL, 0, 0)) { TranslateMe.. 2022. 5. 7.
AWS 프리티어 회원 가입 및 설정(CloudWatch, MFA) AWS 프리티어 가입 AWS 프리티어는 1년간 무료로 제공되는 EC2 인스턴스이다. 회원 가입 이후에 사용이 가능하며, 가입 시 신용카드 정보를 등록하기 때문에 1년이 지난 이후에는 자동으로 비용이 청구된다. 먼저 회원가입을 위해 아래 이미지의 내용을 영어로 채워주자. 입력을 마치고 진행하게되면 핸드폰 인증과 서포트 플랜 선택을 하게된다. 서포트 플랜은 기본 지원, 개발자 지원, 비즈니스 지원이 있으며 기본 지원을 제외한 나머지는 금액이 부과된다. 기본 지원을 선택해주자. 설정 가입이 완료되었다면 기본적으로 설정해줄 내용들이 있다. 가장 먼저 오른쪽 상단의 도시명을 클릭해서 서울로 바꿔준다. 지역 설정이 끝났다면, 사용량과 결제에 대한 알림을 설정해보자. 우측 상단의 계정명을 클릭하고 결제 대시보드로 이.. 2022. 4. 30.
[면접 질문] 면접 예상 질문 목록과 구조화 면접 질문 전 확인 사항 중요도 : 질문을 통해 면접관이 확인하고 싶은 내용들의 우선 순위 1. 업무 능력 2. 커뮤니케이션 3. 협력 포커스 : 통상적인 기술 면접과 임원 면접에서 각각 집중되는 내용 1. 기술 면접 : 직무 관련 부분으로 해당 기술 팀의 팀장 등 실무자와 면접을 진행한다. 2. 임원 면접 : 회사의 임원진과 진행하는 면접으로 인성과 태도, 조직과의 융화도에 초점을 둔 인성 면접이라고 생각 할 수 있을 듯 하다. 구조화 면접 : 면접관의 경험과 판단에 의한 면접은 확증편향으로 인한 잘못된 판단의 위험이 있다. 이런 문제를 해결하기 위해 지원자에게 미리 체계적으로 구조화된 질문을 던져 답변하는 방식을 기반으로 판단하는 구조화 면접을 기반한 채용 과정들이 도입된다. 아래는 구글이 생각하는 구조화.. 2022. 4. 22.
[백준] 14502번 - 연구소 (골드 5) 문제 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 접근 방식 지도 공간 중의 0인 위치를 찾아, 중복 되지 않고 3개의 위치를 선택한다. (순열) 해당 위치에 벽을 세우고 BFS로 바이러스를 확산시킨다. (4 방향) 모든 지도에 수행하면서 안전한 영역(0인 곳)이 가장 많이 남은 개수를 찾는다. 코드 #include #include #include #include #include #include using namespace std; void func_1.. 2022. 4. 21.
[알고리즘] 순열과 조합 순열 (Permutation) 먼저 위키피디아에서 순열의 정의를 찾아봤다. 수학에서의 순열은 순서가 부여된 임의의 집합을 다른 순서로 뒤섞는 연산이라고 설명한다. 순열은 Permutation 의 앞글자 P로 표현한다. n개의 원소를 가진 집합을 임의의 다른 순서로 섞는 연산의 경우의 수는 n! 과 같고, n개의 원소 중 r개의 원소를 선택하여 순열하는 경우의 수는 P(n, r)과 같다. 아래 이미지는 위키피디아에서 P(n, r) 연산하는 방법을 설명한 부분이다. C++ 코드로 구현해보자. #include #include #include using namespace std; void func(){ vector v = {1, 2, 3}; do{ for(int i = 0; i < v.size(); i++){ .. 2022. 4. 21.
[백준] 1874번 - 스택 수열 (실버 3) 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 접근 방식 1~n 까지 오름차순으로 정렬된 num_vector, stack_vector, 원하는 수열을 입력 받을 target_vector 를선언한다. target_v의 각 요소들에서 num의 top(back)과 값을 비교한다. 같으면 다음 target으로 이동하고 다르면 하나씩 뽑아서 비교하면서 stack에 .. 2022. 4. 19.
[SE] DevOps ** 아래 글은 개인의 조사를 바탕으로 주관적으로 작성되었습니다. 잘못된 부분은 댓글로 남겨주시면 수정하겠습니다. DevOps ? 최초 데브옵스의 개념은 2009년 O'Reilly에서 주회한 Velocity 컨퍼런스에서 등장했다고 한다. 당시 루디코프 사의 엔지니어 2명이 '10+ Deploys per Day : Dev and Ops Cooperation at Flickr' 라는 이름으로 프레젠테이션했다. 이 발표에선 전통적인 조직의 개발과 운용 부서는 서로 대립되는 구도에 놓인다고 했다. 가장 큰 이유는 각 부서의 입장 차이인데 개발 부서는 변화를 원하지만 운용 부서에서는 서비스의 안정을 위해 시스템의 큰 변화를 원치 않기 때문이다. 하지만 이런 대립 관계가 심화되면 아래의 과정을 거쳐 음의 무한반복 .. 2022. 4. 12.
[알고리즘] 다익스트라(Dijkstra) 최단 거리 알고리즘 그래프에서 간선들 사이의 가중치와 방향이 있을 때, 한 정점에서 다른 정점들까지의 최단 거리를 구할 수 있는 알고리즘은 다익스트라, 벨만포드, A* 등이 있고, 모든 정점에서 모든 정점의 최단 거리를 구하는 알고리즘에는 플로이드 워셜 알고리즘이 있다. 해당 알고리즘들을 응용하여 최단 거리를 가지는 경로를 구하는 방법도 있지만, 이 글에서는 다익스트라 알고리즘을 활용하여 최단 거리만 구해보겠다. 먼저 우선순위 큐를 사용하지 않는 최초의 다익스트라 알고리즘은 아래 과정과 같고 O(V2) 의 시간 복잡도를 갖는다. (2중 for 문 구조) 시작 노드 결정 현재 노드를 기준으로 각 노드의 최소 비용을 계산 방문 하지 않은 노드 중 최소 비용의 노드를 선택 선택된 노드를 기준으로 거리 비용을 .. 2022. 4. 11.
[자료구조] 우선순위 큐 - 작성 중 큐는 FIFO, 우선순위 큐는 우선순위가 높은거 먼저 나옴 구현 1. 리스트를 이용한 구현 (큐로도 가능?) 2. 힙을 이용한 구현 시간 복잡도 1 -> 0(1), 삭제 시는 O(N) // 찾아서 삭제해야됨 2. -> O(log N) / O(log N) -> 삽입 삭제가 시간복잡도 동일하고 데이터의 입출력 과정이 힙정렬과 동일, 이때는 O(N log N) 힙은 완전 이진트리의 일종, 항상 루트 노드 제거 최소 힙은 루트 노드가 가장 작은 값을 가짐, 값이 작은 데이터가 우선 제거됨 ㄴ 넣었다 빼면 걍 오름차순 최대 힙은 루트 노드가 가장 큰 값이고 값이 가장 큰 데이터가 우선 제거됨, 내림차순 완전이진트리 : 루트부터 왼쪽, 오른쪽으로 순서대로 데이터가 삽입되는 트리 최소힙 구성함수 (min-heapif.. 2022. 4. 11.
[백준] 4963번 - 섬의 개수 (실버 2) 문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 접근 방식 BFS로 영역나누기, 8방향 검사 코드 #include #include #include #include using namespace std; int main() { int w = 1, h = 1; queue q; int direc[8][2] = { {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}, {-1, 1} }; .. 2022. 4. 4.