POJO는 말 그대로 오래된 방식의 간단한 자바 오브젝트라는 말로써 Java EE 등의 중량 프레임워크를 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용된 용어이다. -위키백과- POJO는 정말 말 그대로 오래된 방식의 간단한 자바 객체를 뜻한다. 쉽게 말해 특정 자바 모델이나 기능, 프레임워크 등을 따르지 않는 순수한 자바 객체 그 자체를 뜻한다. 반면, 특정 기술과 환경에 종속되어 사용되는 기술을 EJB(Enterprise Java Beans)라고 한다. 이 EJB는 자바 개발을 할 때 로우 개발에 신경 쓰지 않고 개발을 쉽게 하도록 도와주지만, 특정 기술에 의존하여 확장서가 떨어지고 객체지향성을 잃어버리게 됐다. 따라서 옛날에 객체지향성이 큰 순수한 방식으로..
로지텍 C920 PRO 스펙 제품명 : Logitech C920 PRO HD Webcam 최대 해상도 : 1080p / 30fps-720p / 30fps 초점 유형 : 자동 초점 렌즈 기술 : 표준 내장 마이크 : 모노 시야각 : 78도 케이블 길이 : 0.95m 시스템 요구사항 Windows 10, Windows 8, Windows 7 macOS 10.10 이상 USB UVC(Vodep Device Class)모드에서 작동 로지텍 C920 PRO 두 달 사용 후기 평소 사용하던 웹캠의 마이크가 너무 좋지 않아 화상회의 할 때 너무 불편했다. 구글에서 열심히 가성비 웹캠 추천을 검색해 보니 로지텍의 C920 PRO가 괜찮아 보였다. 가격은 약 7만 원 정도로 벌크 제품을 구매했다. C920은 디자인이 참..
동기와 비동기, 블로킹과 논-블로킹 너무 헷갈려운영체제를 공부하다 보면 동기(Syncronous)와 비동기(Asynchronous), 블로킹(Blocking), 논-블로킹(Non-blocking)에 대해 들어볼 수 있다. 이 개념들은 언뜻 보면 매우 헷갈리기 때문에 한 번 정리가 필요하다고 생각했다. 검색해 보니 좋은 글들이 많아 이해가 쉬웠다. 이를 종합해서 설명해 보겠다. [그림 1]은 IBM DeveloperWorks Library에 게재된 Boost application performance using asynchronous I/O라는 글에서 사용된 도표이다. 해당 게시글은 2006년에 Linux의 Asynchronous I/O(AIO)에 대해 설명하는 글이다. AIO는 쉽게 말해 프로세스가 ..
grep 명령어 grep 명령어는 Global Regular Expression Print의 줄임말로 특정 파일에서 특정 문자열을 찾을 때 사용한다. 이때 grep 명령어는 단순히 문자열의 일치 여부만을 검사해서 찾는 게 아닌, 정규 표현식(Regular Expression)에 의한 패턴 매칭 방식을 사용한다. 이러한 grep 명령어는 보통 다른 명령어들과 조합해서 사용하는 경우가 많다. grep [옵션] [패턴] [파일명] 자주 사용하는 옵션 -c : 일치하는 행의 수 출력 -i : 대소문자 구별하지 않음 -v : 일치하는 않는 행만 출력 -n : 해당 문자열이 포함된 행의 번호를 함께 출력 -l : 패턴이 포함된 파일의 이름 출력 -H : 패턴이 포함된 파일의 이름과 함께 내용 출력 -w : 단어와 ..
우분투 터미널 안 열림 현상 해결 방법은? 얼마 전 버츄얼박스에 우분투를 설치했는데 터미널(Terminal)이 열리지 않는 현상이 발생했다. 이러한 현상은 무인 설치(Unattended Install)를 진행하면 발생하는 현상으로 보인다. 이를 해결하는 법은 간단하다. 1. 우분투의 Settings에 들어간다. 2. Region & Language 탭을 누르고 Language를 English(United States)에서 'English(Canada)'로 바꿔준다. 3. 로그아웃 후 다시 로그인한다. 위와 같은 과정을 거치면 터미널을 사용할 수 있게 된다.
tail 명령어 tail 명령어는 tail(꼬리)라는 뜻에 걸맞게 파일의 끝 부분을 보여주는 명령어이다. 기본적으로 파일의 마지막 10줄을 출력해 보여준다. 이러한 tail 명령어는 리눅스에서 주로 파일 로그를 실시간으로 확인할 때 매우 자주 사용된다. tail [옵션] [파일명] ex) tail test.log // test.log의 마지막 10줄을 출력 자주 사용하는 옵션 -f : tail 명령어를 종료하지 않고 실시간으로 파일의 내용을 계속 출력한다. -n (라인 수) : 파일의 마지막줄부터 지정한 라인 수 까지의 내용을 출력한다. -c (바이트 수) : 파일의 마지막부터 지정한 바이트만큼의 내용을 출력한다. -q : 파일의 헤더와 상단의 파일이름을 출력하지 않고 내용만 출력한다. -v : 풀력하기..
윈도우10 리눅스 설치하기 Windows10 운영체제를 사용하는 사람이 어떠한 이유로 리눅스가 필요한 경우가 있다. 나의 경우 개발을 위해 리눅스 환경이 필요했다. 이때 PC에 직접 리눅스를 설치해 멀티 부팅을 하는 방식이나 WSL2를 이용할 수도 있지만, 나는 그보다 가상 머신을 이용하기로 했다. 가상 머신을 이용하면 마치 리눅스가 설치된 새로운 컴퓨터를 사용하는 것처럼 느껴지기 때문이다. VirtualBox, Vmware 등 다양한 가상 머신 지원 프로그램이 있지만, 나는 VirtualBox를 이용했다. 우분투(Ubuntu) iso 파일 다운로드 https://ubuntu.com/ Enterprise Open Source and Linux | Ubuntu Ubuntu is the modern, ope..
mkdir 명령어 mkdir은 make directory의 줄임말로 디렉토리를 생성하는 명령어이다. mkdir [옵션] [생성할 디렉토리] ex) mkdir test_folder // test_folder라는 디렉토리 생성 ex) mkdir /app/bin/test_folder // /app/bin 아래 test_folder 라는 디렉토리 생성 ex) mkdir test_folder1 test_folder2 test_folder3 // test_folder1, test_folder2, test_folder3 3개의 디렉토리 생성 경로를 지정하지 않으면 현재 위치를 디폴트로 설정한다. 자주 사용하는 옵션 -m : 디렉토리의 권한을 설정한다 ( 디폴트 : 755 ) -p : 상위 경로도 함께 생성 -v : ..
mv 명령어 mv는 move의 줄임말로 파일이나 디렉토리를 이동시킬 때 사용하는 명령어이다. mv [옵션] [이동시킬 디렉토리/파일] [이동 될 위치] ex) mv log.txt folder // 현재 디렉토리의 log.txt 파일을 folder 디렉토리로 이동 ex) mv log.txt log2.txt // 현재 디렉토리의 log.txt 파일의 이름을 log2.txt로 변경 ex) mv /app/bin/logs/log.txt /app/dw // /app/bin/logs 디렉토리의 log.txt 파일을 /app/dw 디렉토리로 이동 mv 명령어는 [이동시킬 디렉토리/파일] [이동될 위치] 두 인자를 필수로 갖는다. 경로를 지정하지 않는다면 현 위치를 디폴트로 설정한다. 이동시킬 때 새로운 이름을 지정할 ..
rm 명령어 rm 명령어는 remove의 줄임말로 말 그대로 파일이나 디렉토리를 삭제하는 명령어이다. rm [옵션] [삭제 할 디렉토리/파일] ex) rm original.txt // 현재 디렉토리의 original.txt 라는 파일 삭제 ex) rm /app/bin/logs/log.txt // /app/bin/logs 디렉토리의 log.txt 라는 파일 삭제 ex) rm -r folder // folder 라는 디렉토리 삭제 위와 같이 [삭제 할 디렉토리/파일]을 인자로 갖는다. 경로를 지정하지 않으면 현재 위치를 디폴트 값으로 설정한다. 비어있지 않은 디렉토리는 -r 옵션을 필수로 줘야지 삭제할 수 있다. 자주 사용하는 옵션 -r : 디렉토리 내부의 모든 내용을 삭제 -f : 강제로 파일이나 디렉토리..
리눅스 cp 명령어 리눅스에서 cp 명령어는 copy의 줄임말로 말 그대로 무언가를 복사할 때 사용하는 명령어이다. cp [옵션][복사 할 디렉토리/파일명][복사 될 디렉토리/파일명] ex) cp original.txt copy.txt // 현재 디렉토리의 original.txt라는 파일을 copy.txt라는 파일로 복사 ex) cp /app/bin/original.txt /app/logs/copy.txt // /app/bin 디렉토리의 original.txt라는 파일을 /app/logs에 copy.txt라는 파일로 복사 cp 명령어는 위의 예시처럼 [복사할 디렉터리/파일명] [복사될 디렉터리/파일명] 인자를 필수로 갖는다. 경로를 지정하지 않으면 현재 위치를 기본값으로 설정한다. 자주 사용하는 옵션 -..
리눅스 ls 명령어 리눅스(Linux)에서 ls 명령어는 list의 줄임말로 현재 위치한 디렉토리의 내용(디렉토리, 파일 등)을 출력하는 명령어이다. 윈도우의 dir 명령어와 비슷하다. ls [디렉토리] ls : 현재 디렉토리의 파일 목록 출력 ls /app : /app 경로의 파일 목록 출력 ls [디렉토리] 와 같은 형식으로 디렉토리를 지정하여 파일 목록을 출력할 수 있다. 이때 디렉토리 명을 생략하면 현재 위치한 디렉토리의 파일 목록을 출력한다. 자주 사용하는 옵션 -l : 자세한 내용을 출력한다 -a : 숨김 파일을 포함한 모든 파일을 출력한다. -R : 하위 디렉토리의 파일까지 모두 출력한다. -h : 파일크기를 해석하기 쉽게 K, M, G 단위를 사용하여 출력한다. -r : 출력 결과를 내림차..