개발 썸네일형 리스트형 [Linux]Java의 CPU, 메모리 사용 분석 관리하는 사이트의 최근 비정상적인 CPU, 메모리 점유율(Heap Space 에러)로 인해 접속이 되지않는 현상이 있었다. 팀장님의 가이드에 따라 명령어를 익히고, 기록으로 남긴다. 먼저 원인 파악을 위해 서버를 내리기 전 시스템의 상태를 확인해야 한다. -------------------------- top -b -d 1 > top.log -------------------------- top 명령어를 통해 cpu 상태를 확인할 수 있고 '-b' 옵션은 배치를 의미, '-d 1' 은 기존 3초 간격 출력에서 interval을 1초로 설정! 그리고 '> top.log' 를 통해 출력되는 상태를 top.log 파일로 저장한다는 의미이다. (관련 링크 : https://twpower.github.io/114.. 더보기 [Intellij]정적 페이지 새로고침(스프링부트) 기존에 사용하던 버전의 인텔리제이에서는 Edit Configurations에서 톰캣의 설정만 'Update action' 의 동작을 'Update classes and resources' 로 바꿔주면 되었다.( 그 외에도 몇가지 설정이 있으나.. 이미 많이 알려진 설정들이었다) 하지만 이번 프로젝트를 시작하려고 하면서 간단히 테스트겸 페이지를 만들었는데 html과 css 요소들을 아무리 바꾸고 새로고침해도 반영되지 않았다... 열심히 검색 후 추가 설정이 필요하다는 사실을 알게 되었다. Settings -> Advanced Settings -> Compiler 의 항목을 체크해주면 되었다. 참고한 글의 출처는 (https://kim-oriental.tistory.com/8) 더보기 [Linux]ps aux 최근 업무 중 고객사의 사이트가 느려지는 현상이 있어 서버를 재시작 하였는데, 프로세스가 완전히 종료된 것을 확인하지 못하고 재시작하여, 2개의 프로세스가 떠 있는 이슈가 발생했다. 분명 서버는 내려갔는데 이상하게 프로세스가 종료되지 않고 있던 상황이었다. 리눅스에서는 ps aux 명령어를 통해 프로세스의 상태를 확인할 수 있다. ps aux | grep '프로세스명' 을 입력하게 되면 가동중인 프로세스명을 특정지어 확인이 가능하다. 그 후 kill 'PID(프로세스아이디)' 로 한 프로세스를 종료하여 해결...! 간혹 kill 로 프로세스가 종료되지 않는 경우 kill -9 를 통해 강제로 종료할 수 있지만, 문제가 발생할 수 있기에 신중하게 사용해야 한다. * 유사한 기능을 하는 ps -ef 명령어도.. 더보기 [Java]Comparator 이름 그대로 값의 비교를 도와주는 인터페이스이다. 프로그래머스 코딩 연습중.. 값의 크기비교부분에서 헤매고 있다가 간단한 서칭을 통해 도움을 얻고, 동시에 해당 클래스에 대해 조금 더 알아보게 되었다. 일반적으로 기본자료형의 경우에는 Arrays.sort()를 통해 간단하게 정렬이 가능하지만, 값의 크기에 대한 기준이 없는 객체의 경우에는 그 기준을 정해줄 필요가 있다... 따라서... 위와같이 정렬시에 Comparator 인터페이스의 compare 메소드를 오버라이드 하여 두개의 값에 대해 정렬 기준을 정해줄 수 있다. 첫번째 인자가 두번째 인자보다 작다면 음수, 같으면 0, 크다면 양수를 리턴하게 된다. 아직은 이해가 부족한 것 같다.. 추후에 Comparable 인터페이스와 함께 비교해보아야겠다. 더보기 [Java]PriorityQueue 프로그래머스 코딩테스트 연습문제를 진행하다가.. Heap 자료구조와 관련된 문제를 ArrayList로 풀었다가 효율성에서 완벽하게 실패했다. 역시 문제에서 제시하듯이 Heap 자료구조에 대한 공부와 함께 해당하는 라이브러리를 사용해야 할 것 같았다. 그리고 프로그래머스 질문하기에서 누군가 Heap에 대해 상세하게 설명한 링크를 띄워주었다. (https://shanepark.tistory.com/261) Heap 자료구조는 최소, 최대값을 가져오는데에 최적화 된 자료 구조이고, 루트값만 가져오면 되기 때문에, 시간복잡도 또한 O(1)이다. 그리고 새로운 값을 추가(add) 또는 삭제(poll)할 경우의 시간복잡도는 O(log n)이다. 해당링크로 들어가 Heap 구조에 대해 이해하고 이러한 구조를 구현한 .. 더보기 [HTTP] TCP : 3way handshake HTTP를 공부하면서 함께 접하게되는 TCP 프로토콜에서 빠지지 않는 가장 중요한 개념중 하나가 3way handshake 이다 SYN 으로 클라이언트가 서버에 접속 요청을하면 서버는 요청을 받아 클라이언트에게 접속요청과 수락(ACK)을 보낸다. 그러면 클라이언트는 서버에게 ACK와 함께 HTTP 데이터를 전송할 수 있게 되는 개념이다. 이 개념은 TCP의 "연결지향" 개념과 관련된 것으로, IP프로토콜이 목적지(서버)가 응답이 불가능한 상황임에도 무작정 요청을 전송하고 끝내버리는.. 한계인 "비연결성"을 극복하기 위한 개념으로 볼 수 있다. 더보기 [Spring]빈 스코프와 Provider 스프링 수업을 듣다가 빈 스코프(Scope)에 대해 공부했다. 기본적으로 스프링 컨테이너에 의해 주입되는 빈은 싱글톤의 스코프를 가지지만.. 예를들어 사용자가 호출할때마다 새롭게 호출되어야 하는 빈일 경우 @Scope("prototype") 으로 지정이 가능했다. 하지만 여기에서 문제가 생긴다. 해당 프로토타입 빈을 기존 싱글톤 빈 내에서 호출할 경우 객체의 스코프가 싱글톤으로 되어버린다. 이 문제를 해결하기 위해 스프링에서 제공하는 기능이 ObjectProvider 이다. 해당 클래스를 통해 의존할 빈을 찾는다 하여 DL(Dependency Lookup)이라 한다. 스프링 뿐만 아니라 자바로도 Provider를 통해 해당 기능을 지원한다. 다만 라이브러리를 가져와야 한다. 해당 클래스로 프로토타입으로 .. 더보기 [Network]로드밸런싱(Load Balancing) 네트워크의 부하를 분산하기 위한 방법 중 로드밸런싱이 있다. 일반적으로는 인터넷의 보급화로 인해 트래픽이 점점 증가하게 되고, 특히 특정 시간대에 집중적으로 트래픽이 몰리는 경우 서버가 수용할 수 있는 트래픽을 초과하게 된다면 장애가 발생할 수 있다. 이러한 문제를 방지하기 위해 로드밸런싱을 하게 된다. 내가 담당하는 서비스에서도 특정 시간대에 접속자 수가 늘어나게 되면 하나의 서버장비로는 장애에 대처할 수 없을 수 있기 때문에 로드밸런싱 장비를 도입하여 적용하기도 한다. 특정 서버 또는 네트워크 서브에 부하가 집중되지 않도록 트래픽을 다양한 방법으로 분산하여, 안정적으로 서버가 가동될 수 있도록 하는 것이다. 로드밸런싱은 L4(전송계층)와 L7(응용계층)에서 가능하다. - L4 : IP주소와 포트 번호.. 더보기 이전 1 ··· 3 4 5 6 7 8 9 다음