지속적 통합(Continuous integration, CI)과 지속적 제공(Continuous delivery, CD), 줄여서 CI/CD는 애플리케이션 개발팀이 더 자주, 안정적으로 코드 변경을 제공하기 위해 사용하는 문화와 운영 원칙, 일련의 작업 방식CI/CD는
uri 가 .php 로 끝나는 요청의 경우 fastcgi로 처리한다./sites/demo/info.php 를 내보낼 때/run/php-fpm/php-fpm.sock 로 php-fpm에서 처리하고 nginx에게 전달 후 브라우저에게 내보낸다.php-fpm.sock이 없다
freenomfreenom 도메인과 route53 설정acm으로 ssl 인증서 발급하고 loadbalancer와 route53 설정
해당 오류는 Centos 패키지 저장소의 주소가 잘못되거나, 접속하지 못할 때 발생하는 오류로, 공식 지원이 끝난 CentOS 8에서 빈번하게 발생할 수 있다.마이그레이션 -> CentOS Stream으로저장소 URL 변경디렉토리 이동 후 경로 변경
master 브랜치에 push 될 경우, Github Action이 실행된다.Github Action은 S3에 jar파일과 스크립트와 appspec.yml를 압축해 업로드 하고, CodeDeploy에게 배포를 명령?하는 역할을 한다.배포의 타겟이 되는 배포그룹에 포함된
EC2 인바운드 규칙http 에 대한 IPv4, IPv6 접근 허가 + 외부 아이피로 접근하기 위한 SSHRDS 인바운드 규칙첫번째는 EC2의 내부통신, 두번째는 테스트를 위한 외부통신S3 스프링부트 S3 설정스프링부트 설정
root 유저가 아닌 iam 사용자로 진행aws configure 로 엑세스 키와 시크릿 엑세스키, 리전을 설정aws iam list=users 로 계정의 모든 iam 사용자를 출력만약 iam read권한의 없다면 엑세스가 거부당함IAM Role이란 사용자와 비슷하지만
외부 라이브러리를 가져와 쓸 때 용도에 맞게 조리하기 위해 한 단계 클래스로 감싸는 패턴이다.퍼사드 패턴은 복잡한 프레임워크나 시스템을 필요한 부분만 간단한 인터페이스로 정의해 사용하게 용이하게끔 한다.
데코레이터 패턴은 동적으로 행동을 추기하기 위한 패턴이다.상속은 정적이기에 구성으로 구현된다.PlainBeverage 와 BeverageDecoration 구현체 모두 Beverage 인터페이스를 구현했다.
방문자 패턴은 알고리즘이 작동하는 객체 구조에서 알고리즘을 분리하는 방법방문자와 방문 공간을 분리해 방문 공간이 방문자를 맞이할 때 이후의 로직은 방문자에게 모두 위임하는 패턴이다. 방문공간 ShoppingItem 인터페이스와 구현체방문자 ShoppingCartVisi
NPE 를 피하기 위한 디자인 패턴결론적으로 Customer 객체를 추상화해 isNull() 메서드를 사용하게 된다.CustomerFactory 를 거쳐 customer를 가져와 NPE를 피할 수 있다.
애플리케이션에 서로 비슷한 프로시져가 있다면 상속을 통해 특정한 개별화된 단계를 재정의하는 게 좋다.전략 패턴과 비슷하지만 템플릿 패턴은 상속(정적)을 이용하고, 전략패턴은 구성(동적)을 이용한다.상속은 클래스 수준에서 정의되고, 구성은 객체 수준에서 정의됨숫자를 정렬
명령, 수신자, 호출자로 구성된다.우선 제일 만만한 수신자 Light 이다. receiver는 command의 구현체를 구현할 때 필요한 클래스이다. command 클래스와 그 구현체(Concrete command) 이다.커맨드는 실행될 기능에 대한 인터페이스이다.호출
옵저버 패턴은 일 대 다 관계의 의존성 일 때 정의한다.subject : 관찰되어지는 object (일) / 버튼observers : subject에 의존적인 리스너들 (다)subject가 변경되면 의존하고 있는 모든 리스너들의 상태가 자동으로 변경되거나 업데이트 된다
전략패턴은 상속 (extends) 보다 구성(class fleid)에 의존한다. 상속은 단일 클래스만 확장할 수 있고, 컴파일 타임에 타입이 지정되므로 정적이다. 이와 반대로 구성은 관계로 이루어져 있고 런타임에 동작을 변경할 수 있어 유연하다는 장점을 가지고 있다.
프로토 타입 패턴은 생성된 객체가 자기 자신을 새롭게 복제하는 패턴을 의미한다.만약 객체를 생성하고 동등한 객체를 외부에서 생성하려고 하면 불필요한 의존성이 생길 수 있다.그렇기 때문에 인스턴스에게 자신을 복사하는 능력(메서드)를 주는 것을 프로토타입 패턴 이라고 한다
클래스의 필드가 많을 경우, 생성자를 통해 인스턴스를 생성하는 메서드를 사용하기란 쉽지 않다.(각 파라미터의 위치가 정해져 있어서 사용하기 어렵다.)멀티 쓰레드의 경우 하나의 객체를 여러 쓰레드가 조작할 위험이 있다.(기본 생성자를 사용해 인스턴스를 만들고 setter
팩토리 패턴은 SOLID 원칙을 지키기 위해 느슨한 결합을 위한 OOP 디자인 패턴이다.코드 내에서 new 키워드를 사용했다는 의미는 인터페이스가 아닌 구상 클래스를 의존한다는 의미이다. (SOLID 위반) 별도의 클래스에서 클래스를 인스턴스화 할 수 있는데 이를 팩토
위의 코드는 싱글톤 패턴을 적용한 DatabaseConnector 클래스이다.1\. 멀티 쓰레드 환경에서도 싱글톤을 보장할까?멀티쓰레드 환경에서 getInstance()으로 2개의 객체가 생성될 수 있기에 클래스 단위의 동기화가 필요하다.2\. Reflection At