전체 글 썸네일형 리스트형 [HTTP] 비연결성 만약 클라이언트와 서버가 통신을 함에 있어서 계속 연결을 유지하고 있다면... 클라이언트의 수가 늘어날수록 연결상태가 늘어날 것이고, 결국 서버는 다량의 자원을 소모하게 된다. 비연결성을 지향하는 HTTP의 경우 클라이언트의 요청에 응답 후 연결을 끊어주는 방식으로 시스템의 자원을 유지한다. 다만 매번 요청이 있을때마다 TCP/IP 연결을 맺어야한다(3way handshake). 그리고 이전 요청에 대한 상태를 유지하기 위해 Cookie와 Session을 이용한다. HTTP 1.1에서 이러한 문제를 해결하기 위해 지속연결(Persistent)개념이 등장한다. 해당 요청과 관련된 모든 자원의 요청이 끝날때까지 연결을 유지한다. 더보기 [Java] 자바의 메모리 영역(1) 메소드(Method) 영역 Static 영역이라고도 하며 전역 변수와 정적 멤버변수(static 변수)가 저장되는 영역 스택(Stack) 영역 지역변수, 인자값, 리턴값이 저장되는 영역이고 메소드 안에서 사용되는 기본형 변수들이 값과 함께 저장되고 Heap 영역에 생성된 객체들을 참조하는 주소값이 할당 힙(Heap) 영역 자바 프로그램에서 사용되는 모든 인스턴스 변수(객체)들이 저장되는 영역이며 자바에서는 new를 사용하여 객체를 생성하면 힙 영역에 저장. 힙 영역은 메모리 공간이 동적으로 할당되고 해제되며 메모리의 낮은 주소에서부터 높은 주소로 할당 출처 : 코딩팩토리(https://coding-factory.tistory.com/830) 더보기 [Algorithm]구간합 구하기 코딩 테스트 연습을 하다보면 많이 접하게 되는 문제가 일정 구간의 합을 구하는 것이다. 단순히 반복문을 통해 합을 구하는 방법도 있겠지만, 그렇게 되면 시간 복잡도 면에서 제한에 걸리게 되는 경우가 많다. 이럴 때 구간합 배열을 생성하여 해결할 수 있다. 1) 1차원배열 일반 배열이 [5, 4, 3, 2, 1] 이라면 구간합 배열은 [5, 9, 12, 14, 15] 로 나타낼 수 있고 이를 코드로 표현하면.. ------------------------------------------------------------------ for(숫자 개수만큼 반복) { sum[i] = sum[i-1] + arr[i] } -----------------------------------------------------.. 더보기 [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 구조에 대해 이해하고 이러한 구조를 구현한 .. 더보기 이전 1 ··· 3 4 5 6 7 8 9 10 다음