전체 글219 [EC2] 실습 : 직접 만든 키페어 / 스크립트로 인스턴스 시작 EC2 인스턴스 실습 팁 실습 : 직접 만든 키페어를 사용한 인스턴스 생성로컬에서 키페어 만들기- 프라이빗키(개인키) 생성하기openssl genpkey -algorithm RSA \ -out my_private_key.pem \ -pkeyopt rsa_keygen_bits:2048- 퍼블릭 키 생성 openssl rsa -pubout \ -in my_private_key.pem \ -out my_public_key.pem - 개인키 권한 축소(안하면 쓰질 못함) chmod 400 my_private_key.pem키페어 등록하기- 퍼블릭 키 복사cat my_public_key.pem BEGIN과 END사이 복사 * 파일이 아닌 텍스트로 등록하기 위함- EC2 > 키페어 > 작.. 2024. 11. 20. [VPC] 라우팅 테이블 작성 방법 라우팅 테이블VPC의 네트워크를 제어하는데 주요한 기능을 하는 라우팅 테이블에 대해 톺아본다.라우팅 테이블(RT)데이터를 통신하기 위한 경로들을 모아놓은 표- 네트워크 패킷이 목적지에 도달할 수 있도록 경로(경유지)를 지정하는 데이터베이스- 각 라우트(route)는 네트워크 목적지(IP주소 또는 네트워크주소)가 다음홉으로 어디로 가야할지 지정한다. 서브넷 레벨에서 동작- 연결된 서브넷에서 발생하는 네트워크 트래픽을 제어함- vpc 생성시 기본적으로 기본 RT(Main RT)가 생성되나, vpc레벨이 아닌 서브넷과 연결되어야지 기능을 하게 되는 것 (vpc는 하나 이상의 서브넷이 존재한다)- 서브넷은 하나의 RT에만 연결될 수 있다aws 특이사항- 한국어 사이트는 목적지가 대상으로 잘못 번역되어있음(대상.. 2024. 11. 19. [VPC] 세밀하게 제어하는 리소스간 통신 규칙 VPCAWS에서 제공하는 가상의 프라이빗 클라우드을 사용해본다.포스팅 순서연관 CS - IPv4 CIDR - Bastion Host / Jump SeverVPC(Virtual Private Cloud)VPC의 주요 구성 요소실습 : VPC 시작 / 서브넷 생성실습 : 인터넷 게이트웨이 사용하기실습 : NAT 게이트웨이 사용하기실습 : 보안 - NACL 사용실습 : 엔드포인트를 사용한 S3 연결 연관 CSIPv4 CIDR- 네트워크의 주소를 표현하는 방법- IPv4 표기 옆에 슬래시(/)와 함께 네트워크 주소의 유효 비트 수(서브넷 마스크)를 나타낸다.- ex) 192.168.1.0/24는 네트워크 부분이 192.168.1.x까지이고 192.168.1.0 ~ 192.168.1.255 까지의 호스트를 가질 .. 2024. 11. 19. [CloudHSM] 전용 하드웨어 장치를 제공받아 키 관리하기 CloudHSM사용자가 직접 관리하는 HSM 서비스에 대해 톺아본다. HSM(Hardware Security Module)암호화 키를 생성/저장하는 전용 하드웨어- 애플리케이션에서 암호화 키가 필요할 경우, 애플리케이션 측에서 다루는게 아니라, HSM이라는 전용 장치에서 암호화 키를 생성 및 관리- HSM에 들어 있는 정보(키)는 외부에 복사 및 재생성이 되지 않는다.고도의 보안이 필요한 조직/서비스에서 널리 사용- 금융 기관, 정부 기관, 보안 업계 등CloudHSM- AWS에서 전용 HSM 하드웨어를 제공받아 사용자가 직접 암호화 키를 관리한다.- 키의 생성, 저장, 삭제 등의 라이프사이클 관리를 사용자가 직접 수행- 더 높은 수준의 커스터마이징과 보안 제어 가능. (대칭키만 가능한 KSM에 비해.. 2024. 11. 19. [KMS] OpenSSL로 직접 키 구성요소 만들기 KMS with OpenSSL직접 키 구성요소를 만드는 과정을 진행해본다 외부 키 구성요소란?사용자가 직접 만든 키- AWS KMS에서 기본적으로 생성된 AWS 관리형 키 대신, 고객이 자체 생성한 키를 KMS에 업로드하여 사용할 수 있도록 해주는 기능사용자의 제어 하에 키 관리- 키의 보안과 관리에 대한 완전한 제어를 유지할 수 있다.- 특정 규제 요건이 충족되어야하는 경우 유리하다 OpenSSL오픈 소스 기반 암호화 라이브러리암호화 및 복호화- 대칭 키 암호화(예: AES)와 비대칭 키 암호화(예: RSA)를 지원- 데이터를 암호화하여 전송하거나 저장할 때 사용디지털 인증서 관리- X.509 인증서를 생성, 서명, 검증할 수 있다.- CSR(Certificate Signing Request) 생성 .. 2024. 11. 19. [KMS] 암호키 서비스를 사용한 S3 암호화 KMSAWS에서 제공하는 Key Management Service에 대해 톺아본다.포스팅 순서연관 CS - 암호 관리 발전 과정 - 대칭키 / 비대칭키AWS KMS(Key Management Service)S3의 데이터 암호화 방식실습 : S3 객체 업로드시 SSE-KMS 암호화(CLI)실습 : S3 암호화 및 권한에 따른 접근 확인 (콘솔)실습 : 암호화 권한부여(CLI) 연관 CS암호 관리 발전 과정하드코딩 : 가장 원시적>> ap 서버저장 : 한곳에 모아 저장, 하지만 해킹시 탈취됨>> kms : 키를 관리해주는 서비스 탄생>> hsm : 전용하드웨어에 저장 가장 안전해서 금융, 정부기관들에서 사용대칭키 / 비대칭키- 대칭키 : 암호화하고 복호화하는 데 동일한 키를 사용 속도가 빨라 데이터.. 2024. 11. 19. [CLI] AWS 리소스 접근방식 / 명령줄 사용 AWS CLI AWS 리소스 접근방법Management Console- AWS 웹 기반 GUI- 대시보드를 통해 상태와 통계 확인할 수 있음- 초보자나 테스트 환경에서 적합하다AWS CLI- 명령줄에서 AWS 서비스와 상호작용할 수 있는 도구- 스크립트로 자동화가 용이하여 CI/CD 등에서 활용된다AWS API- AWS가 제공하는 RESTful API를 사용하여 HTTP 요청으로 AWS 리소스를 관리- 언어독립적이다AWS SDK- Software Development Kit- 프로그래밍 언어용 라이브러리 (API 호출을 간소화한 방식)# AWS SDK인 boto3를 사용하여 S3객체를 업로드하는 예제import boto3s3 = boto3.client('s3')s3.upload_file('my_file.. 2024. 11. 15. [외부lib] react-hook-form : 사용자로부터 데이터 입력받기 react-hook-form리액트에서 유용하게 사용할 수 있는 외부 라이브러리 react-hook-form 사용법을 톺아본다 기존방식 : 제어 컴포넌트사용자가 입력한 데이터를 처리하기 위해서는 제어 컴포넌트를 사용해야한다.제어 컴포넌트란?- Controlled Component- 입력 필드의 값이 React 컴포넌트 상태로 완전히 제어되는 컴포넌트- 입력 필드의 값이 컴포넌트 상태로 관리되고, 사용자가 값을 변경할 때 상태가 업데이트되는 구조- cf. 비제어 컴포넌트 : 입력필드가 스스로 값을 관리함. 이경우 리액트는 ref를 사용해 값을 읽어들임(useRef 사용)문제점- 입력 필드가 많아질수록 상태와 이벤트 핸들러 코드가 증가한다- 입력 변경시마다 상태가 업데이트되어 렌더링이 자주 발생한다//====.. 2024. 10. 15. [Axios] 서버와의 HTTP 통신 Axios Axios란?JavaScript에서 사용되는 HTTP 클라이언트 라이브러리* 클라이언트란? 웹 브라우저와 같이 서버에 접속하기 위한 단말기(사용자) 서버와 대치되는 개념* HTTP란? 서버와 클라이언트가 통신할 때 따르는 규약특징1. 웹 브라우저와 Node.js 환경 모두에서 사용할 수 있다2. 자바스크립트의 Promise 객체 기반으로 동작한다.3. 서버에서 받은 응답을 자동으로 JSON 파싱한다.4. 요청/응답을 가로채서 중간에 로직을 추가하거나 헤더를 수정할 수 있다.5. 취소요청 기능을 제공해 불필요한 네트워크 요청을 방지한다.설치 및 사용npm install axiosimport axios from 'axios';에러처리방법1. Promise의 catch핸들러를 사용하기2. asyn.. 2024. 10. 8. [Hook] 부수 효과 관리 : useEffect useEffect리액트에서 부수효과를 관리하는데 사용되는 훅인 useEffect를 톺아본다 부수 효과(Side Effects)란?일반적 의미- 함수가 어떤 동작을 할 때, input - output 이외의 다른 값을 조작하는 경우 부수 효과가 있다고 표현- 프로그램이나 컴포넌트가 자신의 경계를 넘어 외부 상태나 시스템에 영향을 미치는 작업리액트에서 의미- state와 props를 받아 UI를 그리는 주기능 외에 일어나는 모든 것- 일반적인 함수형 프로그래밍에서는 지양되나 현실적으로는 필수적임 모든 프로그램은 사용자와 상호작용하고, 데이터를 저장하거나 가져오며, 외부 시스템과 통신하는 등의 작업을 수행해야 하기 때문대표적인 예- Data Fetching >> 외부세계에서 값을 가져오기 때문- DOM에 .. 2024. 10. 8. [LLM] 프롬프트 엔지니어링과 RAG 딥러닝 발전 양상24-09-24에 진행되었던 에티버스의 AWS 워크샵에 기반한다. 포스팅순서대형 언어 모델 (LLM)추론 파라미터- 온도- 상위p- 상위k프롬프트 엔지니어링프롬프트 엔지니어링 기법검색증강생성 RAG 대형 언어 모델 (LLM)Large Language Model자연어를 이해하고 결과값을 자연어로 생성하는 파운데이션 모델chatGPT가 대표적인 예기존의 딥러닝은 연산 결과를 사람이 해석해야했다면 LLM은 처리 결과를 자연어로 내놓음으로써 딥러닝 이용에 대한 진입장벽을 낮추었다.트랜스포머 아키텍처를 기반으로 한다(연관 포스팅 : 301번 포스팅) 추론 파라미터LLM의 추론과정에서 일반적으로 적용되는 하이퍼 파라미터온도 (Temperature)- 모델의 응답에서 생성의 다양성과 창의성을 조절-.. 2024. 9. 30. [발전양상] 파운데이션 모델과 생성형 AI 딥러닝 발전 양상24-09-24에 진행되었던 에티버스의 AWS 워크샵에 기반한다. 포스팅순서기반지식 : 학습방법론- 지도학습- 비지도학습- 강화학습기반지식 : 관련용어- 사전학습- 파인튜닝파운데이션 모델(FM, Foundation Model)생성형 AI (Generative AI)인공지능 in AWS - 배드락(Bedrock) - 세이지메이커(SageMaker) 기반지식 : 학습방법론지도학습 (Supervised Learning)- 입력값(데이터)과 결과값(라벨)을 함께 주고 학습을 시키는 것- 특징(feature)들을 직접 추출하고 분류작업을 한다.- 알려주지 않은 문제에 대해 답을 알려주지 못함비지도학습 (Unsupervised Learning)- 입력값에 대해 결과를 알려주지 않고 학습을 시키는 것.. 2024. 9. 25. [토막정보] 다양한 개발용어 (2/2) 개발용어헷갈리는 개발용어들을 정리해본다.목차엘라스틱서치(Elasticsearch)쿠버네티스(Kubernetes, k8s)슬럼(Slurm)주피터 노트북(Jupyter Notebook)CommonJS싱글톤 패턴(Singleton pattern) 프록시(Proxy)**포스팅은 목차의 역순으로 기술되어있다.(최신순) 프록시(Proxy)사전적의미 : 대리인네트워크에서 클라이언트와 서버 사이에 위치해 요청(Request)과 응답(Response)을 중계하는 역할사용하는 이유- 보안 강화 : 클라이언트 또는 서버가 직접 노출되지 않음- 성능 향상 : 정적 리소스를 프록시 서버에서 캐싱하여 빠르게 전달.- 로드 밸런싱 : 여러 서버로 트래픽을 분산 처리.- 접근 제어 : 특정 IP나 URL에 대한 요청을 차단하.. 2024. 9. 12. [Linux] 명령어 작성 팁 / 기본 명령어들(파일 및 동작 관련) 자주쓰이는 명령어들Linux 계열에서 자주 쓰이는 명령어들을 톺아본다 순서명령어 작성팁파일 및 디렉토리 관리- ls - cd - touch- pwd - mkdir/rmdir - rm - cp - mv파일 내용 보기 및 편집 - cat- vi- head- tail - nano 기타 명령어- clear- history - whoami - echo- sudo명령어 작성팁파일명 자동완성- 앞 몇글자만 적고 tab키를 누르면 자동완성된다- 파일이 하나인경우 글자 입력 안하고 바로 tab 눌러도 됨복사하기- 드래그하면 복사된다명령어 사용법 확인명령어 --help해당 명령어가 가진 옵션들과 간략한 설명을 출력함명령 취소(커맨드 복귀)Ctrl + C인터럽트를 발생시켜 명령어를 중단시킨다. 파일 및 디렉토리 관리ls .. 2024. 7. 23. [Linux] 파일 권한과 소유자 다루기 권한과 파일 소유자리눅스에서 파일 권환과 소유자를 관리하는 방법에 대해 톺아본다 권한 확인하기파일정보 출력예제drwxr-xr-x 2 user group 4096 Jul 23 12:34 .drwxr-xr-x 5 user group 4096 Jul 23 12:30 ..-rw-r--r-- 1 user group 123 Jul 23 12:34 file1.txt- 명령어 : ls -al(모두보기+상세보기)- 읽는 법 : 권한문자열 링크수 소유자 소유그룹 파일크기 수정한날짜 파일이름권한 문자열 구조1. 첫번째 문자 : 파일유형 - : 일반 파일 d : 디렉토리 l : 심볼릭 링크 c : 문자 디바이스 파일 b : 블록 디바이스 파일2. 나머지 9자리 : 세 그룹의 권한 .. 2024. 7. 23. [Compose] 설정파일(yaml)로 컨테이너들 관리하기 Docker Compose 도커 컴포즈란?다수의 Docker 컨테이너를 관리하는 도구- 여러 개의 서비스(컨테이너)를 한 번에 실행하고, 이 서비스들이 어떻게 상호작용해야 하는지 설정할 수 있다.- 다수의 컨테이너를 가지는 어플리케이션을 통합적으로 관리하기 좋다설정 파일(YAML)로 관리한다- 설정파일은 디폴트가 'docker-compose.yaml'이다- 각 서비스의 이미지, 환경 변수, 포트, 볼륨 등을 설정할 수 있다.주요 개념1. 서비스 - 설정파일에 정의된 각 컨테이너 - services 하위 뎁스로 정의한다.2. 네트워크 - 각 서비스간의 통신을 위한 경로 - 설정하지 않아도 '프로젝트명_default'로 자동생성된다.설치관련- 도커 데스크탑 설치시 자동으로 설치됨- .. 2024. 7. 22. [Hook] 상탯값 관리 : useState useStateuseState를 통해 변화되는 UI데이터를 자동렌더링시키는 과정을 톺아본다 useState란?컴포넌트에서 상태변수(상탯값)을 추가한다컴포넌트가 렌더링될때마가 호출되지만 초기 렌더링시에만 초기 상태값을 설정하고 이후 렌더링에서는 이전 상태값을 유지한다상탯값이란?- 컴포넌트의 동적인 데이터를 관리하는데 사용되는 객체- 상탯값이 변경되면 리액트는 컴포넌트를 다시 랜더링하여 변경된 상태를 UI에 반영한다- 같은 컴포넌트를 여러번 재사용 하더라도 각자의 메모리 공간이 있기 때문에 상탯값도 별도이다.사용방법1. useState를 호출하면서 인수로 초기값을 보낸다.2. 반환되는 상탯값과 업데이트함수를 배열비구조화로 받는다.3. 업데이트함수를 이용해서 상탯값을 변경한다4. 변경 후 해당 컴포넌트는 자동.. 2024. 7. 10. [Hook] 훅 기초 / 커스텀 훅 훅 기초 / 커스텀 훅 훅과 관련된 리액트 특성자동 렌더링 조건- 상탯값(props) 또는 속성값(state)으로 관리되는 UI데이터만 자동렌더링된다* 속성값 : 부모 컴포넌트에서 내려주는 값(관련포스팅 : 318번) 상탯값 : 컴포넌트 내부에서 관리// UI데이터를 상태값 또는 속성값으로 관리하지 않아서 자동반영이 되지 않는 사례let color = 'red';function MyComponent() { function onClkick() { color = 'blue'; // 값을 변경했지만 UI는 업데이트 되지 않는다 } return ( 좋아요 );} // 해당 버그를 개선한 예제 후술- 상탯값은 불변변수처럼 관리해.. 2024. 6. 12. 이전 1 2 3 4 ··· 13 다음