요즘 VM에 서버 구축하는 업무를 하고 있는데 분명 잘했다고 생각했는데 오늘 예상치 못한 에러를 만났다. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] ... Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '~' : Invocation of init method failed; nested exception is o..
Yellow dog Updater, Modified의 약자. RPM 기반의 시스템을 위한 자동 업데이터 겸 패키지 설치/제거 도구. Linux는 계열에 따라 패키지 관리 명령어가 다르다. 레드햇계열(CentOS가 레드햇계열)은 yum을, 데비안, 우분투 계열은 apt-get을 사용한다. 이런 도구들을 사용하는 이유는 원하는 패키지를 설치하기 위한 의존성들을 함께 설치해주고, 설치과정이 직접 찾아서 하는 것보다 간단하기 때문이다. yum과 같은 역할을 하는 것이 RPM(Redhat Package Manager)이 또 있는데, RPM은 패키지 파일을 구성하기 위한 구성요소들이 전부 갖춰져야 한다. yum은 구성요소들은 웹에서 다운로드받아서 알아서 설치해주므로 더 편리하다. https://wooono.tist..
공통업무를 프로그램 흐름의 앞, 중간, 뒤에 추가하여 자동으로 처리할 수 있는 방법이 세 가지인데, Filter, Interceptor, AOP이다. Interceptor와 Filter는 Servlet 단위에서 실행되고, 반면 AOP는 메서드 앞에 Proxy패턴의 형태로 실행된다. 요청이 들어오면 Filter -> Interceptor -> AOP -> Interceptor -> Filter순이다. Filter는 동일한 웹 어플리케이션의 영역 내에서 필요한 자원들을 활용하고, 웹 어플리케이션 내에서 동작하므로 스프링 Context에 접근하기 어렵다. Interceptor는 스프링에서 관리되기 때문에 스프링 내의 모든 객체에 접근 가능하다. https://goddaehee.tistory.com/154 [S..
여러 개의 스레드가 한 개의 자원을 사용하고자 할 때, 현재 데이터를 사용하고 있는 해당 스레드를 제외하고 나머지 스레드들은 데이터에 접근할 수 없도록 막는 개념이다. 너무 남발할 경우 프로그램 성능 저하를 일으킬 수 있다. Synchronized 키워드를 사용하면 자바 내부적으로 메서드나 변수에 동기화를 하기 위해 block과 unblock 처리를 하게 되는데 이런 처리들이 만약 너무 많아지게 되면 오히려 프로그램 성능 저하를 일으킬 수 있기 때문이다. 출처 : https://coding-start.tistory.com/68 java - synchronized 란? 사용법? java - synchronized 란? 사용법? 멀티스레드를 잘 사용하면 프로그램적으로 좋은 성능을 낼 수 있지만, 멀티스레드 ..
Cache Manager. 캐시는 동일한 요청이 들어오면 복잡한 작업을 수행해서 결과를 만드는 대신 이미 보관된 결과를 바로 돌려주는 방식이다. 사용자가 만드는 데이터보다는 서비스에서 제공하는 컨텐츠(뉴스, 허브, 실시간 검색어 등)에 대부분 적용해서 사용중이다. 아래의 조건을 만족한다면 캐시 사용을 고려해보는 것이 좋다. 반복적으로 동일한 결과를 돌려주는 작업 각 작업의 시간이 오래 걸리거나 서버에 부담을 주는 경우(외부 API/DB 데이터호출 등) 출처 : https://jojoldu.tistory.com/57 SpringBoot + Ehcache 기본 예제 및 소개 팀내 신입사원들이 입사하게 되어 간단하게나마 참고할 수 있도록 Spring Cache에 대해 샘플예제와 소개를 정리하게 되었다. 아주 ..
TCP/IP에서 IP패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜. IP에는 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어 있다. 따라서 정상적으로 목적지 호스트에 도달하는 경우에는 IP에서 통신이 성공하고 종료되므로 아무런 문제가 없다. https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%EC%A0%9C%EC%96%B4_%EB%A9%94%EC%8B%9C%EC%A7%80_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C 인터넷 제어 메시지 프로토콜 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는..
dpkg 확장자는 *.deb이며 이를 패키지라고 부른다. dpkg는 하나의 패키지를 설치하기 위해 다른 패키지가 필요할 경우 해결이 까다롭다. 이를 해결하기 위해 apt-get이 등장했다. apt-get 인터넷을 통하여 필요한 파일을 저장소에서 자동으로 모두 다운로드해서 설치하는 방식 dpkg명령의 패키지 의존성 문제를 완전하게 해결 추가로, apt-cache는 패키지를 설치하기 전에 패키지에 대한 정보나 의존성 문제를 미리 확인하는 명령어 https://m.blog.naver.com/PostView.naver?blogId=jwlee0312&logNo=221050742182&proxyReferer=https:%2F%2Fwww.google.co.kr%2F
오픈 소스 소프트웨어로 다양한 서비스의 성능을 분석하고 측정하기 위한 도구이다. Sampler : 사용자의 행동 대행(Request) Listener : 처리결과에 대한 data 표시(Response) ThreadGroup : 각종 Test 진행 JMeter 안에는 여러 개의 Thread를 구성할 수 있으며, 하나의 Thread당 하나의 URL을 매핑시킬 수 있다. 하나의 Thread를 하나의 ThreadGroup으로 생성하여 관리한다. Number of Threads(Users) : 동시 사용자 수 Ramp-up Period(in Seconds) : 사용자(Thread) 증가 시간, 사용자를 서서히 증가시킬 때 사용 Loop Count : 반복횟수 https://ko.vvikipedla.com/wiki..