본문 바로가기

Category

(80)
Docker, #!/bin/sh: not found, function: not found 도커 컨테이너 안에서 쉘스크립트를 실행시킬 때 다음과 같은 에러가 발생한다../test.sh: 1: #!/bin/sh: not found./test.sh: 4: function: not found 지피티한테 물어봐도 OS에 따른 개행문제라고만 나올 뿐이었다.(Window, Linux 개행이 다른 문제일 수도 있다 확인 필요, grep or vi search로 찾아보자) 결론부터 말하자면쉘 스크립트 안에서 UNIX 표준 POSIX function은 해당사항이 아니었고bash만 지원하는 것이 문제였다. Docker 기본 쉘 스크립트가 어떻게 설정되어 있는지 살펴보자ls -l /bin/sh/bin/sh -> dash dash로 기본값이 설정되어 있는 것을 확인할 수 있다./bin/bash로 직접 실행해도 되겠..
VSCode 원격 접속(ssh)이 되지 않는 문제 vscode could not establish connection to the remote host does not meet the prerequisites 필자는 이러한 에러 문구가 뜨는 문제가 발생했습니다.전날까지 분명 ssh가 잘되었는데 말이죠,,? 찾아보니 VSCode 버전 문제더랍니다 (나도 모르게 업데이트를 했나,, ) 1.86버전부터 리눅스 서버 ssh 요구사항이 변경되었다고 합니다.그렇다면 1.85v을 쓰거나 아니면 요구사항을 응하면 되겠죠? 서버에 필요한 패키지를 업데이트 혹은 인스톨하거나 구버전의 VSCode를 사용하면 되겠습니다. https://code.visualstudio.com/updates/v1_85 November 2023 (version 1.85)Learn what is ..
core 파일이 생성되지 않는 문제 lighttpd 서버로 fcgi 프로세스를 만들어 통신하고 있습니다.이때 fcgi가 죽는 문제가 생기는데 디버깅하려고 하려고 하는데 core파일이 생성되지 않는 문제가 발생했습니다.cat /proc//limitsMax core file size 0 unlimited bytes 다음 cat 명령어를 통해 현재 적용된 core file size가 제한되어 있는 문제를 발견할 수 있습니다. 확인해야할 사항은 다음과 같습니다.1. lighttpd.conf code dump 설정 enable 여부2. lighttpd 파일 안에 setrlimit() 함수 확인3. fcgi 파일 안에 setrlimit() 함수 확인 이 세가지 사항을 확인 후 다시 c..
ssh, 패스워드 없이 접속하기 (key-gen) window Linux 기반으로 작성되었습니다.1. key-genssh-keygen -t rsa 해당 명령어를 Power Shell 혹은 CMD에 입력하고원하는 경로에 public key와 secret key를 발급받습니다.C:\Users\User\.ssh 경로에 생성된 key 확인! 접속을 원하는 원격 서버로 생성된 public key를 복사하여 옮깁니다.2. 원격 서버 sshd_config 설정/etc/ssh/sshd_config 파일을 수정하여pub key 인증 및 pub key path를 지정합니다.PubkeyAuthentication yesAuthorizedKeysFile %h/.ssh/authorized_keys 3. authorized_key 설정~/.ssh/authorized_keys위에..
Virtual Box, 공유 폴더 자동 마운트 설정 및 경로 버추얼 박스에서 자동 마운트시 기본 설정되는 경로는/media/sf_virtualBox 입니다. 공유 폴더를 사용하기 위해서는 Guest Additions 패키지가 설치되어 있어야 합니다!(1) 설정(2) 공유 폴더 -> 공유 폴더 추가 -> 호스트 공유 폴더 마운트 경로 지정 -> 자동 마운트 체크 테스트를 위해 호스트 마운트 지점에 임의의 파일 생성 혹은 복사 (3) 버추얼 박스 /media/sf_virtualBox 경로 확인
React, 절대 경로 설정 (Vite 기준) TypeScript 기준으로 쓰였습니다.1. tsconfig.json Setting혹은 tsconfig.app.json 파일에 설정 baseURL 및 path 설정src 혹은 자신이 원하는 임의의 디렉토리 위치를 설정하면 됩니다. "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["src/*"] }, }2. vite.config.ts Settingtsconfig.json 뿐만 아니라 번들러 모듈 설정도 필요합니다.만약 WebPack으로 설치하셨다면 webpack.config로 작성하시면 됩니다. (1) vite-tsconfig-paths모듈 설치npm install vite-tsconfig-pathsimport { define..
TypeScript, 특수 타입 유니온 타입 (Union Type)let fruits1: (string | number)[] = ['apple', 'banana', 'mango', 1, 2, 3, 4];let fruits2: Array = ['apple', 'banana', 'mango', 1, 2, 3, 4];console.log(fruits1);console.log(fruits2); Array를 선언할 때 다음과 같이 OR('|') 연산자를 사용하여 다중 타입을 사용할 수 있습니다. Unknown Typelet testUnknown: unknown[] = ['apple', 'banana', 'mango',1 ,2 ,3 ,4, true];console.log(testUnknown);다음과 같이 일반 자바스크립트처럼 타입을 지정하지 않..
Microsoft, Outlook SMTP Auth 2.0인증 (Device Code Flow) (1) Outlook에서 더 이상 SMTP를 일반 베이직 인증으로 지원하지 않는 문제가 발생했습니다.Auth 2.0을 통한 로그인이 필수로 되었고 이를 위해 Access 토큰을 발급 받아야 합니다. 먼저는 Microsoft 계정이 기본 준비물입니다.Microsoft Azure Admin center로 접속하여 어플리케이션을 등록해야합니다. Microsoft Entra admin center aad.portal.azure.com 앱 등록 사이드 탭으로 이동 > 새 등록  다음과 같이 어플리케이션 세부 설정 후 등록하는 과정을 거칩니다. 새로이 만들어진 어플리케이션을 클릭해보면 Client ID, 테넌트 ID가 생성된 것을 확인할 수 있습니다. 이 두개는 API 요청에 필요한 파라미터임으로 뒤에서 활용됩니다. Mi..