main

aws

AWS ECR (Elastic Container Registry) 사용법

오늘은 ASC 2주차 세션에서 배운 ECR 핸즈온 실습 내용을 정리해보려고 한다. 실습을 들어가기에 앞서 ECR이 무엇인지 알아보자! 📌 Elastic Container Registry란? Amazon ECR은 AWS 관리형 Container image registry service로, 도커 이미지, Open Container Initiative(OCI) 이미지 및 호환 아티팩트를 push, pull 및 관리할 수 있는 서비스이다. AWS IAM을 사용해 리소스 기반 권한으로 프라이빗 컨테이너 이미지 레포지토리를 지원하므로 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 레포지토리 및 이미지에 액세스할 수 있다. 비용은 글 작성 시점 기준으로 프리티어는 월 500MB까지 무료이고, 프리티어 한..

aws

AWS IAM 알아보기

📌 AWS IAM 이란? AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 하는 웹 서비스이다. IAM을 이용하면 사용자가 액세스할 수 있는 AWS 리소스 제어 권한을 관리할 수 있다. 보통 처음 회원가입할 때 생성된 루트 계정은 최대한 사용하지 않는 것이 권장된다. 따라서 관리자의 경우 AdministratorAccess 권한을 가진 IAM을 이용하고, 다른 사람들은 꼭 필요한 권한만 최소한으로 부여받은 IAM을 이용하는 것이 일반적이다. 아래 사진은 IAM의 작동 방식인데, 간단히 설명하면 1) 사용자가 AWS 리소스에 대한 작업을 요청했을 때 2) 로그인을 통해 인증(Authentication)을 받은 후에 3) 요청을..

algorithm

최단 경로 알고리즘 (다익스트라, 플로이드 워셜)

최단 거리 알고리즘에는 다익스트라 최단 경로 알고리즘, 플로이드 워셜, 벨만 포드 알고리즘 등이 있다. 이 중 다익스트라 최단 경로와 플로이드 워셜 알고리즘이 코딩 테스트에서 가장 많이 등장하는 유형이다. 또한 최단 경로 알고리즘은 그리디와 DP의 한 유형으로 볼 수 있다. 그럼 다익스트라 최단 경로와 와 플로이드 워셜 알고리즘을 알아보자. 📌 다익스트라 최단 경로 알고리즘 다익스트라 최단 경로 알고리즘은 그래프에서 여러 개의 노드가 있을 때, 특정한 노드에서 출발해 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 다익스트라 최단 경로 알고리즘은 '음의 간선'이 없을 때 정상적으로 동작하며, 실제로 GPS 소프트웨어의 기본 알고리즘으로 채택되곤 한다. 다익스트라 최단 경로 알고리즘은 다음과 ..

algorithm

다이나믹 프로그래밍 (DP, Dynamic Programming)

코딩 테스트 문제 중에서 어떤 문제는 메모리 공간을 약간 더 사용하면 연산 속도를 엄청나게 증가시킬 수 있는 방법이 있다. 대표적인 방법으로 다이나믹 프로그래밍이 있는데 오늘은 이에 대해서 알아보려고 한다. 📌 다이나믹 프로그래밍이란? 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법이다. 즉, 중복되는 연산을 줄이고 메모리를 조금 더 사용해 연산속도를 줄인다는 것이다. 보통 줄여서 DP라고 부르며, 동적계획법이라고 부르기도 한다. 예시를 보며 DP를 좀 더 이해해보자. 다이나믹 프로그래밍으로 해결할 수 있는 대표적인 예시로는 피보나치 수열이 있다. 다음과 같이 재귀를 이용해 피보나치 수를 구하는 함수를 만들었다고 해보자. int fibo(int x) { i..

else

유용한 단축키(keyboard shortcuts) 모음 -VSCode, Intellij

내가 보려고 적는 글 🤭 지금은 귀찮으니까 하나씩 필요할 때마다 계속 추가할 예정..ㅎㅎ 통상 적는 +는 띄어쓰기로 대체한다! 📌 Navigate Backward & Forward 함수 정의문으로 이동(cmd click)을 하고 나서 다시 뒤로 가는 방법을 몰라서 한참 찾았던 단축키! VSCode navigate backward : ctrl - navigate forward : ctrl shift - Intellij navigate backward : cmd [ navigate forward : cmd ]

algorithm

이진 탐색 (Binary Search)

📌 이진 탐색이란? 이진 탐색(Binary Search)는 정렬되어 있는 데이터가 있을 때 탐색 범위를 절반씩 좁혀가며 탐색하는 알고리즘이다. 이진 탐색에서는 위치를 나타내는 변수 3개(시작점, 중간점, 끝점)을 사용해, 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는다. 이진 탐색은 데이터를 절반씩 줄어들도록 만들기 때문에 시간 복작도가 O(logN)이다. // 재귀 함수로 구현 int binarySearch(vector &arr, int target, int start, int end) { if (start > end) return -1; int mid = (start + end) / 2; if (arr[mid] == target) return mid; else..

algorithm

정렬 알고리즘 (선택정렬, 삽입정렬, 퀵정렬, 계수정렬)

오늘은 정렬 알고리즘에 대해 알아보도록 하자. 내림차순은 비교하는 부분에서 부호만 바꿔주면 되기 때문에 오름차순을 기준으로 설명하려고 한다. 📌 선택 정렬 (Selection Sort) 선택 정렬은 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음으로 작은 데이터를 선택해 두 번째 데이터와 바꾸고... 이런 과정을 반복해 정렬하는 방법이다. #include "iostream" using namespace std; int main() { int arr[] = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8}; for (int i = 0; i ..

git

git stash - Commit 하지 않고 변경사항 저장하는 방법

오늘은 Git stash에 대해 정리해보려고 한다. 기존 작업을 하다가 갑자기 급한 오류 수정 요청이 들어오거나, 현재 작업보다 더 우선순위가 높은 작업이 새로 들어올 때가 있다. 그럴 때 다른 브랜치로 이동하려면 하면 현재 변경사항을 commit 하거나, stash 해야한다. (git switch 혹은 checkout을 할 때 다음과 같은 메세지를 본 적이 있을 것이다!) 나는 작은 단위의 기능도 구현이 안됐을 때에는 '[feat] ~기능 구현 중'이렇게 커밋 메세지를 쓰곤 했는데, 나중에 보니까 좀 지저분한 느낌이 들어서 git stash를 사용하게 됐다. 📌 git stash란? git stash는 변경사항을 임시로 저장할 수 있도록 도와주는 기능이다. 가장 기본적인 사용법은 git stash로 모..

norgb
'분류 전체보기' 카테고리의 글 목록 (2 Page)