본문 바로가기

개발

(133)
Github Actions Github Actions Github Actions 를 사용하여 저장소에서 소프트웨어 개발 Workflow를 자동화, 사용자 지정 및 실행할 수 있다. CI / CD 를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완전히 사용된 지정된 Workflow 에서 작업을 결합 할 수 있다. Workflow Workflow는 저장소에 추가하는 자동화 된 절차이다. 하나 이상의 작업으로 구성되며 이벤트에 의해 예약되거나 트리거 될 수 있다. Workflow를 통해 프로젝트 빌드, 테스트, 패키징, 릴리즈 또는 배포 할 수 있다. Runners Runner는 GitHub Actions runner application 이 설치되어 있는 서버이다. GitHub에서 호스팅하는 러너를 사용하거나..
[Javascript] 장식자(Decorator) 장식자(Decorator)는 하나의 코드를 다른 코드로 래핑하거나, Javascript 함수를 래핑하는 방법이다. 데코레이터는 동일한 크래스의 다른 객체에 동작에 영향을 주지 않고, 정적으로 또는 동적으로 개별 객채에 동작을 추가할 수 있는 디자인 패턴이다. 기본 기능을 수정하지 않고 기능을 향상시키는데 사용된다. Decorator는 Python 및 C# 과 같은 언어에서 사용되었으며, Javascript 에서도 사용된다. 문법 let variable = function(object) { object.property = 'characteristic'; } // Use as decorator @variable class GFG { } console.log(GFG.property); 예시 ES6에서 Deco..
SwiftUI의 장단점 및 UIKit의 차이점 SwiftUI - 특징 SwiftUI는 IOS 13 의 출시와 함께 제공된 UI 프레임워크로 선언적 구문과 통합플랫폼을 지향한다는 특징이 있습니다. - 장점 배우기 쉽고 코드는 간단하고 깔끔합니다. UIHostingController를 사용하여 UIKit과 혼합하여 사용할 수 있습니다. 테마를 쉽게 관리 할 수 ​​있습니다. (개발자는 앱에 다크 모드를 쉽게 추가 할 수 있습니다.) SwiftUI는 BindableObject, ObjectBinding 및 전체 Combine 프레임 워크를 사용하여 반응 형 프로그래밍을 위한 메커니즘을 제공합니다. 실시간 미리보기를 제공합니다. SwiftUI는 더 이상 Interface Builder가 필요하지 않습니다. 대화 형 인터페이스 편집기 인 Canvas로 대체되..
고가용성 (High Availability) 고가용성 (HA, High Availability) 이란 긴 시간동안 지속적으로 운영이 가능한 시스템이나 컴포넌트를 말한다. HA의 방법으로는 클러스터링, 이중화, RAID 구성 등이 있다. 클러스터링은 여러개를 모아서 하나를 구성하는것을 의미하며 네트워크 부하에 의한 장애를 대비하기 위한 방법이다. 이중화는 고장에 대비하기 위한 방법이며 보통 Active와 Stand by 라고 한다. 네트워크 이중화, 서버 이중화 등이 있다. RAID는 고장에 대비하기 위한 방법이며 하드디스크에 사용한다. 물리적으로 두개인 하드를 논리적으로 한개의 하드디스크로 관리하는 방법이다. # 참고자료 - www.linux-ha.org/wiki/Main_Page
DB Sharding 샤딩(Sharding)은 같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산 저장하는 방법을 말한다. Horizontal Partitioning 이라고 볼 수 있다. 샤딩(Sharding)을 적용하게 되면 프로그래밍, 운영적 복잡도는 증가. 분산이 잘 되지 않을 경우, 한쪽으로 Data 가 집중되어 Hotspot 이 발생. 샤딩은 Shard Key를 어떻게 정의하는지에 따라 데이터의 효율적인 분산을 결정. - Hash Sharding Shard Key : Database id 를 Hashing (Cluster 안의 Node 개수로 Hash 크기 결정) Cluster 의 Node 개수의 변경에 따라 ReSharding 이 필요할 수 있다. - Dynamic Sharding Naming 을 기준으..
Nginx CORS 활성화 # cors configuration # whitelist of allowed domains, via a regular expression # if ($http_origin ~* (http://localhost(:[0-9]+)?)) { if ($http_origin ~* .*) { # yeah, for local development. tailor your regex as needed set $cors "true"; } # apparently, the following three if statements create a flag for "compound conditions" if ($request_method = OPTIONS) { set $cors "${cors}options"; } if ($reque..
MySQL 8.0 Remote 설정 1. /etc/mysql/mysql.conf.d/mysqld.cnf 파일 내 아래 부분 수정 bind-address = 0.0.0.0 혹은 bind-address 부분 주석 처리 # bind-address = 127.0.0.1 2. remote 접속용 user 생성 CREATE USER 'USERNAME'@'HOSTNAME' IDENTIFIED BY 'PASSWORD';
MySQL 8.0 Requested authentication method unknown to the client 이슈 해결 1. /etc/mysql/my.cnf 에 다음 내용 추가 [mysqld] default_authentication_plugin= mysql_native_password 2. mysql 에서 root 사용자로 다음 명령 실행 FLUSH PRIVILEGES;

반응형