728x90
반응형
얕은 복사와 깊은 복사에 대해서 설명해주세요.2024-11-27 09:58:24자바에서 객체를 복사할 때 얕은 복사와 깊은 복사라는 두 가지 방식이 있습니다. 먼저 Book과 Author라는 두 클래스를 사용해서 예제를 살펴볼게요. Book은 책의 이름(name)과 저자(author) 정보를 가지고 있고, Author는 저자의 이름을 가지고 있습니다.class Book { private String name; // 책 이름 private Author author; // 저자 public Book(String name, Author author) { this.name = name; this.author = author; } public Book shallowCopy() { // 얕은 복사 return new Book(t..
[로드맵] CDN2024-11-27 09:56:07콘텐츠 전송 네트워크(CDN) 서비스는 웹사이트의 고가용성 및 성능 개선을 목표로 한다. 이는 일반적으로 클라이언트 요청에 지리적으로 더 가까운 엔드포인트를 통해 웹사이트 자산 및 콘텐츠를 빠르게 전송하여 달성한다.기존의 상업용 CDN(Amazon CloudFront, Akamai, CloudFlare 및 Fastly)은 이 목적으로 사용할 수 있는 전 세계의 서버를 제공한다. CDN을 통해 자산과 콘텐츠를 제공하면 웹사이트 호스팅의 대역폭이 줄어들고 잠재적인 중단을 줄이기 위한 추가 캐싱 계층이 제공되며 웹사이트 보안도 개선할 수 있다.
트랜잭션 격리수준은 무엇인가요?2024-11-26 10:28:00트랜잭션의 격리 수준은 동시에 여러 트랜잭션이 실행될 때 한 트랜잭션이 다른 트랜잭션의 연산에 영향을 받지 않도록 하는 정도를 말합니다. 낮은 격리 수준은 동시 처리 능력을 높이지만, 데이터의 일관성 문제를 발생시킬 수 있습니다. 반면, 높은 격리 수준은 데이터의 일관성을 보장하지만, 동시 처리 능력이 떨어질 수 있습니다. 즉, 데이터 정합성과 성능은 반비례합니다. 트랜잭션 격리 수준은 개발자가 트랜잭션 격리 수준을 설정할 수 있는 기능을 제공하는 기능입니다.트랜잭션 격리 수준은 어떤 것이 있고 각각 어떤 특징이 있나요? 🤔트랜잭션 격리 수준은 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ가 존재합니다.READ UNCOMMITTED는 커밋이 되지 않은 트랜잭션..
[로드맵] Client Side2024-11-26 10:14:09클라이언트 측 캐싱은 웹 브라우저나 애플리케이션이 성능을 개선하고 서버 부하를 줄이기 위해 사용자 기기에 로컬로 데이터를 저장하는 기술이다. 이는 후속 방문 시 더 빠르게 액세스할 수 있도록 클라이언트 시스템에 웹 페이지, 이미지, 스크립트 및 기타 리소스의 사본을 저장하는 것을 포함한다. 최신 브라우저는 HTTP 캐싱(Cache-Control 및 ETag와 같은 헤더 사용), 오프라인 기능을 위한 서비스 워커, 로컬 스토리지 API를 포함한 다양한 캐싱 메커니즘을 구현한다. 클라이언트 측 캐싱은 네트워크 트래픽과 로드 시간을 크게 줄여 특히 느린 연결에서 사용자 경험을 향상시킨다. 그러나 향상된 성능과 최신 콘텐츠에 대한 필요성 간의 균형을 맞추기 위해 신중한 관리가 필요하다. 개발자는 적절한 캐시 무..
데이터베이스 인덱스에 대해서 설명해주세요.2024-11-25 09:21:18인덱스는 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조로 백과사전의 색인과 같습니다. 저장되는 컬럼의 값을 사용하여 항상 정렬된 상태를 유지하는 것이 특징입니다. 이러한 특징으로 인해 인덱스는 INSERT, UPDATE, DELETE의 성능이 희생된다는 것이 단점입니다.인덱스는 어떤 자료 구조로 이루어져있나요? 🤔MySQL InnoDB를 기준으로 설명드리자면, B+Tree와 같은 변형 B-Tree 자료구조를 이용해서 인덱스를 구현합니다. 기본 토대는 B-Tree 인덱스이기 때문에 이를 기준으로 설명합니다. B-Tree 인덱스는 컬럼의 값을 변형하지 않고 인덱스 구조체 내에서 항상 정렬된 상태로 유지합니다.B-Tree(Balanced-Tree)에서는 크게 3가지 노드가 존재합니다. 최상위에 ..
[로드맵] Caching2024-11-25 09:18:51캐싱은 컴퓨팅에서 자주 액세스하는 데이터를 빠르게 저장하고 검색하여 원래의 느린 소스에서 반복적으로 페치할 필요성을 줄이는데 사용되는 기술이다. 기본 저장소보다 액세스 속도가 빠른 위치에 데이터 사본을 보관하는 것을 포함한다. 캐싱은 브라우저 캐싱, 애플리케이션 수준 캐싱, 데이터베이스 캐싱을 포함한 다양한 수준에서 발생할 수 있다. 대기 시간을 줄이고, 네트워크 트래픽을 줄이며, 서버 또는 데이터베이스의 부하를 낮춰 성능을 크게 향상시킨다. 일반적인 캐신 전략에는 시간 기반 만료, 가장 최근에 사용(LRU) 알고리즘, 쓰기-통과 또는 쓰기-다시 쓰기 정책이 있다. 캐싱은 속도와 효율성을 향상시키지만 데이터 일관성과 신선도를 유지하는데 어려움이 있다. 효과적인 캐시 관리가 동적 시스템에서 성능 향상과 최..
[로드맵] API 설계 원칙2024-11-24 22:50:22HATEOAS(Hypermedia As The Engine Of Application State)HATEOAS는 RESTful 아키텍처의 제약 조건으로, 클라이언트가 응답에서 제공된 하이퍼미디어 링크를 통해 API를 동적으로 탐색할 수 있도록 한다. URL이나 엔드포인트를 하드 코딩하는 대신, 클라이언트는 웹 브라우저가 웹페이지의 링크를 따라가는 것처럼 이러한 링크를 통해 사용 가능한 작업을 발견한다. 이를 통해 더 큰 유연성을 제공하고 클라이언트를 서버 측 변경 사항에서 분리하여 기존 클라이언트를 중단하지 않고도 시스템을 보다 적응적이고 확장 가능하게 만든다.이는 REST의 무상태 원칙과 자체 설명적 메시지의 핵심 요소이다. OpenAPI Specification(OAS) OpenAPI Specifi..
[로드맵] 인증 및 권한 부여 메커니즘2024-11-23 18:26:02AuthenticationAPI 인증은 API에 액세스하려는 클라이언트의 신원을 확인하고 권한이 있는 사용자 또는 애플리케이션만 API 리소스와 상호 작용할 수 있도록 하는 프로세스이다. 일반적인 방법으로는 API 키, OAuth 2.0 JSON 웹 토큰(JWT), 기본 인증 및 OpenID Connect가 있다. 이러한 기술은 간단한 토큰 기반 접근 방식에서 인증과 권한 부여를 모두 처리하는 보다 정교한 프로토콜에 이르기까지 복잡성과 보안 수준이 다양하다. API 인증은 민감한 데이터를 보호하고, 무단 액세스를 방지하고, 사용 추적을 가능하게 하며, 리소스 액세스에 대한 세부적인 제어를 제공할 수 있다. 인증 방법의 선택은 보안 요구 사항, 클라이언트 유형, 구현 용이성 및 확장성 요구 사항과 같은 요..
728x90
반응형