IT

· 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..
· IT/라라벨
Laravel 로 개발을 하다 보면 Facade, Singleton, Alias 라는 용어를 접할수 있게 되는데 Facade 를 공부하다보면 Alias 는 뭐지 궁금하기도하고 Singleton 을 공부하고나면 Facade 와 무슨 차이인지 궁금해질수도 있다. (Facade 도 하나의 request 생명주기 동안 static 하게 전역적으로 값을 관리할수 있기 때문) 오늘은 각 개념의 의미, 차이점, 그리고 언제 어떻게 사용하는 것이 좋은지 알아보려고 한다. Facade란?Facade는 복잡한 라이브러리의 기능을 간단한 인터페이스로 사용할 수 있게 해주는 디자인 패턴입니다. Laravel에서 Facade는 서비스 컨테이너에 바인딩된 객체에 대한 "정적" 인터페이스를 제공 Facade의 특징서비스 컨테이너..
· IT/라라벨
트랜잭션의 기본 개념트랜잭션은 데이터베이스의 상태를 변경시키는 하나의 논리적 작업 단위. 트랜잭션은 다음과 같은 특징이 있다. (ACID)원자성(Atomicity): 트랜잭션의 모든 연산이 완전히 수행되거나 전혀 수행되지 않아야 함.일관성(Consistency): 트랜잭션 전후로 데이터베이스는 일관된 상태를 유지해야 함.격리성(Isolation): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 함.지속성(Durability): 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 함. Nested TransactionsNested transactions 은 트랜잭션 내에서 또 다른 트랜잭션을 시작하는 개념. 이는 복잡한 작업을 더 작은 단위로 나누어 관리할 수 있게 해준다. 그러나 MySQL..
· IT/Java
자바 14에서 Preview 형태로 나와 자바 16부터 정식 지원하는 record 타입 클래스가 있다. 불변 객체를 위한 클래스라고도 한다. 왜냐하면 모든 필드가 final 로 정의되기 때문이다. 사용법 public record Person( String name, int age, String gender ) { } Person person = new Person("이준호", 99, "M"); System.out.prinln(person.name()); // 이준호 소괄호 안에 필드를 정의한다. 클래스내 구현 내용이 있든 없든 중괄호가 무조건 있어야 한다. 클래스 필드에 접근 할 경우 get{필드명} 이 아닌 {필드명} 만을 사용한다. ex) person.name() 특징 모든 필드는 final 로 선..
올해 1월 OpenAI 에서 GPT 스토어(GPTs)를 출시하였는데 ChatGPT 와 외부 리소스를 연동하여 ChatGPT 의 활용폭을 좀더 넓힐수 있다. 난 크롤링한 해외 뉴스 데이터를 번역하여 내용을 요약, 큐레이션을 해보고 싶었고 금전적인 이유로 OpenAI API 를 쓸지 Gpts 를 활용할지 고민이 있었다. (사실 비용이 좀 들어도 상관없다면 OpenAI API 를 활용하는게 가장 깔끔하다.) 결국 Gpts 도 경험해볼겸 api 서버와 Gpts 를 연동해보았다. (GPT Plus 이용자만 GPTs 사용이 가능하다.) 1. GPTs 생성 화면으로 이동 2. GPTs 설정 instruction 에 작업내용에 대한 지시를 할 수 있다. GPTs 는 웹 브라우징이 가능하고 DALL·E 를 활용한 이미..
사용자 메뉴얼을 위키 형태로 만들어야 할 일이 있었는데 어떻게 구축할지 고민이 있었고 요구사항은 다음과 같았다. - 버전관리가 되면 좋겠다. - 간편하게 구현, 관리 포인트를 줄이고 싶다. (static 웹 페이지) - 관리자가 에디터로 편집 (optional) - 기존 서비스 사용자 기반 접근 권한 관리 (optional) 버전 관리는 git 으로 하면될거 같다. 그리고 optional 은 되면 좋고 안되도 괜찮은 사항이라 간편하게 구현 할수있는 것을 중점으로 알아보았다. wiki.js mkdocs sphinx 알아본 바 오픈소스로 위키를 구현할수 있는 프로젝트는 위 3가지 정도가 메이저하게 쓰이는 것 같고 특징은 다음과 같다. wiki.js - 상대적으로 복잡한 구현 DB 와 호스팅이 필요하기때문에 ..
_이준호_
'IT' 카테고리의 글 목록 (2 Page)