Array, LinkedList에 대한 설명과 각각의 사용법
Array는 가장 기본적인 자료 구조로, 동일한 타입의 요소들을 연속적인 메모리 위치에 저장한다. 배열의 특징 중 첫 번째로는 고정된 크기를 가진다는 점이다. 두 번째는 배열의 요소에 접근할 때 인덱스를 사용해서 빠르게 접근할 수 있다는 점이다. 이는 O(1)의 시간 복잡도를 가진다. 마지막 특징은 배열의 요소들은 메모리 상에서 연속적으로 위치한다.
사용방법은 변수명 = [1, 2, 3, 4]와 같이 간단하게 사용할 수 있으며, 변수명[인덱스]를 활용해서 특정 값을 수정할 수 있다. 또한 push, pop 등을 활용해서 마지막 인덱스에 값을 추가하거나 삭제할 수 있다.
LinkedList는 각 노드가 데이터와 다음 노드를 가리키는 참조(포인터)를 포함하는 방식으로 데이터를 저장한다. 연결 리스트의 특징 중 첫 번째는 배열과 다르게 요소를 추가하거나 제거함으로써 크기가 동적으로 변할 수 있다. 두 번째 특징은 특정 인덱스의 노드에 접근하려면 처음부터 순차적으로 탐색해야 한다는 점이다. 이는 O(n)의 시간 복잡도를 가진다. 마지막 특징은 중간에 요소를 삽입하거나 삭제하는 작업이 배열에 비해 효율적이라는 점이다.
자바스크립트에서는 내장된 LinkedList가 없으므로, 일반적으로 클래스를 정의해서 사용해야한다.
AWS S3를 사용하는 이유와 사용 경험
Amazon Web Services에서 제공하는 객체 스토리지 서비스이다. 이 서비스는 인터넷을 통해 언제 어디서나 데이터를 저장하고 검색할 수 있는 확장성과 데이터 가용성, 보안 및 성능을 제공한다.
S3를 사용하는 주된 이유는 다음과 같다. 첫 번째는 확장성이다. 사용자는 필요에 따라 저장 공간을 늘리거나 줄일 수 있으며, 이는 비용 효율성을 높여준다. 두 번째는 가용성이다. S3는 여러 지역에 데이터를 복제하여 가용성을 보장하는데, 이는 데이터 손실 위험을 최소화한다. 세 번째는 보안이다. S3는 데이터를 안전하게 보관할 수 있는 다양한 보안 기능을 제공한다. 이에는 암호화, 접근 제어 목록(ACL), 버킷 정책 등이 포함된다. 마지막은 사용자는 사용한 만큼만 비용을 지불하기 때문에 비용 효율성이 높다는 점이다.
Web Vital을 개선할 수 있는 방안 ( LCP, CLS, FID 개념, 진단법, 각 지표 개선에 효과적인 조치 )
Web Vital은 웹사이트의 사용자 경험을 측정하는 중요한 지표들을 말한다. 이 중 핵심적인 지표로는 LCP, CLS, FID가 있다. 먼저 LCP는 사용자가 페이지를 로드할 때 가장 큰 콘텐츠 요소가 화면에 나타나는 데 걸리는 시간을 측정한다. 구글의 LightHouse를 통해 진단할 수 있으며, 개선 방안으로는 이미지 최적화, 캐싱을 활용한 서버 응답 시간 최적화 등이 있다.
CLS는 페이지 로드 중 레이아웃의 안정성을 측정하는데, 이는 요소들이 예상치 못하게 움직이는 것을 나타낸다. LightHouse를 활용해서 진단할 수 있으며, 개선 방안으로는 레이아웃 이동을 방지하기 위해 이미지에 width와 heigth 속성을 명시하는 것이 있다.
FID는 사용자가 페이지와 상호작용할 수 있게 되는 데까지 걸리는 시간을 측정하는 것이다. LightHouse를 활용해서 진단할 수 있고, 개선 방안으로는 코드 스플리팅을 해서 필요한 컴포넌트만 로드하여 초기 로딩 시간을 단축하고, 사용자 상호작용에 더 빠르게 응답할 수 있도록 하는 방법이 있다.
'[항해99] TIL' 카테고리의 다른 글
60일차 (Recoil 사용방법 기초 2) (0) | 2023.11.04 |
---|---|
59일차 (Recoil 사용방법 기초) (1) | 2023.11.03 |
56일차 (CS 37, 38) (0) | 2023.10.31 |
55일차 (CS 35, 36) (0) | 2023.10.28 |
54일차 (CS 33, 34) (0) | 2023.10.28 |