Network 25

정규표현식(Regex) 기본 문법 정리

개발을 하다 보면 문자열 처리와 검증이 필요하다.그때 유용하게 쓰이는 도구가 정규표현식(Regular Expression, Regex)이다. 여기서는 실무에서 자주 쓰이는 기본 문법을 정리했다. 이 정도만 익혀도 대부분의 상황을 커버할 수 있다. 1. 문자 매칭. : 임의의 문자 1개 (줄바꿈 제외)예: a.c → abc, axc[...] : 문자 집합(괄호 안에 있는 문자 중 하나)예: [abc] → a, b, c예: [0-9] → 숫자 0~9예: [a-zA-Z] → 알파벳 전체[^...] : 괄호 안의 문자를 제외예: [^0-9] → 숫자가 아닌 문자 2. 반복 (Quantifier)* : 0회 이상 반복이다.예: ab* → a, ab, abb, abbb...+ : 1회 이상 반복이다.예: ab..

REST API vs Kafka 기반 메시지 큐: 성능과 메시지 유실 고려

1. 발주 시스템 개편 사례에서 얻은 생각 최근 올리브영 기술 블로그에서 발주 서비스 개편 사례를 읽었다. 기존에는 REST API 기반으로 동작하던 시스템이 Kafka 기반 메시지 큐로 전환되면서 성능과 안정성이 크게 개선되었다는 내용이었다. 이 글을 보면서 왜 기존의 REST API 방식으로는 한계가 있었는지, 그리고 Kafka가 어떤 특성을 통해 더 나은 성능을 보장했는지를 다시 생각하게 되었다. 이에 따라 본 포스팅에서는 REST API와 Kafka 메시지 큐의 구조적 차이를 정리하고, Kafka를 사용할 때 고려해야 할 메시지 유실 문제와 전달 보장 전략에 대해서도 함께 살펴보고자 한다. 2. REST API의 한계2.1 요청-응답 블로킹 구조REST API는 요청을 보내면 서버가 처리 후 응..

RESTful이란? 한 번에 이해하는 RESTful의 개념

요즘 API를 설계할 때 흔히 듣는 말이 있다. "RESTful하게 만들자""이건 RESTful하지 않아" 그런데 여기서 말하는 "RESTful"이 정확히 무슨 뜻일까? 이 포스팅에서는 RESTful의 개념만 깔끔하게 정리하고자 한다.RESTful이란? RESTful은 REST(Representational State Transfer) 아키텍처 스타일을 따르는 방식으로 API를 설계한 정도를 표현하는 말이다.즉, RESTful하다는 것은 아래의 철학을 따르고 있다는 의미이다:"자원은 URI로 표현하고, 행위는 HTTP메서드로 구분한다." RESTful한 설계의 예동작RESTful한 방식유저 목록 조회GET /users유저 등록POST /users특정 유저 조회GET /users/123유저 정보 수정PU..

프록시와 리버스 프록시의 차이

웹 서버와 클라이언트 사이에 위치해 통신을 중계하는 기술로 프록시(proxy)와 리버스 프록시(reverse proxy)가 있다. 두 방식은 유사해 보이지만, 목적과 동작 방향에서 뚜렷한 차이가 있다. 각각의 개념과 차이를 정리한다. 1. 프록시(Proxy)란?프록시는 클라이언트가 요청을 보낼 때 중간에 위치해 대신 요청을 처리하는 서버이다. 사용자는 직접 서버에 접속하지 않고, 프록시를 거쳐 외부 자원에 접근하게 된다. 동작 흐름 주요 목적사용자의 IP 주소를 숨길 수 있다.특정 사이트 접근을 제한하거나 로그를 기록할 수 있다자주 요청되는 자원을 캐싱해 응답 속도를 높일 수 있다내부망에서 외부 인터넷으로의 접근을 제어할 수 있다 활용 예기업이나 학교에서 인터넷 트래픽을 관리하거나 감시할 때 사용된다...

Network 2025.06.20

정적 렌더링(Static)과 동적 렌더링(Dynamic)의 차이

최근 Next.js 공식 가이드를 참고하다가 "정적과 동적 렌더링"에 대한 설명이 잘 정리되어 있어 포스팅으로 공유한다.웹 개발에서 자주 등장하는 개념이지만, 실제 사용 사례와 코드로 접하면 더 명확하게 이해할 수 있어 정리해본다. 정적 렌더링 (Static Rendering)정적 렌더링은 요청 전에 페이지의 HTML을 미리 생성해 두는 방식이다. 빌드 시점 혹은 최초 요청 시 데이터를 가져와 HTML로 만들어 두고, 이후에는 캐시된 결과를 재사용한다. 특징빠른 응답 속도CDN 캐싱* 가능자주 변경되지 않는 컨텐츠에 적합*CDN 캐싱: 전 세계에 분산된 서버들이 컨텐츠를 미리 저장해두고 사용자의 요청에 가장 가까운 서버에서 빠르게 응답하는 방식. 예시 코드 (Next.js 기준)export defaul..

Waterfall Request 방식이란?

Waterfall Request 방식은 여러 개의 비동기 데이터 요청을 순차적으로 처리하는 방식이다.하나의 요청이 완료된 후에야 다음 요청이 실행되며, 이전 요청의 결과가 다음 요청의 입력값으로 필요한 경우에 사용된다. 예를 들어, 다음과 같이 요청이 이어지는 구조를 의미한다.const session = await getSession();const user = await getUser(session);const teams = await getTeams(user); 특징1. 의존성 기반 처리 - 각 요청이 이전 요청의 결과에 의존할 때 적합하다. - 흐름이 명확하고 예측하기 쉬운 구조를 가진다.2. 순차적 실행 - 각 요청이 직렬적으로 처리된다. - 이전 요청이 끝나야 다음 요청이 시작된다.3...

HTTP 메서드를 구별해서 사용하는 이유: RESTful API 설계의 중요성

RESTful API를 설계할 때, 흔히 사용하는 HTTP 메서드에는 GET, POST, PUT, DELETE가 있다. 이들 메서드를 적절히 구별해서 사용하는 것이 API의 명확성, 보안성, 확장성 등을 높이는 데 매우 중요하다. 이번 포스팅에서는 왜 HTTP 메서드를 구별해서 사용해야 하는지 그 이유를 살펴보고자 한다. 1. 명확성 및 가독성의미 부여: 각 HTTP 메서드는 특정한 작업을 나타낸다. 예를 들어, `GET` 은 데이터를 조회, `POST`는 데이터를 생성, `PUT`은 데이터를 갱신, `DELETE` 는 데이터를 삭제하는 작업을 나타낸다. 이를 통해 API 사용자와 개발자가 요청의 목적을 쉽게 이해할 수 있다. 문서화: 다양한 메서드를 사용하면 API 문서화가 더 명확해진다. 사용자들은 ..

UTC(협정 세계시)에 대해 & 지역마다 다른 시간값의 대처

1. 개요 시간 관련된 개발을 하다보면 로컬과 서버의 시간이 맞지 않아서 문제가 발생하는 경우가 있다. 그러면 자연스레 UTC시간이라는것을 접하게 되는데, 이게 무엇인지 알아보자. 2. UTC(협정 세계시)란? UTC(Universal Time Coordinated) 는 국제적인 표준 시간의 기준으로 쓰이는 시각을 말한다. 1972년 1월 1일부터 시행된 국제 표준시로, 국제 사회가 사용하는 과학적 시간의 표준이다. 기존에 사용하던 평균태양시 기준의 그리니치 표준시(GMT)를 대체하여 사용하기 시작한 표준시이다. UTC에서 0시, 즉 기준점에 달하는 도시는 런던(영국) 이며, 이를 기준으로 +, -로 시간을 계산한다. 우리나라(대한민국)은 런던을 기준으로 +9시이다. 3. 지역마다 다른 시간값의 대처 위..

쿠키(Cookie), 세션(Session), 토큰(Token [JWT])에 대해

개요 웹 서비스를 운영하다보면 아래와 같이 자주 듣는 말들이 있다. "인증을 쿠키 방식으로 진행할게요" "세션 끊긴거 아닌가요?" "토큰이 없어서 인증이 안되는 것 같아요" 바로 쿠키, 세션, 토큰이라는 단어들이다. HTTP통신에서 이들이 등장한 이유와, 각각이 무엇을 의미하는지 한번 알아보고자 한다. 1. 쿠키, 세션, 토큰의 등장 이유 HTTP 통신은 요청(Request) -> 응답(Response) 이 종료되면 stateless(상태가 유지되지 않음)한 특징 때문에 연결을 끊는 처리 방식이다. 1. Connectionless 프로토콜(비연결 지향) 클라이언트가 서버에 요청을 했을 때, 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식이다. 2. Stateless 프로토콜(상태정보 유지 안함) 클라..

Network 2023.02.10

NETCONF에 대해

1. NETCONF란? 1.1 NETCONF란 IETF NETCONF WG에서 표준화한 network management 프로토콜이다. (RFC 6241) 흔히 '프로토콜' 하면 7계층에 매핑되는 스택에 메시지 교환 절차 및 형식을 떠오르기 마련인데, NETCONF는 TCP/SSH 위에서 정의되는 응용 계층 프로토콜로 주로 xml 형식과 그 형식에 따른 동작에 대한 내용이 주가 된다. 1.2 NETCONF 의 구조 NETCONF layer 구조는 다음과 같다. 그림의 제일 오른쪽에 있는 example을 기준으로 설명하자면, 태그는 message 단위를 정위한다. 이외에 그 응답인 와 이벤트 발생 시 그 알림을 위한 이 있다. 그 내부의 는 message로 전달하고자 하는 동작의 종류를 정의한다. 다음의 ..

Network 2022.09.05
반응형