[AWS Cli] 가장 최근에 수정된 S3 객체 가져오기 S3에서 객체를 가져와야 할때, 가장 최근 파일을 가져와야하는 경우가 있었다. 콘솔에서는 마지막 수정에서 정렬을 하면 다음과 같이 가장 최근 파일을 확인할 수 있다. CLI를 사용해 S3 버킷에서 가장 최근에 수정된 파일을 가져오는 방법에 대해 알아보자 s3 cli 아래 명령어를 사용해 버킷의 모든 객체를 나열할 수 있다. aws s3 ls bucket_name --recursive 날짜순으로 다시 정렬한 후 (sort) , 마지막 행만 보게 한 다음 (tail -n 1) 네번째 열, 즉 객체 경로를 추출한다. (awk '{print $4}') aws s3 ls bucket_name --recursive | sort | tail -n 1 | awk..
[Linux] HTTP Status Code 확인 리눅스에서 HTTP 상태코드 확인 -v 옵션을 사용하면, 헤더 통신 옵션을 출력한다. curl -v localhost:80 HTTP 상태코드만 확인하는 방법이 있나 찾아보니, curl로 호출한 뒤 status code를 확인 할 수 있는 방법이 있었다. curl의 stdout 출력 후 -w (또는 --write-out) 옵션으로 확인이 가능하다고 한다. curl -w " - status code: %{http_code}" "localhost:80" stdout 없이 상태코드만 출력을 하려면 -o 옵션을 사용하면 된다. 그밖에 -w 옵션과 함께 시간, 응답 사이즈 등을 확인할 수 있는 많은 변수들이 있다. 아래 문서에서 다양한 옵션을 확인 할 수 있다. h..
[Shell Script] 다른 소스 변수 불러오기 Source 쉘 스크립트에서 다른 위치에 있는 변수를 사용하고 싶을 때, source를 통해서 다른 스크립트의 변수를 불러올 수 있다. 변수를 모아놓은 스크립트를 작성한 후 vi variables.sh #!/bin/bash first_name=hello last_name=world 아래와 같이 source 명령어로 sh 파일 내의 변수를 사용할 수 있다 vi test.sh #!/bin/bash source ./variables.sh echo "Hi my name is ${first_name} ${last_name} !" 참고 https://ivvve.github.io/2018/11/20/linux/bash_source/
[AWS Cli] ELB Detach, Attach 하기 AWS CLI로 ELB의 대상 인스턴스를 확인하고,Detach와 Attach하는 방법을 알아보자 aws cli 명령어를 사용하기 위해선 credential이 필요하다. 스크립트로 작성했기 때문에, Shell Script 기준으로 설명을 하겠다. 인스턴스 확인 인스턴스 아이디를 알고있다면, 바로 넣어주면 되지만 인스턴스 아이디를 모르는 경우엔 ELB의 로드밸런서 정보에서 확인할 수 있다. ELB의 로드밸런서 정보는 describe-load-balancers 명령어로 확인할 수 있다. 명령어의 사용법은 다음과 같다. Instance=`aws elb describe-load-balancers \ --load-balancer-names ${ELB_NAME..
[Linux] Netcat (nc) 명령어 Netcat TCP 또는 UDP 프로토콜을 사용하여 네트워크 연결을 통해 데이터를 읽고 쓰는 명령어다. 파일을 전송하고. 포트를 스캔하는 등의 작업에서 아용할 수 있다. 일반적으로 포트가 열렸는지 확인하거나, 클라이언트 접속이 가능한지 확인하는 용도로 사용한다. nc [options] host port 옵션 옵션 설명 -u UDP 연결 -p 소스 포트 지정 -l Listen 모드로 포트 띄움 (들어오는 연결을 수신 대기) -z 단순 포트 스캔만 진행, 연결에 성공하면 연결을 종료 -v 더 많은 정보 확인 (네트워크 연결을 디버깅 할 때 유용한 출력을 활성화) 연결 성공 시 nc -zv localhost 22 Ncat: Version 7.50 ( https://n..
[Django/React] 장고와 리액트 연동 (3) React App 생성 yarn create react-app React-project +) yarn 이 없다면 다음과 같이 설치한다. npm -g install yarn react 프로젝트 src 폴더 내에 RestAPI.js 파일을 생성해준다. App.js 파일에 다음과 같이 추가한다. import logo from './logo.svg'; import './App.css'; import RestAPI from "./RestAPI.js" import React from "react"; function App() { return ( ); } export default App; Axios Axios는 브라우저, Node.js를 위한 HTTP 비동기 통..
[Django/React] 장고와 리액트 연동 (2) Serializer 생성 frontend로 데이터를 보내기 위해 장고 내부의 복잡한 테이터들을 json/xml 등의 형태로 데이터를 변환해준다고 생각하면 된다. Serializer는 DRF가 제공하는 클래스로, DB 인스턴스를 JSON 형식으로 생성한다. 반대로 JSON을 DB로 변경하기 위해선 deserializer가 사용된다. serializer시엔 각각 DB 칼럼들로 정의를 해야한다. App 디렉토리에 serializers.py를 생성하고, 모델과 필드를 작성해준다. from rest_framework import serializers from .models import Review class ReviewSerializer(serializers...
[Django/React] 장고와 리액트 연동 (1) 장고와 리액트의 연동은 장고의 REST 프레임워크(DRF, Django Rest Framework)를 사용하여 연동한다. 프론트엔드(React)가 Django 백엔드로 API 요청을 보내면, 장고는 요청을 서버 사이드 로직에 따라 처리하여 HTTP 응답으로 포장하여 프론트엔드로 보낸다. 데이터를 변경해야하는 경우엔 장고는 데이터베이스에서 필요한 작업을 수행한 다음, 프론트엔드로 성공/실패 여부를 확인하는 응답을 보낸다. Django 백엔드에서 응답을 받으면, 프론트엔드는 UI를 업데이트한다. 위와 같이 프론트 엔드와 백엔드가 상호 작용을 하기위한 연동을 진행해보자. DRF 설치 API 서버로 사용할 Django Rest Framework를 먼저 설치해..
[Python] 파이참으로 django 프로젝트 세팅하기 파이참으로 장고 프로젝트를 세팅하려고한다. 새프로젝트에서 Django로 생성을 해도되고, Python 프로젝트를 실행해 장고를 설치해도 된다. Django 프로젝트 생성 가상환경은 venv 가상환경으로 설정했다. 프로젝트를 생성 경로와 파이썬 인터프리터 경로를 지정해주면 장고가 알아서 설치 된다. 장고 설치 장고를 pip로 설치하여 사용할 때에도 venv 가상 환경을 사용해준다. 참고로 venv 가상환경을 cli로 설치하는 방법은 다음과 같다. mkdir venv cd venv python3 -m venv web-project .web-project/bin/activate 파이참 프로젝트가 생성됐으면, pip 명령어를 통해 장고를 설치한다. pip..
[React] 윈도우에 리액트(React.js) 설치 reactjs 의 공식 문서를 참고하여 설치 설치 - React A JavaScript library for building user interfaces reactjs-kr.firebaseapp.com react 설치에 필요한 npm을 사용하기 위해선 node.js 설치가 선행이 되어야한다. 아래 링크에서 os에 맞는 버전을 다운받는다. 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org node.js를 설치하면 npm이 자동으로 설치가 된다. Create React App을 사용하면 최신 자바스크립트 기능을 사용할 수 있게 개..
[Docker] ubuntu 22.04 docker 설치 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install. docs.docker.com 자세한 설치 방법은 공식 문서에서 확인 Ubuntu 패키지 설치 sudo apt update -y sudo apt-get install apt-transport-https \ ca-certificates curl gnupg-age..
[Python] pymysql 사용하기 pymysql을 db와 연동 후 select 하는 과정을 알아보자. pymysql 연동 먼저 pymysql 라이브러리를 import 해준다. import pymysql DB와 Python 연동을 위해 pymysql.connect() 함수에 DB 정보를 입력 후, 연결한다. conn = pymysql.connect( host = db_host, user = db_user, password= db_passwd, port = 3306, db = 'test_db', charset='utf8' ) DB 정보를 코드에 직접 사용하지말고, 분리해서 넣는게 좋다. [Python] 민감 정보 분리해서 사용하기 (config 파일 분리) [Python] 민감 정보 분리하기 파이썬에서..