본문 바로가기

개발

(133)
SOLID - 리스코프 치환 원칙 (Liskov Substitution Principle) 리스코프 치환 원칙 하위 클래스는 상위 클래스를 대체할 수 있어야 한다. 이 원칙은 하위 클래스가 오류 없이 상위 클래스를 대신할 수 있는지 확인하는 것이다. 리스코프 치환원칙이 지켜지지 않으면 다형성에 기반한 개방 폐쇄 원칙을 위반하는 것이다. Steve Fenton 이 가정한 리스코프 치환 법칙의 요구사항은 다음과 같다. - 상위 클래스에 상위 클래스 유형 매개변수를 허용하는 메서드가 있는 경우, 하위 클래스는 상위 클래스 유형 또는 하위 클래스 유형을 인수로 받아들여야 합니다. - 상위 클래스가 상위 클래스 유형을 반환하는 경우, 하위 클래스는 상위 클래스 유형 또는 하위 클래스 유형을 반환해야 합니다. #참고자료 https://blog.bitsrc.io/solid-principles-every-d..
OAuth 1.0, OAuth 2.0 OAuth(Open Authorization)는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다 OAuth의 탄생 이전에는 API 접근 위임 방식(API Access Delegation)이 가능한 표준화되지 않은 각각의 인증 방식을 제작하여 사용했다. OAtuh는 API 제어의 목적으로 인증에 참여한 각 이해관계자가 어떻게 서로를 신뢰할 수 있을까에서 시작하였다. 2006년 비밀번호의 통신 문제로 안전한 표준 인증방식에 대한 논의를 통해 2007년 OAuth 1.0이 만들어지고, 2010년에 IETF OAuth 워킹그룹에 의해 IETF 표준 프로토콜로 ..
FastAPI 환경에서 Nginx 와 Uvicorn 을 통한 Deploy + Nginx 와 WSGI(Web Server Gateway Interface)/ASGI(Asynchronous Server Gateway Interface)를 같이 사용하는 이유 - Nginx은 비동기로 외부의 작업연산(요청)을 listen하여 WSGI/ASGI로 전달 (nonblocking to, 더 많은 연산을 빠르게 처리) (Apache는 연산 작업을 책임지고 수행(blocking io)하여 연산을 더 안정적으로 처리) - WSGI/ASGI가 요청을 수행 (Event Driven) - 이벤트 생성, 소비의 주체 분리 (Producer-Counsumer Pattern) - Nginx가 Event loop에 등록한 작업연산(요청)들을 WSGI(ASGI)가 처리하고 결과를 응답하면 Nginx가 클라이언..
Microsoft Certified: Azure Fundamentals (AZ-900)
502 Bad Gateway PHP-FPM 최적화 Nginx, MySQL, PHP0FPM, PHP 8 환경에서 child-process 가 부족하여 lock 발생 에러 확인될 경우 php-fpm conf 파일을 수정하여 최대 요청과 프로세스 수를 수정합니다. [21-Feb-2022 05:14:17] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it php7.4-fpm 평균 프로세스 메모리 추적 ps --no-headers -o "rss,cmd" -C php7.4-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }' 서버 메모리 확인 free -h pm.max_children 계산 서버 메..
Laravel + Nginx PHP 파일 접근시 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 에러 Laravel 에서 존재하지 않는 .php 형식의 파일 접근시 브라우저 내 "File not found." 메시지가 노출되고 nginx error.log 에서 "*8 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream," 내용을 확인할 수 있다. 해당 문제 발생 시 nginx sites-available 파일에서 laravel 404 에러 페이지로 리다이렉트 시키면 된다. error_page 404 /index.php; # pass PHP scripts location ~ \.php$ { if (!-f $document_root$fastcgi_script_name) { return 404; ..
Laravel 현지화 URL Prefix 미들웨어 처리 1. app\Http\Middleware\SetLocale.php 미들웨어 생성
SwiftUI Youtube 앱 설치여부에 따라 브라우저 혹은 앱 오픈 let youtubeId = "8cpOHY6bGYo" // 유튜브 비디오 ID var youtubeUrl = NSURL(string:"youtube://\(youtubeId)")! // 유튜브 URL if UIApplication.shared.canOpenURL(youtubeUrl as URL){ // 유튜브 앱 설치여부 체크 UIApplication.shared.open(youtubeUrl as URL) } else { // 유튜브 앱 미설치시 브라우저 오픈 youtubeUrl = NSURL(string:"https://www.youtube.com/watch?v=\(youtubeId)")! UIApplication.shared.open(youtubeUrl as URL) }

반응형