전체 글 283

유용한 쉘 스크립트 시나리오 정리

쉘 스크립트의 exit code 분리하기 # 예시 : azure cli 로그인 여부 확인하기 if az account show &>/dev/null; then echo "Azure Logined!" else echo "You need to login Azure!" fi &>/dev/null 을 붙이면 쓰레기통(/dev/null)에 출력 결과물이 들어가고, exit code만 남게 된다. 마지막으로 실행한 스크립트의 exit code 확인하기 $? 변수값 만들어서 저장하기 # nowGroup에 group이라는 변수를 저장 후 출력한다 nowGroup=$(echo "group") echo $nowGroup $([본문])을 통해서 출력값을 저장한다. 폴더의 존재 확인하기 # 폴더 존재 확인 FOLDER_NAM..

오픈소스에 대한 고찰

지금 다니는 회사에서 Typeorm에 관해서 대화를 나눈 적이 있었다. 다들 자기 의견에 대해서 말을 하는데, typeorm의 최초 개발자가 typeorm을 주도적으로 개발하지 않아 곧 deprecated 된다는 얘기를 들었다. 사실 nodejs 서버 진영에서는 (적어도 한국에서는) ORM 프로그램 중에서 가장 많이 쓰이는 것이 typeorm이라고 알고 있었다. 하지만 지속적인 지원이 없는 프로그램을 가장 많이 쓴다는 것이 둘 다 모순이 된다고 생각했다. 그래서 이것에 대해서 궁금증이 생겨서 나름 내용을 찾아봤다. 일단 typeorm이 많이 쓰이는 이유를 찾아보니 오래되기도 했고 typescript 지원에다가 다른 orm에서 주로 쓰는 패턴과 비슷해서 적응이 빠른것이 장점인 것 같았다. 하지만 typeo..

IT 이야기 2023.02.21

local에서 https로 개발하기

개요 로컬에서 개발할때는 주소가 localhost:xxxx 형식으로 주어진다. 하지만 해당 주소는 SSL인증서가 없기에 기본적으로 http 프로토콜로 통신을 하게 된다. 이렇게 개발을 하게 되면 HTTPS, SSL, TLS, cookie 등의 기술을 테스트하기에 어려움이 있었다. 그래서 로컬에서 HTTPS 개발을 할 수 있게 하는 도구들을 찾아보던 중, 좋은 도구를 발견했다. MKCert 일단 HTTPS를 사용하기 위해서는 인증 기관에서 인증된 TLS 인증서가 필요하다. 여기서 서명된 인증서를 생성하고, 애플리케이션에 적용시켜 실행을 하면 HTTPS로 실행이 된다. 해당 인증서는 mkcert를 사용해서 만들 것이다. https://github.com/FiloSottile/mkcert GitHub - Fi..

IT 이야기 2023.02.10

ts-jest 설치 안되는 에러 해결

개요 오늘 ts-jest 라이브러리를 새로 받고 있던 도중, 진행이 안되는 것을 확인. 여기저기 검색해도 답이 잘 보이지 않았다. 하지만 여러가지 상태를 종합해본 결과, kt 통신망을 사용할 때 ts-jest가 다운로드가 안 되는 것을 발견. 아래는 해당 버그와 관련된 이슈이다. 현재 2023년 2월 1일 기준으로도 다운로드가 안된다. https://github.com/kulshekhar/ts-jest/issues/3992 [Bug]: npm install hang · Issue #3992 · kulshekhar/ts-jest Version 27.1.4 Steps to reproduce init new project cd ~ mkdir ts-jest-hang-test cd ts-jest-hang-test..

IT 이야기 2023.02.01

Bandit Level 6 해설

❗️모든 문제는 Mac 기준으로 풀이합니다❗️ Bandit Level 6 문제를 풀어 보자. 문제를 요약해 보자. 문제 암호를 찾아라. 암호가 있는 파일은 다음 조건을 만족한다. 사람이 읽을 수 있다. 1033 바이트의 크기 실행 불가능한 파일이다. 해설 find 명령어에 파일 사이즈를 제한할 수 있는 명령어가 있다. 이것으로 1차 분류 ls -al을 통해 실행 불가능한 권한을 가진 파일을 찾는다. 정답 find ./* -size +1032c -size -1034c ls -al 참고자료 https://coding-factory.tistory.com/804 [Linux] 리눅스 find 명령어 사용법 (파일 찾기, 검색) find 명령어 리눅스의 find 명령어는 리눅스 파일 시스템에서 파일을 검색하는 데..

2022년 연말 개발 회고록

2022년 회고 이전 회고를 쓴지 벌써 1년이 지났다. 개발자로 들어선지 1년이 넘어가고 이것저것 많이 쓰게 당했던 기억들이 있다. 올해 무엇을 했는지 생각해보며 셀프처형을 해보자. 실무 경험의 장벽 스타트업에서 계속 백앤드 개발자로 일하는 동안 다양한 문제를 경험했고, 이를 해결하는 것을 계속 반복했다. 어차피 일을 하게 되는것은 문제를 계속 해결하는 것의 반복이겠지만, 개발자라는 직업 특성상 조금 더 심했던 것 같다. 우당탕탕 스타트업 이라는 말이 딱인 것 같다. 여튼 문제를 해결하기까지는 힘들었으나 문제를 해결하고 나니, 본인과 팀의 지식으로 남게 되어 결과적으로는 좋게 되었다. 아쉬운 것은 너무 맨땅에 헤딩만 한 것 같아서, 이번에도 역시 돌아 간다는 생각이 많이 들었다. 우매함의 봉우리 "더닝 ..

잡다한 이야기 2022.12.31

Programmers 합승 택시 요금

https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 플로이드-와샬 알고리즘을 사용하여 풀이가 가능하다. 플로이드-와샬 임의의 양의 가중치가 있는 graph의 노드 s에서 e까지 가는 길에 m이라는 경유지가 있다고 할 때, 해당 경로의 최단거리를 구하는 알고리즘이다. 다익스트라 알고리즘은 노드 s에서 e까지 가는 길의 최소값만 구하는 알고리즘이다. 다익스트라는 모든 경로를 하나씩 확인하면서 최소값에 대해서 계속 탐색하는 알고리즘이라면, 플로이드-와샬..

Bandit Level 5 해설

❗️모든 문제는 Mac 기준으로 풀이합니다❗️ Bandit Level 5 문제를 풀어 보자. 문제를 요약해 보자. 문제 사람이 읽을 수 있는 유일한 파일에 있다! 해설 인코딩 형식을 확인한다. 사람이 읽을 수 있는 파일을 아스키 코드라고 가정하고 아스키 코드 형식의 파일을 찾는다. 파일을 찾아 보니 한 개의 파일만 아스키 코드로 인코딩 되어 있었다. 정답 file ./-file* cat ./-file07 참고자료 https://linux.die.net/man/1/file file(1): determine file type - Linux man page file(1) - Linux man page Name file - determine file type Synopsis file [-bchikLNnprsvz..

Bandit Level 3 해설

❗️모든 문제는 Mac 기준으로 풀이합니다❗️ Bandit Level 3 문제를 풀어 보자. 문제를 요약해 보자. 문제 파일 이름 사이에 공백이 있는 파일에 암호가 있다. 해설 큰따옴표로 묶어준다. 정답 cat "spaces in this filename" 참고자료 https://appuals.com/how-to-handle-passing-filenames-with-spaces-in-bash/ How to Handle Passing Filenames with Spaces in Bash Linux has a default shell Bash (aka Bourne again shell) to execute commands for the system. Most programmers prefer bash ove..