분류 전체보기
-
-
GoF 디자인패턴IT/Design Patterns 2022. 5. 22. 23:21
1. GoF 디자인 패턴 ?? - GoF (Gang of Four) 라 불리던 4명의 개발자들이 SW개발영역에서의 개발 패턴을 구체화하여 발간한 책을 통해 자주 발생하는 고질적인 문제 발생 시 해결할 수 있는 해결책을 제시. 2. GoF 디자인 패턴의 분류 생성(creational) 패턴 구조(structural) 패턴 행위(behavioral) 패턴 추상 팩토리 (abstract factory) 어댑터 (adapter) 책임 연쇄 (chain of responsibillity) 빌더 (builder) 브릿지 (bridge) 커맨드 (command) 팩토리 메서드 (factory method) 컴퍼지트 (composite) 인터프리터 (interpreter) 프로토타입 (prototype) 데커레이터 (..
-
소프트웨어 설계 5원칙 - SOLIDIT/Design Patterns 2022. 5. 22. 16:50
1. 개념 - SOLID는 SRP, OCP, LSP, ISP, DIP 의 앞 글자를 딴 용어이다. 1. SRP (단일 책임 원칙, Single Responsibility Principle) - 책임의 기본 단위 => '객체' - '책임'의 의미 => '해야 하는 것' 혹은 '할 수 있는 것' 즉, 객체에 책임을 할당할 때는 어떤 객체보다도 작업을 잘 할 수 있는 객체에 책임을 할당해야 한다는 것 - 예) Student(학생) 클래스가 수강 과목을 추가/조회하거나 데이터베이스에 객체 정보 저장/읽기 작업을 하거나 성적표와 출석부를 출력하는 기능을 한다면.. 너무 많은 책임을 수행해야 하기 때문에 불합리하다. Student 클래스는 수강 과목을 추가/조회하는 '책임'만 수행하고 다른 기능은 다른 클래스로 넘..
-
[오류] org.apache.catalina.LifecycleException: Protocol handler start failedIT/SpringBoot&AWS 2022. 5. 15. 22:25
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 참고 URL - https://github.com/jojoldu/freelec-springboot2-webservice/issues/724 원인: 새로운 프로젝트가 8080 포트로 띄워야 하는데 이미 8080 포트를 사용하고 있어 기동 실패 해결방안: 기동 전 8080 포트 사용여부 확인하여 사용 중이면 kill 후 진행할 수 있도록 조치 사실 deploy.sh 스크립트에 8080 포트 사용여부 확인하는 부분이 적용되어 있어서, deploy.sh 실행 권한이 아닐까? 보안 그룹 설정 문제 아닐까? 뒤적뒤적 해봤는데.. 스크립트 명령어가 잘못 기재되어 있었다. ▶ pgrep -fl freelec-springboot2-webservice | gr..
-
nginx를 사용한 무중단 배포 환경 구성IT/SpringBoot&AWS 2022. 5. 15. 16:12
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 앞선 실습에서 Travis CI를 사용해서 EC2에 배포 자동화 환경을 구성하였다. 그런데 기본 포트인 8080 포트로만 접속이 가능하므로, 만약 배포를 하게 되는 경우 잠시라도 접속이 끊기는 현상이 발생한다. 실제 고객이 사용하는 서비스라면 장애 상황이므로 중단없이 배포 가능한 환경 구성이 필요하다. chapter 10.에서는 nginx를 사용해서 무중단 배포 환경을 구성한다. nginx는 리버스 프록시(외부 요청을 받아 백엔드 서버로 요청을 전달하는 기능)가 있어 무중단 환경 구성이 가능하다. 기존 EC2 인스턴스에 추가로 nginx를 설치하면 되고, 구조는 아래와 같다. 즉, nginx가 80(http), 443(https) 포트를 할당..
-
AWS EC2 에 tree 설치하기IT/SpringBoot&AWS 2022. 5. 15. 14:55
What is a Tree? - tree 명령어는 디렉토리 내 파일을 트리 형식으로 보여주는 명령어이다. - ls 명령어도 디렉토리 내 파일을 보여주지만, tree 명령어는 구조화된 리스트로 시각화하여 보여주기 때문에 유용하다. How to install tree on linux? 1. 확인 [ec2-user@ip-xxx-xx-xx-xx ~]$ tree -bash: tree: command not found 2. 설치 [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo yum install tree Loaded plugins: extras_suggestions, langpacks, priorities, update-motd amzn2-core | 3.7 kB 00:00:00 amzn2extra..
-
AWS EC2 - CodeDeploy 연동 설정IT/SpringBoot&AWS 2022. 5. 14. 16:42
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 기본 흐름 - repository인 github에 소스가 커밋/푸시되면, github이 Travis CI로 트리거를 걸어 build, test, notify(slack, email, etc ..) 완료하게 된다. - build 결과인 jar 파일은 일종의 파일 서버 역할을 하는 S3로 전달 - 이후 실제 배포를 CodeDeploy를 통해 배포 요청을 하면 S3에 저장된 jar 파일을 EC2 서버로 배포하게 된다. 각 시스템 간 연동이 필요한데 * github - Travis CI 간 연동 ㄴ github 에 .travis.yml 설치하므로써 트리거를 걸어줌 * Travis CI - AWS S3 간 연동 ㄴ .travis.yml에 빌드 후 ja..
-
Travis CI로 빌드하기IT/SpringBoot&AWS 2022. 5. 14. 08:53
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 드디어 CI/CD를 실습해볼 차례다. 도서에서는 아래와 같은 순서로 가이드 하고 있다. travis-ci.org에 접속 > 로그인 후 settings를 통해 저장소를 활성화 Travis CI 설정을 위해 .travis.yml 파일 작성 후 커밋/푸시 Travis CI 저장소 페이지에서 build 상태 확인 => 빌드 완료되면 기 설정한 이메일로 완료 메일 확인 그런데 실제 진행해보니 변경된 사항이 있다. 1. 접속 경로 : travis-ci.org => travis-ci.com 2. plan 설정 - 도서에서는 파일을 커밋/푸시하면 자동으로 빌드가 진행되는 것으로 안내하였지만 그 사이 정책이 바뀐듯 하다. - 실제 상단에 아래와 같은 얼럿이 ..