본문 바로가기

전체 글138

CDN(Content Delivery Network)이란? 우리가 매일같이 사용하는 웹 사이트나 앱은 사실상 전 세계 어디서든 접근 가능해야 한다.그런데 모든 요청이 본 서버(Origin Server)까지 가서 처리된다면 속도도 느려지고 서버 과부하도 일어나게 되는데, 이런 문제를 해결해주는 게 바로 CDN(Content Delivery Network)이다. CDN은 말 그대로, 콘텐츠를 전달하는 데 특화된 네트워크로, 본 서버와 사용자 사이에 있는 전 세계 각지의 서버(엣지 서버)에 데이터를 캐싱해두고 중간에서 데이터를 대신 전달해주는 역할을 한다.이 때 전달하려는 데이터가 정적인지, 동적인지에 따라 전달 방식이 달라진다. 정적 캐싱 vs. 동적 캐싱정적 캐싱: 이미지, JS 파일처럼 미리 예측 가능한 콘텐츠를 각 엣지 서버에 미리 저장동적 캐싱: 사용자가 요.. 2025. 6. 5.
인터넷과 웹 매일 스마트폰을 켜고 "인터넷을 한다"고 말하지만, 정확히 인터넷이 무엇인지, 그리고 웹(Web)과는 어떤 차이가 있는지 헷갈렸다.따라서 이번에는 우리가 당연하게 사용하고 있는 인터넷과 웹의 차이점과 대해 알아보려고 한다. 인터넷이란 무엇인가?인터넷(Internet)이라는 단어는 Inter(사이의 관계, 연결), Network(네트워크)의 결합어이다.여기서 Inter는 두 개 이상의 대상 간의 연결이나 상호작용을 뜻하고, Network는 컴퓨터나 장비가 서로 그물망처럼 연결된 집합을 말한다.따라서 인터넷은 네트워크들 간의 연결을 의미하며, 전 세계의 컴퓨터 네트워크들이 서로 연결되어 데이터를 주고받을 수 있는 세계 최대의 네트워크라고 할 수 있다. 그렇다면 인터넷을 어떻게 데이터를 주고받을 수 있을까?T.. 2025. 6. 5.
[Design Pattern] 빌더 패턴 객체는 다음과 같은 방법으로 생성할 수 있다. 1. 생성자(Constructor)public class User { private String name; private String email; private String address; private Integer age; public User() { } public User(String name) { this.name = name; } public User(String name, String email, String address, Integer age) { this.name = name; this.email = email; this.address = ad.. 2025. 6. 1.
[Design Pattern] 싱글톤 패턴 싱글톤 패턴이란?싱글톤(Singleton) 패턴은 객체를 단 하나만 생성하고, 어디서든 그 객체를 공유해서 쓸 수 있도록 해주는 디자인 패턴이다. 쉽게 말해, 매번 새로 객체를 만들지 않고 이미 만들어진 객체를 재사용하는 방식이라고 생각하면 된다. 이 패턴은 특정 클래스의 인스턴스가 반드시 하나만 존재해야 하는 상황에서 사용된다.애플리케이션을 개발하다 보면, 어떤 객체는 여러 개가 필요 없고 딱 하나만 있으면 되는 경우가 있는데 예로 다음과 같은 상황이 있다.로거 : 로그를 찍기 위해 매번 새로운 로거를 만들 필요 없이, 하나의 로거를 계속 사용해도 충분하다.환경 설정 : 시스템 전반에서 사용하는 설정 정보는 하나만 존재해도 된다.데이터베이스 연결 : 데이터베이스 연결은 무거운 작업이다. 이미 만들어진 .. 2025. 5. 30.
[Design Pattern] 정적 팩토리 메서드 패턴 정적 팩토리 메서드(Static Factory Method) 패턴은 객체 생성을 위한 디자인 패턴으로, 생성자 대신 정적 메서드를 통해 객체를 생성하는 패턴을 의미한다.public class Product { private String name; private int price; // private 생성자 - 외부에서 직접 생성 불가 private Product(String name, int price) { this.name = name; this.price = price; } // 정적 팩토리 메서드 public static Product createProduct(String name, int price) { re.. 2025. 4. 14.
[자바] 스트림 API - 병렬 스트림 자바의 병렬 스트림은 Java 8에서 도입된 기능으로, 데이터를 병렬로 처리할 수 있게 해주는 스트림 API의 확장이다.병렬 스트림은 멀티코어 환경에서 작업을 여러 스레드로 분산시켜 처리 속도를 향상시키는 것이 목적이다.스트림에 parallel() 메서드만 추가하면, 스트림이 병렬로 처리된다.public class Test { public static void main(String[] args) { List fruits = List.of("apple", "banana", "mango", "peach", "orange"); long startTime = System.currentTimeMillis(); fruits.stream() .pa.. 2025. 4. 8.
정규 표현식 정규 표현식(Regular Expression)은 문자열에서 특정 패턴을 찾거나 매치하기 위한 형식 언어로, 문자열 검색, 대체, 검증 등 다양한 작업에 사용된다. 정규 표현식 기본 문법패턴의미^문자열의 시작$문자열의 끝.임의의 한 문자*앞의 요소가 0회 이상 반복+앞의 요소가 1회 이상 반복?앞의 요소가 0회 또는 1회 등장[]문자 집합[^]부정 문자 집합\d숫자 0~9 \D숫자가 아님\w알파벳, 숫자, 밑줄\s공백{}횟수를 지정할 때 사용 (a{3} = a가 정확히 3번, a{2,4} = a가 2~4번 사이로 나와야한다는 의미) 예시1. 전화번호 형식 검증01[0-9]-[0-9]{3,4}-[0-9]{4}  2. 파일 확장자 추출\.([a-zA-Z0-9]+)$ 3. 주민번호 형식 검증\d{6}-[1-4.. 2025. 4. 7.
[자바] ForkJoinPool Fork-Join 패턴은 대규모 작업을 작은 단위로 분할(Fork)하여 병렬로 처리(Execute)한 후, 결과를 합치는(Join) 병렬 프로그래밍 패턴이다. 분할 정복 알고리즘의 멀티스레딩 패턴이라고 볼 수 있다. 자바는 Fork-Join 패턴을 구현하기 위한 Fork/Join 프레임워크를 제공한다.Fork Join 프레임워크의 주요 클래스는 다음과 같다. 1. ForkJoinPool병렬 작업을 처리할 수 있는 특수한 스레드 풀로 기본적으로 사용 가능한 프로세서 수 만큼 스레드를 생성한다.ForkJoinTask를 실행하는 데 사용되며, 내부적으로 Work-Stealing 알고리즘을 사용해 효율적인 병렬 처리를 한다.ForkJoinPool pool = new ForkJoinPool(); // 기본 스레드.. 2025. 4. 7.
[자바] 스트림 API - 활용 중간 연산 - FlatMapmap은 각 요소를 단순히 하나의 값으로 변환 flatMap은 각 요소를 또 다른 컬렉션이나 스트림으로 변환한 뒤, 그 결과를 하나의 스트림으로 평탄화 FlatMap 동작 과정아래와 같이 중첩 리스트 구조를 가진 컬렉션이 있다고 하자. [[1, 2], [3, 4], [5, 6]]public class Test { public static void main(String[] args) { List> list = List.of( List.of(1, 2), List.of(3, 4), List.of(5, 6) ); System.out.println("list = ".. 2025. 4. 6.