분류 전체보기
-
* 데이터베이스 consideration 본 내용은 아마존 공식 문서의 RDS 관련 내용을 참조하였습니다. (링크) 관계형 데이터베이스 관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타냅니다. 테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가집니다. 즉, 관계형 데이터베이스는 위와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있습니다. 이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스(RDBMS)입니다. 특징 - 데이터의 분류, 정렬, 탐색 속도가 빠름 - 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의..
[클라우드 컴퓨팅] DB* 데이터베이스 consideration 본 내용은 아마존 공식 문서의 RDS 관련 내용을 참조하였습니다. (링크) 관계형 데이터베이스 관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타냅니다. 테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가집니다. 즉, 관계형 데이터베이스는 위와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있습니다. 이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스(RDBMS)입니다. 특징 - 데이터의 분류, 정렬, 탐색 속도가 빠름 - 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의..
2024.01.19 -
3장. 3계층형 시스템을 살펴보자 1. 프로세스와 스레드 프로세스 및 스레드는 프로그램 실행 파일 자체가 아니라 OS상에서 실행돼서 어느 정도 독립성을 가지고 동작하는 것. 프로세스 및 스레드가 활동하려면 메모리 공간이 필요한데, 이것은 커널에 의해 메모리상에 확보된다. 프로세스 vs 스레드 프로세스는 전용 메모리 공간을 이용해서 동작하는 반면, 스레드는 다른 스레드와 메모리 공간을 공유하고 있는 운명 공동체이다. 프로세스는 개별 처리 독립성이 높은 반면, 독자 메모리 공간을 가지기 때문에 생성 시 CPU 부하가 스레드와 비교해서 높아진다. 2. OS 커널 OS에서 커널은 심장이자 뇌이며 척수이다. 커널은 다양한 역할을 갖지만, 가장 중요한 것은 뒤에서 무슨 일이 벌어지는지 은폐하면서도 편리한 인터페이스..
[그림으로 공부하는 IT 인프라 구조] 3-4장3장. 3계층형 시스템을 살펴보자 1. 프로세스와 스레드 프로세스 및 스레드는 프로그램 실행 파일 자체가 아니라 OS상에서 실행돼서 어느 정도 독립성을 가지고 동작하는 것. 프로세스 및 스레드가 활동하려면 메모리 공간이 필요한데, 이것은 커널에 의해 메모리상에 확보된다. 프로세스 vs 스레드 프로세스는 전용 메모리 공간을 이용해서 동작하는 반면, 스레드는 다른 스레드와 메모리 공간을 공유하고 있는 운명 공동체이다. 프로세스는 개별 처리 독립성이 높은 반면, 독자 메모리 공간을 가지기 때문에 생성 시 CPU 부하가 스레드와 비교해서 높아진다. 2. OS 커널 OS에서 커널은 심장이자 뇌이며 척수이다. 커널은 다양한 역할을 갖지만, 가장 중요한 것은 뒤에서 무슨 일이 벌어지는지 은폐하면서도 편리한 인터페이스..
2024.01.15 -
1. 인프라 아키텍처를 살펴보자 인프라란 무엇일까? 기반이 되는 것. 인프라 아키텍처? 구조. 집약형과 분할형 아키텍처 집약형 이전: 대형 컴퓨터를 이용하여 모든 업무 처리 주요 업무를 모두 한대로 처리: 다중화 등을 통해 고장에도 멈추지 않는 방법 고안 복수의 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리 구성이 간단. 리소스 관리나 이중화에 의해 안정성이 높고 고성능 대형 컴퓨터는 도입 비용 및 유지 비용이 크다. + 확장성의 한계 분할형 여러 대의 컴퓨터를 조합해서 하나의 시스템 구축 낮은 비용으로 시스템 구축 가능 서버 대수를 늘릴 수 있다. -> 확장성이 높다. 대수가 늘어나면 관리 구조 복잡 문제 발생시 영향 범위를 최소화하기 위한 검토 필요 물리 서버와 논리 서버의 차이 분할형..
[그림으로 공부하는 IT 인프라 구조] 1-2장1. 인프라 아키텍처를 살펴보자 인프라란 무엇일까? 기반이 되는 것. 인프라 아키텍처? 구조. 집약형과 분할형 아키텍처 집약형 이전: 대형 컴퓨터를 이용하여 모든 업무 처리 주요 업무를 모두 한대로 처리: 다중화 등을 통해 고장에도 멈추지 않는 방법 고안 복수의 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리 구성이 간단. 리소스 관리나 이중화에 의해 안정성이 높고 고성능 대형 컴퓨터는 도입 비용 및 유지 비용이 크다. + 확장성의 한계 분할형 여러 대의 컴퓨터를 조합해서 하나의 시스템 구축 낮은 비용으로 시스템 구축 가능 서버 대수를 늘릴 수 있다. -> 확장성이 높다. 대수가 늘어나면 관리 구조 복잡 문제 발생시 영향 범위를 최소화하기 위한 검토 필요 물리 서버와 논리 서버의 차이 분할형..
2024.01.12 -
AWS ECS 컨테이너화된 애플리케이션을 쉽게 배포, 관리, 스케일링할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스입니다 완전 관리되는 컨테이너 오케스트레이션 서비스입니다. • 추가적인 복잡성 없이 수천 개의 컨테이너로 빠르게 확장됩니다. • 관리되는 클러스터에 걸쳐 배치를 스케줄링합니다. • 타사 스케줄러 및 기타 AWS 서비스와 통합됩니다. AWS ECR ECR (Elastic Container Registry)는 말 그대로 AWS의 관리형 컨테이너 이미지 레지스트리 서비스로, IAM 자격을 가지고 있는 사용자 또는 EC2 인스턴스가 ECR에 접속하여 도커 이미지를 push 또는 pull 해올 수 있도록 하는 서비스(도커허브와 비슷!) 완전 관리되는 컨테이너 레지스트리로, Amazo..
[클라우드 컴퓨팅] 컨테이너와 ECSAWS ECS 컨테이너화된 애플리케이션을 쉽게 배포, 관리, 스케일링할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스입니다 완전 관리되는 컨테이너 오케스트레이션 서비스입니다. • 추가적인 복잡성 없이 수천 개의 컨테이너로 빠르게 확장됩니다. • 관리되는 클러스터에 걸쳐 배치를 스케줄링합니다. • 타사 스케줄러 및 기타 AWS 서비스와 통합됩니다. AWS ECR ECR (Elastic Container Registry)는 말 그대로 AWS의 관리형 컨테이너 이미지 레지스트리 서비스로, IAM 자격을 가지고 있는 사용자 또는 EC2 인스턴스가 ECR에 접속하여 도커 이미지를 push 또는 pull 해올 수 있도록 하는 서비스(도커허브와 비슷!) 완전 관리되는 컨테이너 레지스트리로, Amazo..
2023.12.05 -
동적 프로그래밍ex. 피보나치재귀적으로 구현할 경우 중복 호출로 인한 심각한 비효율// 피보나치 - 재귀 호출int fib(int n){ if (n == 1 || n == 2) return 1; else return fib(n-1) + fib(n-2);} 메모이제이션 방식: 중간 계산 결과를 caching 함으로써 중복 계산을 피함// 피보나치 - 메모이제이션int fib(int n){ if (n == 1 || n == 2) return 1; else if (f[n] > -1) // 배열 f가 -1로 초기화되어있다고 가정 return f[n]; // 동적 프로그래밍: bottom-up 방식으로 중복 계산을 피함// 피보나치 - ..
[DP]note 5동적 프로그래밍ex. 피보나치재귀적으로 구현할 경우 중복 호출로 인한 심각한 비효율// 피보나치 - 재귀 호출int fib(int n){ if (n == 1 || n == 2) return 1; else return fib(n-1) + fib(n-2);} 메모이제이션 방식: 중간 계산 결과를 caching 함으로써 중복 계산을 피함// 피보나치 - 메모이제이션int fib(int n){ if (n == 1 || n == 2) return 1; else if (f[n] > -1) // 배열 f가 -1로 초기화되어있다고 가정 return f[n]; // 동적 프로그래밍: bottom-up 방식으로 중복 계산을 피함// 피보나치 - ..
2023.12.03 -
디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 7장 서브쿼리 21강. 서브쿼리가 일으키는 폐해 1. 서브쿼리의 문제점 서브쿼리의 성능적 문제는 실체적인 데이터를 저장하고 있지 않다는 점에서 기인 연산 비용 추가 서브쿼리에 접근할 때마다 SELECT 구문을 실행해서 데이터를 만들어야. → 구문 실행에 발생하는 비용 추가. (복잡할수록 실행 비용 높아짐) 데이터 I/O 비용 발생 연산 결과의 데이터양이 큰 경우 DBMS가 저장소에 있는 파일을 쓸 때도 존재. (ex. Microsoft SQL Server에서 서브쿼리 결과 tempdb에 저장) 이는 TEMP 탈락 현상의 일종. → 저장..
[SQL 레벨업] 7-8장디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 7장 서브쿼리 21강. 서브쿼리가 일으키는 폐해 1. 서브쿼리의 문제점 서브쿼리의 성능적 문제는 실체적인 데이터를 저장하고 있지 않다는 점에서 기인 연산 비용 추가 서브쿼리에 접근할 때마다 SELECT 구문을 실행해서 데이터를 만들어야. → 구문 실행에 발생하는 비용 추가. (복잡할수록 실행 비용 높아짐) 데이터 I/O 비용 발생 연산 결과의 데이터양이 큰 경우 DBMS가 저장소에 있는 파일을 쓸 때도 존재. (ex. Microsoft SQL Server에서 서브쿼리 결과 tempdb에 저장) 이는 TEMP 탈락 현상의 일종. → 저장..
2023.12.01 -
[SQL 레벨업] 5 - 6장 2023.12.01
-
프로젝트에서 페이징 기능을 구현하기 위해 다양한 고민을 하고 있었다. Post(게시글)의 경우 페이지네이션 형태로 구현하여 진행하기로 하였으나, 내가 맡은 댓글 파트의 특성상 페이지네이션 형태로 구현할 경우 모바일에서 유저들이 페이지를 직접 클릭해서 넘기게 되는데, 이런 방식은 좋은 UX가 아니라고 생각한다. 실제로 많은 소셜 네트워크 서비스(인스타, 페이스북, 에타)들도 무한 스크롤 방식을 사용하고 있어서 많은 고민 끝에 댓글에서는 무한 스크롤을 구현해보기로 했다. 다른 분이 진행한 post api에서도 Querydsl을 사용하였고, 나 역시 no Offset 기능을 적용하기 위해 Querydsl을 사용하였다. 스프링 데이터 JPA의 Page 기능을 통해 구현할 수도 있지만, no offset을 적용..
[Kotlin] no-offset 방식을 통한 댓글 무한스크롤 구현프로젝트에서 페이징 기능을 구현하기 위해 다양한 고민을 하고 있었다. Post(게시글)의 경우 페이지네이션 형태로 구현하여 진행하기로 하였으나, 내가 맡은 댓글 파트의 특성상 페이지네이션 형태로 구현할 경우 모바일에서 유저들이 페이지를 직접 클릭해서 넘기게 되는데, 이런 방식은 좋은 UX가 아니라고 생각한다. 실제로 많은 소셜 네트워크 서비스(인스타, 페이스북, 에타)들도 무한 스크롤 방식을 사용하고 있어서 많은 고민 끝에 댓글에서는 무한 스크롤을 구현해보기로 했다. 다른 분이 진행한 post api에서도 Querydsl을 사용하였고, 나 역시 no Offset 기능을 적용하기 위해 Querydsl을 사용하였다. 스프링 데이터 JPA의 Page 기능을 통해 구현할 수도 있지만, no offset을 적용..
2023.11.28 -
AUSG에서 좋은 기회로 AWS 세션을 들을 수 있었다. 두 세션을 들으면서 정리한 내용을 블로그에 옮겨보았다. 근데 노션이라 이미지/양식 이 다 깨져서 정리가 덜 되어있다..... 추후 다시 정리해야지 Session 1: EKS Basics - "EKS 어디까지 써봤니? IRSA를 활용한 클러스터 권한 관리" 고병수님, 이수정님 (AWS) pre session: Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021 1. SDK의 Credential Chain AWS SDK의 다양한 서비스 (S3, KMS 등등)를 이용하려면, AWS Client를 생..
[AWS 세션] EKS IRSA 와 Lambda ServerlessAUSG에서 좋은 기회로 AWS 세션을 들을 수 있었다. 두 세션을 들으면서 정리한 내용을 블로그에 옮겨보았다. 근데 노션이라 이미지/양식 이 다 깨져서 정리가 덜 되어있다..... 추후 다시 정리해야지 Session 1: EKS Basics - "EKS 어디까지 써봤니? IRSA를 활용한 클러스터 권한 관리" 고병수님, 이수정님 (AWS) pre session: Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021 1. SDK의 Credential Chain AWS SDK의 다양한 서비스 (S3, KMS 등등)를 이용하려면, AWS Client를 생..
2023.11.27 -
사이드 플젝에서 postgre를 사용하고 있기 때문에 오늘도 평소처럼 local로 접속을 시도했다 psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory Is the server running locally and accepting connections on that socket? 에러가 발생했다. 구글링 해보니 몇몇 솔루션이 있어서 일단 postgres 서버를 종료하라고 하는데 $> brew services stop postgres 음~ 왜 postgres를 못찾을까...? brew로 설치했던 것 같은데.. 구글링을 하다보니 다행히도 나만 안돼는 게 아니었다 [PostgreSQL] ..
[트러블슈팅] psql: error: connection to server on socket "/tmp/.s.PGSQL.5432"사이드 플젝에서 postgre를 사용하고 있기 때문에 오늘도 평소처럼 local로 접속을 시도했다 psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory Is the server running locally and accepting connections on that socket? 에러가 발생했다. 구글링 해보니 몇몇 솔루션이 있어서 일단 postgres 서버를 종료하라고 하는데 $> brew services stop postgres 음~ 왜 postgres를 못찾을까...? brew로 설치했던 것 같은데.. 구글링을 하다보니 다행히도 나만 안돼는 게 아니었다 [PostgreSQL] ..
2023.11.26 -
3장. SQL의 조건 분기 | 구문에서 식으로 Union을 사용한 쓸데없이 긴 표현 UNION은 외부적으로 하나의 SQL 구문을 실행하는 것처럼 보이지만, 내부적으로는 여러 개의 SELECT 구문을 실행하는 실행 계획으로 해석된다. -> 따라서 테이블에 접근하는 횟수가 많아지고, I/O 비용이 크게 증가한다. UNION을 사용해도 좋을지 여부는 신중히 검토해야한다. SELECT item_name, year, price_tax_ex AS price FROM Items WHERE year = 2002; 쓸데없이 길다: 거의 같은 쿼리를 두 번이나 실행 성능적으로 문제가 된다. UNION을 사용 했을 때의 실행 계획에서 Item 테이블에 2회 접근한다. -> TABLE ACCESS FULL(index없이 테이..
[SQL 레벨업] 3-4장3장. SQL의 조건 분기 | 구문에서 식으로 Union을 사용한 쓸데없이 긴 표현 UNION은 외부적으로 하나의 SQL 구문을 실행하는 것처럼 보이지만, 내부적으로는 여러 개의 SELECT 구문을 실행하는 실행 계획으로 해석된다. -> 따라서 테이블에 접근하는 횟수가 많아지고, I/O 비용이 크게 증가한다. UNION을 사용해도 좋을지 여부는 신중히 검토해야한다. SELECT item_name, year, price_tax_ex AS price FROM Items WHERE year = 2002; 쓸데없이 길다: 거의 같은 쿼리를 두 번이나 실행 성능적으로 문제가 된다. UNION을 사용 했을 때의 실행 계획에서 Item 테이블에 2회 접근한다. -> TABLE ACCESS FULL(index없이 테이..
2023.11.25 -
디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 2장. SQL기초 | 자연 언어를 사용하는 것처럼 SELECT 구문 데이터베이스의 핵심은 검색 이다. 검색은 다른 말로 질의(query) 또는 추출(retrieve) 라고 부른다. 검색을 위해 사용하는 SQL구문을 SELECT 구문이라고 부른다. 문자 그대로 선택 한다는 의미! SELECT 구와 FROM 구 기본적으로 SELECT 구와 FROM 구로 이루어진다. FROM구는 반드시 입력하야 하는 것은 아니지만, 테이블에서 데이터를 검색하는 경우에는 반드시 입력해야 한다. (Oracle의 경우 반드시 FROM 구를 입력해야 한다.) na..
[SQL 레벨업] 2장디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 2장. SQL기초 | 자연 언어를 사용하는 것처럼 SELECT 구문 데이터베이스의 핵심은 검색 이다. 검색은 다른 말로 질의(query) 또는 추출(retrieve) 라고 부른다. 검색을 위해 사용하는 SQL구문을 SELECT 구문이라고 부른다. 문자 그대로 선택 한다는 의미! SELECT 구와 FROM 구 기본적으로 SELECT 구와 FROM 구로 이루어진다. FROM구는 반드시 입력하야 하는 것은 아니지만, 테이블에서 데이터를 검색하는 경우에는 반드시 입력해야 한다. (Oracle의 경우 반드시 FROM 구를 입력해야 한다.) na..
2023.11.25