본문 바로가기

기술블로그334

5. AWS ELB 5. AWS ELB AWS Scalability & High Availability 확장성과 가용성 수직 확장성 (Vertical Scalability)와 수평 확장성 (Horizontal Scalability) 수직 확장성은 인스턴스의 크기를 증가시키는 것이다 예를 들어 t2.micro를 통해 어플리케이션을 작동 시키다가, t2.large로 바꾸는 것이다 주로 데이터 베이스와 같이 비분산 시스템에 수직 확장을 한다 수평 확장성은 인스턴스의 개수를 증가시키는 것이다 분산 시스템에 주로 사용이 된다 가용성 (Availability) 높은 가용성 (High Availability)는 수평 확장과 비슷하다 높은 가용성이 있다는 것은 어플리케이션 또는 시스템을 2개 이상의 데이터 센터 (AZ)에서 작동을 시키는.. 2023. 3. 17.
28. 운영체제 [가상메모리, 스와핑, 페이지폴트, 스레싱, 메모리 할당] 28. 운영체제 [가상메모리, 스와핑, 페이지폴트, 스레싱, 메모리 할당] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 가상 메모리 메모리 관리 기법의 하나로 기계에 실제 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 (주) 메모리로 보이게 만드는 것이다 주로 멀티테스킹 운영 체제에서 사용되고, 주 기억 장치 (RAM) 보다 큰 메모리 영역을 제공하는 방법으로도 사용된다 가상으로 가상 주소 또는 논리 주소가 주어지고, 실제 메모리 상에는 물리 주소 또는 실 주소가 있다 여기서 가상 주소는 MMU(Memory Management Unit), 메모리 관리 장치를 통해 실제 주소로 변환된다 TLB, '페이지 테이블'을 기반으로 가상 주소에서 물리 주소로 변환이 된다 TLB는 메모.. 2023. 3. 16.
[Python] 백준 14719 빗물 🧑‍💻 [Python] 백준 14719 빗물 Gold 4 - 구현 입력 값 M, N = 4, 8 3 1 2 3 4 1 1 2 i left right min(max(left), max(right)) block[i] water 1 3 2, 3, 4, 1, 1, 2 3 1 2 2 3, 1 3, 4, 1, 1, 2 3 2 3 3 3, 1, 2 4, 1, 1, 2 3 3 3 4 3, 1, 2, 3 1, 1, 2 3 4 3 5 3, 1, 2, 3, 4 1, 2 2 1 4 6 3, 1, 2, 3, 4, 1 2 2 1 5 left, right 는 현재의 인덱스 기준으로 왼쪽과 오른쪽에, 더 큰 지역이 있는지 보는 것이다 이것을 통해서 물이 고이는지 안 고이는지 알 수 있다 min(max(left), max(right).. 2023. 3. 15.
[Python] 백준 14502 연구소 🧑‍💻 [Python] 백준 14502 연구소 Gold 4 - 구현 from copy import deepcopy 깊은 복사를 하는 것이다 깊은 복사를 하면, 완전 다른 인스턴스가 만들어진다 (남남이 되는 것) combinations 을 사용해서 배치할 벽들의 좌표를 구했다 empty_space 리스트에 비어 있는 공간들의 좌표들을 넣었다 비어있는 공간들의 좌표의 순열을 통해 벽들을 배치하고, 바이러스가 얼마나 퍼지는지 구하는 것 for empty in combinations(empty_space, 3): 비어있는 공간들의 좌표 3개를 통해 벽들을 배치해준다 BFS를 하는데, BFS는 마지막에 퍼진 바이러스의 개수를 반환해준다 퍼진 바이러스의 개수의 최소값을 구하면 된다 코드 디테일 queue = deq.. 2023. 3. 14.
Udemy : 알고리즘 이분 탐색 Udemy : 알고리즘 이분 탐색 udemy 알고리즘 코딩 테스트 이분 탐색 하나 하나 다 찾는 것이 아닌다 (완전 탐색으로 매우 오래 걸린다) Up & Down 게임이라고 생각하면 된다 정답을 기준으로, 무작위로 고른 숫자가 정답 숫자가 무작위로 고른 숫자 기준으로 더 작은지, 또는 큰지 말해주는 것이다 예) 정답 7 10을 말하면 Down 5를 말하면 Up 즉 값들을 정렬하고, 정렬한 값들 중에 중간 값을 기준으로 탐색을 하는 것이다 예) 1,2,3,4,5,6,7,8,9,10 중 8 찾기 먼저 5를 탐색한다, 7은 5보다 크기 때문에 6~10 중 숫자들을 찾는다 6~10 의 중간값은 8 from bisect import bisect_left, bisect_right array = [0, 1, 2, 3.. 2023. 3. 14.
27. 운영체제 [메모리, 캐시] 27. 운영체제 [메모리, 캐시] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 메모리 계층 레지스터, 캐시는 CPU 내부에 존재한다 메인 메모리는 RAM을 가리키고, 주기억장치다 일부 하드 디스크의 메모리를 복사해서, 임시 저장 후, CPU에 빠르게 전달을 한 레지스터는 속도가 빠르지만, 용량이 적다 하드 디스크는 속도는 느리지만, 용량이 많다 이런 점들을 보완하기 위해, 메모리 계층 구조를 사용한다 캐시 데이터를 미리 저장해 놓은 임시 저장소이다 빠른 장치와 느린 장치 사이에서 속도 차이를 줄이는 역할을 하는 메모리다 예를 들어서 CPU와 메모리 속도 차이가 많이 나기 때문에, 레지스터를 캐싱 계층으로 둬서, 속도 차이에서 나타나는 병목 현상을 줄인다 메인 메모리도 캐시 메모리와 하드 디스크 .. 2023. 3. 14.
Udemy : 알고리즘 DFS, BFS, 백트래킹 Udemy : 알고리즘 DFS, BFS, 백트래킹 udemy 알고리즘 코딩 테스트 그래프 자료구조 그래프는 노드와 링크로 이루어진 자료구조다 노드는 점들이고, 노드를 이어주는 링크, Edge 또는 간선이라고 한다 SNS / 메신저 관계도를 그래프로 만들 수 있다 지도 / 네비게이션 같이 그래프를 실생활에 사용될 수 있다 무방향 또는 방향 그래프로 만들 수 있다 무방향이나 양방향 그래프는 동일한 개념이다 트리 자료구조 순환성이 없는 무방향 그래프다 코드를 그래프로 나타날 때에는 인접 리스트와 행열을 만들 수 있다 연결 행 연결 리스트 DFS (Depth First Search) 깊이 우선 탐색 스택 또는 재귀를 사용해서 구현을 한다 DFS는 완전 탐색이다 BFS (Breadth First Search) 너.. 2023. 3. 13.
26. 운영체제 [운영체제, 컴퓨터의 요소] 26. 운영체제 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 운영체제 운영체제(OS, Operation System)는 사용자들이 컴퓨터를 더 편리하고 효율적으로 사용할 수 있도록, 컴퓨터의 하드웨어와 소프트웨어 자원을 관리해주는 시스템 소프트웨어다. 운영체제의 역할 자원 관리 : 컴퓨터 시스템 자원을 효율적으로 관리한다 CPU 스케줄링과 프로세스 관리 : CPU 소유권을 프로세스에 할당을 하는 것을 관리한다 여기서 프로세스는, 메인 메모리에 할당 되어, 실행 상태인 프로그램을 말하는 것이다 여러 프로세스가 열려있다면, 운영체제는 CPU 소유권 각각의 프로세스에게 할당을 한다 메모리 관리 : 프로세스에 메모리를 할당하는 것을 관리한다 메모리는 한정적이라서, 효율적으로 할당을 해야 한다 디스크 파.. 2023. 3. 13.
[Python] 백준 3107 IPv6 🧑‍💻 [Python] 백준 3107 IPv6 Gold 5 - 구현 이 문제는 IPv6를 고려해서, 상황들을 생각해서 코드를 짜면 되는 것이다 특히 ::를 집중적으로 생각해야 한다 :: 만 없었다면 그냥 0만 채우면 되는 문제 예) 25:09:1985:aa:091:4846:374:bb 같은 경우 그냥 0025:0009:1985:00aa:0091:4846:0374:00bb으로 바꿔주면 된다 그래서 입력을 먼저 받을 때에 : 기준으로 나눠서 리스트에 넣는다 그리고 그 리스트 안에 있는 요소들을 순회한다 만약 중간에 ::가 있으면, 리스트에는 ''으로 반환되어 있을 것이다 리스트 길이가 8이면 그대로 0만 채워 넣으면 된다 하지만 리스트 길이가 8이 아니면, ::를 채워 넣어줘야 한다 리스트 길이를 8로 맞출.. 2023. 3. 12.