Developer609 ✅ CDN의 원리 (Core Mechanism) CDN(Content Delivery Network)은 정적 리소스(이미지·JS·CSS·동영상)를 사용자와 가장 가까운 엣지 서버에서 서빙해서 지연시간을 최소화하는 분산 캐싱 시스템이다.작동 흐름(실제 트래픽 기준)1. 클라이언트가 resource.example.com/image.png 요청2. DNS가 CDN 엣지 서버 IP로 라우팅 (Geo-DNS)3. 엣지 서버에 캐시 HIT → 바로 응답❗ 속도 10~100ms급4. 캐시 MISS → 원본(origin) 서버로 요청 → 캐싱 후 사용자에게 전달5. TTL(캐시 만료) 또는 purge 정책 기반으로 캐시가 갱신됨즉, CDN = DNS 기반 지리적 라우팅 + Cache Layer + Origin Shield 구조.---✅ 대표적인 CDN 인프라 (실무.. 2025. 11. 16. 함수 선언식과 함수 표현식의 차이점에 대해서 설명해주세요. 함수 선언식과 함수 표현식은 자바스크립트에서 함수를 정의하는 두 가지 방법으로, 이 둘의 주요 차이점은 호이스팅에 있습니다.함수 선언식은 이름이 있는 함수입니다. 함수 선언식은 자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드하기 때문에 호이스팅이 발생합니다. 즉, 함수 선언식으로 정의된 함수는 코드 내 어디서든 호출할 수 있습니다.console.log(add(2, 3)); // 5function add(a, b) { return a + b;}여기서 add 함수는 선언된 위치보다 앞에서 호출해도 정상 작동합니다. 이는 자바스크립트 엔진이 실행 전에 함수 선언을 미리 메모리에 로드했기 때문입니다.그에 반해 함수 표현식은 변수에 익명 함수를 할당하는 방식으로, 할당된 변수명으로 호출할 수 있습니다.. 2025. 11. 14. DB Replication에 대해서 설명해주세요. DB Replication은 데이터베이스의 고가용성과 데이터 안정성을 보장하기 위해 널리 활용되는 핵심 기술입니다. 특히, 대규모 애플리케이션 환경에서는 데이터의 지속적인 가용성과 신뢰성이 매우 중요하기 때문에, 원본(Source) 서버와 복제(Replica) 서버 간의 데이터 동기화는 필수입니다. MySQL 기준으로 설명하겠습니다.바이너리 로그(Binary log)를 저장하는 방식은?Replication은 Source 서버에서 발생하는 모든 데이터 변경 사항을 Replica 서버로 복제하여 두 서버 간의 데이터 일관성을 유지하는 메커니즘입니다. 이러한 과정은 주로 Binary log를 기반으로 이루어지며, Binary log는 Source 서버에서 실행된 모든 데이터 변경 쿼리를 기록하는 역할을 합니다.. 2025. 11. 14. SI 현장에서 객체지향(OOP)과 디자인패턴을 쓴 흔한 사례 5가지 ✅ 1. 서비스 계층에서 Strategy 패턴 적용 (검증/승인 flow 분리)예: “자산관리위원회 제출 → 검증 → 승인/반려” 단계가 프로세스별로 다르면 공통 인터페이스를 만들고 전략으로 분기.public interface ValidateStrategy { void validate(AssetRequest req);}public class PurchaseValidate implements ValidateStrategy { public void validate(AssetRequest req) { /* 구매 전용 검증 */ }}public class DisposeValidate implements ValidateStrategy { public void validate(AssetRequest.. 2025. 11. 14. ES6에 대해서 아는 대로 설명해 주세요. ES6(ECMAScript 2015)는 자바스크립트의 최신 버전으로, 2015년에 공식 발표되었습니다. ES6는 코드의 가독성과 유지보수성을 높이고, 현대 웹 애플리케이션의 요구를 반영하기 위한 여러 기능들을 제공합니다. 주요 변경사항을 몇 가지 설명해 드리겠습니다.첫째, let과 const 키워드가 추가됐습니다. let은 변수 선언, const는 상수 선언에 사용됩니다. var와 달리 let과 const는 블록 스코프를 가지므로 코드의 안정성이 더 높습니다. 또한, 변수 선언 이전에 접근했을 때 undefined가 할당되지 않고, ReferenceError가 발생한다는 점에서도 차이가 있습니다.둘째, 화살표 함수(Arrow Function)가 도입되었습니다. 기존의 함수 정의 방식보다 간결하고 가독성이.. 2025. 11. 13. 트랜잭션의 응답 시간이 길어졌는지에 대해서는 어떻게 확인할 수 있는지 설명해주세요. “트랜잭션 응답 시간이 늘었는지”를 확인하려면 계측 → 수집 → 시각화/알림 → 단서 추적의 4단계를 체계적으로 깔면 됩니다. 바로 적용 가능한 체크리스트와 예시를 드리겠습니다. (Java/Spring 기준)1) 계측: 서비스·쿼리·외부호출 시간을 숫자로 만든다애플리케이션 레벨Micrometer Timer로 컨트롤러/서비스/리포지토리 레이어를 감싼다. p50/p95/p99을 꼭 기록.Trace/Span(OpenTelemetry)로 트랜잭션을 단계별(웹→서비스→DB/외부 API)로 쪼갠다.Correlation ID(MDC)로 단일 요청의 모든 로그를 묶는다.DB 레벨MySQL: slow_query_log=ON, long_query_time=0.3(예)로 느린 쿼리 수집.Postgres: pg_stat_st.. 2025. 11. 13. Record를 DTO로 사용하는 이유가 뭔가요? Record는 Java 16에서 정식 출시된 특별한 유형의 클래스로 불변성(Immutable) 을 기본으로 합니다.기존의 클래스와 달리 모든 필드가 final 키워드로 선언되며, 객체 생성 후 변경할 수 없습니다. 또한 필드 선언만으로 자동으로 생성자, getter, equals(), hashCode(), toString() 등 메서드를 자동으로 생성해 주어 보일러 플레이트 코드를 줄일 수 있습니다. 이러한 특성으로 인해 멀티 스레드 환경에서 데이터가 의도치 않게 변경되지 않고 안전하게 전달할 수 있습니다.// 기존 클래스 기반 DTOpublic class MemberDto { private final String name; private final String email; private final in.. 2025. 11. 13. HTTPS에 대해서 설명해주세요. HTTP(Hypertext Transfer Protocol) 는 웹에서 클라이언트와 서버 간 통신을 위한 통신 규약입니다. 하지만, HTTP는 암호화되지 않는 평문 데이터를 전송하기 때문에 제 3자가 정보를 조회할 수 있다는 위험이 있습니다. 이를 해결하기 위해서 HTTPS가 등장했습니다.HTTPS(Hyertext Transfer Protocol Secure) 는 HTTP에 데이터 암호화가 추가되었습니다. 암호화된 데이터를 전송하기 때문에 제 3자가 볼 수 없도록 할 수 있습니다.HTTPS는 어떻게 적용할 수 있나요?HTTPS를 적용하기 위해서는 인증된 기관(Certificate Authority, CA)에게 인증서를 발급받아야 합니다. CA에 인증서를 요청하면 CA 이름, 서버의 공개키, 서버의 정보를.. 2025. 11. 12. 자바스크립트 Promise에 대해서 아는 대로 설명해주세요. 자바스크립트의 Promise는 비동기 작업을 관리하고, 해당 작업의 성공 또는 실패 결과를 나중에 사용할 수 있도록 하는 객체입니다. 정리해서 말씀드려보자면, Promise는 비동기 작업의 완료 여부를 약속해주는 개념이라고 할 수 있습니다.자바스크립트는 비동기 처리를 위한 콜백 함수를 많이 사용합니다. 하지만 콜백 함수는 코드가 복잡해짐에 따라 콜백이 중첩되는 "콜백 지옥" 문제를 야기할 수 있습니다. Promise는 이러한 비동기 처리의 가독성을 높이고, 코드의 흐름을 명확하게 관리할 수 있도록 도와주는 방식입니다.Promise는 다음과 같은 3가지 상태를 가지는데요. 첫번째로는 비동기 작업이 아직 완료되지 않은 초기 상태를 나타내는 Pending, 두번째로는 비동기 작업이 성공적으로 완료되어 값을 반.. 2025. 11. 12. 이전 1 ··· 3 4 5 6 7 8 9 ··· 68 다음