전체 글 259

[Windows] cmd에서 javac 명령어가 안될 때

cmd에서 javac 명령어가 안될 때 cmd에서 java파일을 class파일로 컴파일하려고 javac 명령어를 입력했는데 다음과 같은 문구가 출력됐다. 이는 자바가 깔려있더라도 시스템 변수를 설정하지 않아 javac.exe 파일이 실행되지 않았기 때문에 발생한 것이다. 해결방법은 다음과 같다. 1. 폴더에서 '내 PC' 우클릭 후 '속성'을 클릭한다. 2. 관련 설정에서 '고급 시스템 설정'을 클릭 후 '환경 변수' 버튼을 클릭한다. 3. '새로 만들기' 버튼 클릭 후 javac 실행파일이 있는 경로를 작성 후 등록한다. ex) 변수 이름: JAVA_HOME / 변수 값: Java설치경로/bin 4. 변수 Path에 대해 '편집' 버튼을 클릭한 후 '새로 만들기' 버튼 클릭하여 3번에서 등록한 변수를 ..

OS/Windows 2023.08.28

[OS] 가상 메모리(Virtual Memory)

가상 메모리(Virtual Memory) 가상 메모리란? 보조 메모리가 주 메모리의 일부인 것처럼 사용할 수 있는 메모리로, 컴퓨터가 물리 메모리 부족을 보완하여 RAM에서 디스크 스토리지로 일시적으로 데이터를 전송할 수 있도록 한다. 가상 메모리는 최근에 사용되지 않은 데이터를 하드 드라이브나 SSD와 같은 스토리지 장치로 스왑하여 RAM을 확보한다. 그리고 시스템 성능 향상과 멀티태스킹 및 대규모 프로그램 사용에 있어 중요하다. 그러나 가상 메모리는 RAM보다 매우 느리기 때문에 이에 지나치게 의존하면 안된다. 가상 메모리의 작동방식 가상 메모리는 HW와 SW를 모두 사용해서 작동한다. 응용프로그램이 사용 중일 경우 해당 프로그램의 데이터가 RAM을 사용하여 실제 주소에 저장된다. 메모리 관리 장치(..

OS 2023.08.26

[Tomcat/Error] java.net.ConnectException: Connection refused

java.net.ConnectException: Connection refused 연결 거부 오류 VM에 솔루션을 설치하고 톰캣을 기동했더니 'Connection refused'라는 연결 거부 오류가 발생하였다. 해당 오류의 원인은 사용 가능한 프로세스가 없어서였다. ulimit -u 를 입력하여 허용된 프로세스의 최대 수를 확인해보았다. cf) ulimit -u : 사용자에게 사용 가능한 최대 프로세스 수를 지정하는 명령어 기존에는 최대 4096까지 허용되고 있었다. 허용된 프로세스 수가 많지는 않았기에, 톰캣을 기동하면서 사용할 수 있는 프로세스를 모두 소모하였고 그로 인해 연결이 거부된 것으로 보인다. 또한, VM을 설치하면서 적은 메모리를 할당하였는데 이 때문에 프로세스도 금방 소모된 것이 아닌가..

WAS/Tomcat 2023.08.25

[Linux] 파일 내용만 지우기

파일 내용만 지우기 abc.txt 파일에 위와 같은 내용이 담겨있다. abc.txt 파일 자체를 삭제하지 않고 안에 내용만 지우고 싶을 땐 다음 명령어를 입력하면 된다. $ cat /dev/null > 파일명 -- 만약 abc.txt 파일 내용을 삭제하고 싶다면 $ cat /dev/null > abc.txt 처음에 $ cat abc.txt 입력했을 땐 abc.txt 파일 내용이 출력됐었는데 지금은 파일 내용이 지워져서 출력되지 않는다. cf) /dev/null : 윈도우의 휴지통과 비슷한 역할을 하는 리눅스의 블랙홀이다.

OS/Linux 2023.08.22

[Java] StringUtils.isEmpty()

StringUtils.isEmpty() StringUtils 클래스는 String 클래스의 문자열 관련 기능을 강화시킨 클래스이다. StringUtils의 특징은 값을 null로 주어도 NullPointException을 발생시키지 않는다는 것이다. String보다 StringUtils를 사용하여 문자열 처리하는 것이 좋겠다. isEmpty() 함수는 파라미터가 null이면 true를 반환하고, null이 아니면 false를 반환한다. 즉, 값이 null인지 아닌지 확인하는 함수이다. public static boolean isEmpty(CharSequence cs) 파라미터: null이 들어갈 수도 있는 CharSequence 반환형: CharSequence가 비어 있거나 null인 경우 boolean..

[Linux] 리눅스 시스템 시간 변경

한 고객사가 AWS EC2 인스턴스를 사용하여 서버를 운영하고 있었는데 현 회사 솔루션 내 작업 로그시간을 UTC가 아니라 KST로 보이게 해달라는 요구를 하였다. AWS EC2 인스턴스의 시스템 시간은 기본적으로 UTC를 따른다. 솔루션은 시스템 시간에 따라 로그를 출력하기 때문에 UTC의 경우 우리나라 시간보다 9시간 전으로 로그가 찍혀 일반 사용자들은 보기 어려울 수 있다. 나는 이를 ..

OS/Linux 2023.08.14

[Network] User Mode와 Kernel Mode

Windows를 실행하는 컴퓨터의 프로세서에는 User Mode와 Kernel Mode가 있다. Processor(프로세서)는 프로세서에서 실행 중인 코드 유형에 따라 두 모드를 전환한다. 응용 프로그램은 User Mode에서 실행되고 핵심 운영 체제 구성 요소는 Kernel Mode에서 실행된다. 대부분의 Driver는 Kernel Mode에서 실행되지만, 일부 Driver는 User Mode에서 실행될 수 있다. User Mode(사용자 모드) User Mode 응용 프로그램을 시작했을 때 Windows에서 응용 프로그램에 대한 process를 생성한다. 해당 process는 애플리케이션에 개인 가상 주소 공간과 개인 handle table을 제공하는데, 응용 프로그램의 가상 주소 공간은 privat..

Network 2023.08.09