[Amazon Web Services] 인코딩 되어있는 에러메시지 디코딩해서 보기(Encoded authorization failure message) 인코딩해서 나타나는 이유? 인코딩 되어서 나타나는 이유는 AWS 요청에 대한 응답으로 반환된 인코딩 된 메시지가 디코딩되어서 출력이 되어야 하는데, 이때 디코딩을 하려면 sts:DecodeAuthorizationMessage라는 권한이 있어야 한다. 하지만 해당 권한이 없으면 인코딩 된 메시지를 출력할 수 없으므로, 인코딩 된 메시지가 출력되는 것이다. Trouble Shooting 우선 sts:DecodeAuthorizationMessage 권한을 갖는 IAM User나 Role을 사용해서 아래와 같은 명령어를 입력해준다. $ aws sts decode-authorization-message --encoded-message "3AE8Dca5D_d4zqsJaNbZlZwDUECIKTnqLbICOSpLpwR..
썸네일 [Amazon Web Services] AWS STS(Security Token Service)를 사용해보자 ! AWS STS란? IAM 역할을 사용해 AWS에 액세스하는 경우, STS Endpoint에서 세션 토큰을 요청한다. Region STS 엔드포인트의 세션 토큰은 모든 리전에서 유효하다. AWS에서는 Region Endpoint를 사용하도록 권장하고있다. 클로벌 STS Endpoint(https://sts.amazonaws.com)의 세션 토큰은 기본적으로 STS가 활성화된 AWS Region에서만 유효하다. AWS STS를 사용하면 AWS Resource에 대한 액세스를 제어할 수 있다. 임시 보안 자격 증명은 다음과 같은 차이점을 제외하고는 IAM 사용자가 사용할 수 있는 장기 액세스키와 거의 동일하다. 임시 보안 자격 증명은 그 이름을 임시하듯 단기적이다. 이 자격 증명은 몇 분에서 길게는 몇 시간 ..
썸네일 [Raspberry Pi] ESP32-CAM를 Raspberry PI에서 사용해보자! - 1편 ESP32 CAM에 대한 IDE 셋업 우선 Arduino IDE에서 아래와 같이 ESP32 Board를 추가해주자. 위와 같이 Additional Boards Manager URLs에 "https://dl.espressif.com/dl/package_esp32_index.json"을 추가해주고 OK 눌러준다. 그리고 이제 해당 ESP32 보드를 설치해주자. 그리고 잠시 뒤 설치가 끝났으면, 아래와 같이 Board를 설정한다. ESP32 CAM 코드 작성 우리는 아래의 예제를 활용하여 ESP32 Web Server를 운영할 것이기 때문에 CameraWebServer예제를 가져와주자. 그리고 아래와 같이 #define CAMERA_MODEL_AI_THINKER 만 주석 해제해준다. 그리고 아래와 같이 WiF..
[Amazon Web Services] Python을 사용하여 AWS IoT Core와 통신해보기 Architecture Configuration 우선 AWS IoT에서 Policies를 생성해주자. 그리고 이제 Things를 생성해주자. 그리고 next 클릭 후 인증서를 발급해주자. 인증서를 생성해주는 이유는 Client와 AWS IoT Core는 X.509 방식으로 사용자 인증을 진행하기 때문에 발급을 해주어야한다. 모든 인증서들을 다운 받고 잘 보관하고 있는다. 아래와 같이 4~5개 있으면 된다. 이제 MQTT URL을 얻어주자 위 주소를 복사 그리고 이제 aws iot device sdk를 설치해주자 git clone https://github.com/aws/aws-iot-device-sdk-python.git && cd aws-iot-device-sdk-python python setup.p..
썸네일 [Django] Domain을 사용해서 접근 시 DisallowedHost 에러 해결 원인 DisallowedHost오류는 Django에서 허용되지 않은 Host 명으로 접속할 경우 발생하는 오류이다. 해결 방법 해결방법은 간단하가 ALLOWED_HOSTS를 작성해주면 된다. settings.py 파일에서 아래와 같이 ALLOWED_HOSTS 파일을 수정해준다. 그러면 아래와 같이 정상 적으로 접근이 되는 것을 볼 수 있다.
썸네일 [Windows Server] IE Security Alert 경고 비활성화 원인 기본 적으로 Server는 보안이 중요하다. Windows Server는 기본 적으로 Broswer를 통해서 유입되는 Virus, illegal Program과 같은 파일을 통해서 해킹이 되는 것을 방지하기 위해 IE Enhanced Securyti Configuration이 활성화되어있다. 해결 방법 해결 법은 매우 간단하다. Win + R키를 누르고 "servermanager.exe"를 입력해서 서버 매니저를 실행해주자. 실행 후 Local Server를 클릭 IE Enhanced Security Configuration의 On을 클릭해서 아래와 같은 설정을 변경해주자 그리고 Internet Explorer를 실행해서 확인하면 다음과 같이 정상 적으로 IE Security Alert 경고 없이 ..
[Algorithm] 탐색(선형탐색, 이진탐색)이란? / Python 탐색이란? 예를 들어 도서관에서 특정 책을 찾는 과정을 탐색이라고 할 수 있다. 즉, 필요한 정보를 찾는 과정을 탐색이라고 하고, 필요한 정보를 찾는 다양한 방법을 탐색이라고 생각하면 된다. 탐색의 종류로는 대표적 선형 탐색 알고리즘(Linear Search algorithm)과 이진 탐색 알고리즘(Binary Search Algorithm)이 존재한다. 선형 탐색 알고리즘(Liner Search Algorithm)? 우선 컴퓨터가 어떤 식으로 탐색을 하는 가 생각해보면, 가장 기초적인 방법은 처음 부터 끝까지 일일이 하나씩 찾으면서 탐색하는 방법이 있다. 이러한 방법을 선형 탐색 알고리즘이라고 한다. 선형 탐색 알고리즘은 왼쪽부터 하나씩 확인하는 방법이라고 생각하면 이해하기 쉽다. 파이썬으로 선형 탐색..
[Algorithm] 팰린드롬(palindrome)이란? / Python 팰린드롬(palindrome)이란? 팰린드롬(palindrome)은 앞에서 읽으나 뒤에서부터 읽으나 같은 단어를 말한다 '기러기'나 '오디오'등과 같은 단어를 팰린드롬이라고한다. 위와 같인 팰린드롬 알고리즘을 Python으로 구현을 해보면 아래와 같다. def is_palindrome(inputWord): word = inputWord.replace(" ", "") stringHalf = len(word) // 2 if (stringHalf * 2 - 1) % 2 == 1: for i in range(int(stringHalf)): if word[i] == word[len(word)-1-i]: continue else: return False return True else: return False 코드 ..
[백준] 2750번 : 수 정렬하기 / Python 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 N = int(input()) sortList ..
[백준] 1436번 : 영화감독 숌 / Python 문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다. 종말의 숫자란 어떤 수에 6이 적어도 3개이상 연속으로 들어가는 수를 말한다. 제일 작은 종말의 숫자는 666이고, 그 다음으로 큰 수는 1666, 2..