본문 바로가기

Old Posts226

[Linux] pstree 명령어 사용법 및 예제 pstree 명령어는 프로세스의 부모-자식 관계를 트리형태로 출력해주는 명령어다. 프로세스들의 관계를 트리 형태로 출력해주어 계층관계를 한눈에 알아볼 수 있게 한다. 리눅스에서 프로세스는 부모 프로세스에 의해 생성된다. 프로세스들을 관리할 때 부모-자식 관계를 알아야 하는 경우가 종종 발생하는데, pstree 명령어를 이용해서 이 관계를 알 수 있다. 트리형태로 표현되는 정보를 통해 시스템 관리자는 프로세스의 생성 관계를 직관적으로 확인할 수 있다. pstree 사용법 $ pstree [-a][-c][-h][-n][-p][-u] pstree 옵션 옵션 설명 -a 실행한 프로세스의 인자와 옵션까지 모두 표시 -c 1개의 프로세스의 중복된 개수로 출력 -h 부모 프로세스를 강조해서 출력 -n 출력시 PID .. 2022. 11. 29.
공인 IP 대역과 사설 IP 대역 인터넷에 연결되어 있는 네트워크 장비는 IP라고하는 주소가 할당된다. IP는 Internet Protocol의 약자로 인터넷에 연결되어 있는 컴퓨터의 고유주소다. IPv4 기준으로 12개의 숫자로 이루어져 있다. IP 주소는 공인 IP 대역과 사설 IP 대역으로 나눌 수 있다. 공인 IP 대역 공인 IP는 외부에 공개되어 있는 IP 주소다. 전 세계에서 유일하며 ISP(인터넷 서비스 공급자)를 통해 제공받는다. 우리나라에서는 KT, SKB, LG 등에서 IP 주소를 사용자에게 제공한다. 외부에 공개되어 있기 때문에 인터넷에 연결되어 있는 다른 컴퓨터에서 접근이 가능하다. 사설 IP 대역 로컬 IP, 가상 IP라고도 불리며 외부에서 접근할 수 없는 IP를 말한다. 가정 내 홈 네트워크나 기업의 인트라넷 같.. 2022. 11. 7.
[Java] 자바 어노테이션(Annotation) 사용법 및 예제 - 커스텀 어노테이션 만들기 스프링 프레임워크 기반의 작업을 많이 하는 개발자라면 '어노테이션(Annotation)'을 자주 사용할 것이다. (어노테이션, 애너테이션 등으로 발음하지만 본 포스트에서는 어노테이션으로 명명하겠다) 하지만 스프링 프레임워크를 사용하는 개발자들도 그냥 관용적으로 어노테이션들을 사용하는 경우가 많고, 자바 어노테이션 자체에 대해서 크게 고민해보지 않은 경우가 많이 있다. 1. 자바 어노테이션(Annotation) 자바에서 어노테이션은 사전적의미로는 주석이라는 뜻을 가지고 있다. 자바의 어노테이션은 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종이다. 메타 데이터란 애플리케이션이 처리해야할 데이터가 아니라 컴파일 과정과 실행 과정에서 코드를 어떻게 처리해야하는지를 알려주기 위한 추가 정보다. 자바의 어.. 2022. 10. 7.
[Java] ERROR StatusLogger No Log4j 2 configuration file found. 에러 확인방법 자바를 이용해 프로그램을 작성하다가 다음 에러 메시지를 만나게 되었다. ERROR StatusLogger No Log4j 2 configuration file found. 프로그램의 실행에는 문제가 없었지만 매번 실행할 때마다 경고 메시지가 화면에 출력되어 신경이 쓰였다. 원인 log4j2에 대한 설정 파일을 찾을 수 없어서 발생하는 문제다. 프로젝트의 리소스 디렉토리나 클래스 패스에 log4j2.xml 파일을 생성해 설정을 넣어주면 더 이상 에러메시지가 출력되지 않는다. 2022. 9. 8.
[Java] log4j:WARN No appenders could be found for logger 에러 해결방법 IntelliJ에서 자바 프로젝트를 실행했을 때 다음과 같은 경고 메시지가 출력되었다. log4j:WARN No appenders could be found for logger log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 개발중인 프로그램을 실행하는데에는 문제가 없지만 매번 경고 메시지가 출력되는 것이 신경쓰였다. 경고 메시지가 출력되지 않도록 조치를 취해보자. 원인 메시지의 내용에서 알 수 있듯이 이 메시지는 log4j 관련 메시지다. log4j는 자바로 작성된 애플리케이션에서 로그를 기록하기 위해 .. 2022. 9. 6.
Bash 스크립트 작성 레퍼런스 포스트 모음 Bash 스크립트를 작성할 때 참고할 만한 포스트들을 모아봤다. Bash 문법 [Bash] 조건문 문법, 사용법 및 예제 [Bash] 반복문 문법, 사용법 및 예제 [Bash] 문자열 비교 방법 [Bash] 문자열 자르는 방법 명령어 access curl compress, uncompress dd date df dir dirname du enable env file finger free gzip halt, poweroff, reboot hdparam head, tail host hostid hostname iconv id ifconfig ipcs,ipcrm iptables jobs jstat jstatd jq last lastb lastlog ldconfig ldd logger look ls lsof m.. 2022. 8. 30.
[Bash] 쉘 스크립트에서 사용자 입력 받기 (read 명령어 사용법) 쉘 스크립트를 작성하다보면 사용자의 입력을 받아야 하는 경우가 있다. Bash에서는 read 명령어를 이용해 사용자로부터 입력을 받을 수 있다. read 명령어로 사용자 입력 받기 사용자로부터 입력을 받기위해 read 명령어를 사용할 수 있다. read 명령어를 사용하는 예제를 살펴보자. #!/bin/bash echo "What is your name?" read name echo "Hello, $name!!" 사용자로부터 이름을 입력받아 인사를 하는 간단한 예제다. 이를 실행하면 다음과 같은 결과를 얻을 수 있다. $ bash test.sh What is your name? Dave Hello, Dave!! 두개 이상의 입력 받기 하나의 read 명령을 이용해 두 개 이상의 입력을 받을 수 있다. 공백.. 2022. 8. 27.
[CentOS] Go 언어(go-lang) 설치 방법 GO 언어를 CentOS에 설치하는 방법은 매우 간단하다. yum을 이용하면 된다. 우선 Go 설치를 위한 저장소 정보를 설정해준다. $ rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO $ curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee > /etc/yum.repos.d/go-repo.repo 그리고 yum 명령을 이용해 설치해주면 된다. yum install golang 제대로 설치되었는지 확인하기 위해 버전 확인을 해보자. $ go version go version go1.13.8 linux/amd64 2022. 8. 25.
[Java] Java Reflection 소개 및 사용법, 예제 자바 리플렉션(Java Reflection)은 구체적인 클래스의 타입을 알지 못하는 상황에서그 클래스에 구현되어 있는 메소드와 필드 등의 정보, 즉 클래스의 구조를 확인할 수 있도록 자바가 제공해주는 API다. 리플렉션은 자바에서 제공해주는 API이기 때문에 별도의 jar 파일을 포함하거나 Maven 의존성을 추가하지 않아도 사용할 수 있다. 일반적으로 자바 리플렉션은 많이 사용되지는 않는다. 다만 프레임워크(Frame Work) 소프트웨어를 작성하거나 IDE 같은 소프트웨어를 작성하는 경우 사용자가 나중에 어떤 타입의 클래스를 사용할지 소프트웨어를 작성하는 당시에는 알지 못하는 경우가 많이 있다. 이 때, 런타임에 사용자가 넘겨준 클래스의 정보를 분석해서 동작할 수 있도록 리플렉션을 이용해 코드를 작성.. 2022. 8. 12.