12년간 기업시스템을 직접 구축하여 이용한다고 생각했을때 12년동안 일어날 수 있는 일들 새로운 고효율 하드웨어의 등장 OS의 메이저 업그레이드 3~5회 DB나 앱서버도 메이저 업그레이드 발생 가능 보안 패치도 필요 개발방법론 및 패러다임의 변화가 있을 수 있음 이렇듯 비지니스의 생명주기에 의해 좌우된다기 보다는 SW/HW에 의해 좌우됨 이뮤터블인프라스트럭쳐란? 구축된 시스템에 변화가 필요하다면 폐기하고 다시 구축하라 '변경' 필요시에 일부를 변경하기 보다 전체를 교체하여 사용하자는 개념 변경 발생시 서버를 완전히 새로 구성하여 배포하고 기존 서버는 폐기함 반면 기존(뮤터블)에는 이미 있던 특정서버에서 설정, 소스코드 따위를 변경을 가하는 방식이었음 장점: 관리·확장·테스트 편의성, 이식성 장점: IT 복잡도 감소, 보안 향상, 쉬운 문제해결! Immutable infrastructure benefits include lower IT complexity and failures, improved security and easier troubleshooting than on mutable infrastructure. 어플리케이션layer 이뮤터블로 구현하여 다운타임을 최소화 하기 위해서는 세션고 같은 state정보는 서버에 두어야 한다 (Dynamo DB) 서버 layer 이뮤터블이 될려면 Shared Nothing 상태가 되어야함. 하지만 DB복사에는 오랜시간이 걸리고 패치빈도도 낮을것이다. 그래서 데이터계층은 이뮤터블이 적절하지 않음
1. 톰캣설치 2. Jenkins.war 파일 다운로드 3. 톰캣의 webapp폴더에 Jenkins.war파일 넣기 4. 톰캣 bin 폴더의 startup.bat 실행 이렇게까지만 하면 127.0.0.1:8080/jenkins 로 접속가능함 외부에서 접속하기위한 방법 5. 톰캣끄기 6. 톰캣 conf 폴더의 server.xml 수정하여 원하는 포트로 설정(아래그림참조) 7. 윈도우즈 방화벽 -> 인바운드규칙 ->새규칙에 해당 TCP포트번호를 추가 8. 공유기를 쓴다면 공유기 포트포워드를 설정(아래그림참조)
요즘 많이 쓰는 싱글톤 for Java 더블락체크(보통), 빌퍼지(good, mostly used), enum(better for java) 더블락체크 lazy initialization을 하는데 함수에 synchronized를 쓰는게아니라 함수 안에서 null체크를 한번 하고나서 null인 경우에만 synchronized를 쓰게함 null이 아닐때눈 synchronized를 호출하지 않아 성능 향상 빌퍼지(Bill puge) A.K.A. Initialization-on-demand holder Class안에 LazyHolder static class를 선언하고 static final 인스턴스를 생성 getInstance시에 위의 static class안에 있는 인스턴스를 리턴 장점 Class안에 static 변수가 없기때문에 lazy initialization이 구현됨 쓰레드세이프한 이유: And since the initialization phase writes the static variable INSTANCE in a serial operation, all subsequent concurrent invocations of the getInstance will return the same correctly initialized INSTANCE without incurring any additional synchronization overhead. final이기 때문에! public class BillPughSingleton { private BillPughSingleton (){} private static class SingletonHelper { private static final BillPughSingleton INSTANCE = new BillPughSingl...
댓글
댓글 쓰기