전체 글

개발을 하며 겪었던 경험, 이슈를 토대로 자료를 조사하고 느낀점을 기록합니다. 저와 비슷한 고민을 하고 비슷한 문제를 겪고 계신분들에게 도움이 됐으면 합니다.
Cloudflare 소개와 이점Cloudflare는 서버 호스팅 시 보안 및 최적화를 위해 많이 사용되는 리버스 프록시 서비스이고 주요 장점은 아래와 같다.DDoS 방어 등 비정상적인 트래픽 차단전역 CDN을 통한 라우팅 최적화WAF(Web Application Firewall) 제공SSL/TLS 인증서 무료 제공DNS 서비스 무료 제공한국 리전(ICN) 사용 시 주의사항Cloudflare는 전 세계 300개 이상의 데이터센터를 보유하고 있으며, 한국에는 인천(ICN)에 데이터센터가 위치해 있다. 하지만 무료 플랜 사용 시 다음과 같은 문제가 발생하는데..리전 강제 할당무료 플랜의 경우 대부분 LAX(로스앤젤레스) 리전으로 강제 할당한국에서 접속 시 물리적 거리로 인한 레이턴시 증가실제 성능 테스트 결과..
· 영어
이 문장은 왜 이럴까?"This package can make a Laravel app tenant aware."이 문장을 처음 봤을 때, tenant aware라는 표현이 눈에 띄었다. 보통 복합어 형태의 형용사는 하이픈(-)을 사용하는데 왜 이 문장에서는 하이픈이 없을까?문법적 이유이는 사역동사 make의 문장 구조와 관련이 있다. 사역동사 make는 다음과 같은 구조를 갖는다:make + 목적어 + 목적격보어(형용사/명사)위 문장에서 'tenant aware'는 형용사구이지만, 직접 명사를 수식하는 것이 아니라 목적격 보어로 사용되어서 하이픈을 사용하지 않는다. 이러한 차이는 다양한 예시를 통해 더 명확하게 이해할 수 있다.복합 형용사의 구성복합 형용사는 크게 두 가지 형태로 구성될 수 있다:명사 ..
· IT/DB
MySQL DB 에 한글 저장시 깨짐현상이 발생하여 트러블슈팅한 과정을 적어보고자 한다.MySQL Character Set 불일치 문제 해결하기1. 문제 상황# 현상- 한글 데이터 저장 시 깨짐 발생 (예: "안녕하세요" -> "안ë..."")- 저장된 한글 데이터 조회 시 깨짐- 개발 환경에서는 정상 동작하나 운영 환경에서 문제 발생# 증상 확인 방법- 데이터베이스에서 직접 조회했을 때의 데이터 상태- 애플리케이션에서 조회했을 때의 데이터 상태2. 원인 분석-- 1. Character Set 레벨Server > Database > Table > Column 순으로 적용-- 2. Connection 설정 확인SHOW VARIABLES LIKE '%character%';SHOW VARIABLES LIK..
웹에서 한글 특수기호가 깨지는 현상 해결하기: '㈝' 문자를 중심으로웹 개발을 하다 보면 ㈝, ㈜, ㉾ 같은 한글 특수기호가 깨져서 표시되는 현상이 발생한다. 오늘은 ㈝ (오전) 문자를 중심으로 이 문제를 해결하는 방법을 알아보자.목차특수문자 이해하기문제 상황해결 방안구현 예시결론특수문자 이해하기문제의 특수문자 정보유니코드 코드 포인트: U+321D이름: Parenthesized Korean Character Ojeon유니코드 버전: 4.0 (2003년 4월)블록: Enclosed CJK Letters and Months (U+3200 - U+32FF)스크립트: Hangul (한글)카테고리: Other Symbol (So)문제 상황아래 글을 읽다가 특수문자가 깨진 것을 발견했다. PC마다 정상 출력되거나..
TypeScript에서 as 키워드 사용하기TypeScript에서 as 키워드를 사용하여 타입을 명시적으로 지정해야 하는 경우는 여러 가지가 있는데 주요 상황들은 아래와 같다.1. 타입 단언(Type Assertion)이 필요한 경우TypeScript가 추론한 타입보다 개발자가 더 구체적인 타입을 알고 있을 때 사용.let someValue: any = "this is a string";let strLength: number = (someValue as string).length;2. 유니온 타입을 더 구체적인 타입으로 좁힐 때function getLength(obj: string | string[]) { if (typeof obj === 'string') { return (obj as..
· IT/라라벨
Laravel에서 미들웨어(Middleware)는 애플리케이션의 HTTP 요청 처리 과정에서 핵심적인 역할을 담당한다. 미들웨어는 요청(Request)과 응답(Response) 사이에서 동작하며 다양한 기능을 수행할 수 있다.1. 미들웨어의 기본 구조미들웨어는 handle 메서드를 구현하며, $request와 $next 매개변수를 받음.public function handle($request, Closure $next){ // 요청 전 처리 $response = $next($request); // 응답 후 처리 return $response;}요청 전 처리: $next($request) 호출 이전에 실행되며, 요청이 애플리케이션의 다른 부분에 도달하기 전에 동작.응답 후 처리: $n..
1. API Gateway 소개API Gateway의 정의와 역할API Gateway는 클라이언트와 백엔드 서비스 사이의 중개자 역할을 하는 서버입니다. 이는 마이크로서비스 아키텍처에서 특히 중요한 컴포넌트로, 다음과 같은 주요 역할을 수행합니다:요청 라우팅: 클라이언트 요청을 적절한 백엔드 서비스로 전달.프로토콜 변환: 예를 들어, HTTP에서 gRPC로의 변환을 수행.인증 및 인가: 요청에 대한 인증을 처리하고 접근 권한을 확인.로드 밸런싱: 여러 서버 인스턴스에 트래픽을 분산.캐싱: 응답을 캐시하여 백엔드 부하를 줄이고 응답 시간을 개선.모니터링 및 로깅: API 사용량과 성능 메트릭을 수집.API Gateway가 해결하는 문제들복잡성 관리: 마이크로서비스 아키텍처의 복잡성을 클라이언트로부터 숨김...
· IT/php
PHP의 ?: vs ?? 연산자: 차이점과 사용법PHP에서 ?: (엘비스 연산자)와 ?? (Null 병합 연산자)는 비슷해 보이지만 중요한 차이가 있다. 두 연산자의 특징, 차이점, 그리고 적절한 사용 상황에 대해 알아보자.1. ?? (Null 병합 연산자)PHP 7.0에서 도입구문: $result = $a ?? $b동작: $a가 NULL이 아니면 $a를 반환$a가 NULL이면 $b를 반환특징: 오직 NULL 값에 대해서만 대체 값을 제공예시:$username = $_GET['user'] ?? 'Guest';이 코드는 $_GET['user']가 설정되지 않았거나 NULL일 때만 'Guest'를 사용.2. ?: (엘비스 연산자)PHP 5.3에서 도입구문: $result = $a ?: $b동작:$a가 tru..
_이준호_
Anti-삽질