🌿Elasticsearch
Elasticsearch는 시간이 갈수록 증가하는 문제를 처리하는 분산형 RESTful 검색 및 분석 엔진이다.
홈페이지에서는 Elastic Stack의 핵심 제품인 Elasticsearch가 데이터를 중앙에 저장하여 손쉽게 확장되는 광속에 가까운 빠른 검색, 정교하게 조정된 정확도, 강력한 분석을 제공한다고 설명한다.
엘라스틱 서치는 윈도우, 맥 OS 등에서도 구동하기는 하나, 속도 등의 현실적인 문제 때문에 리눅스 계열에서만 구동하도록 한다.
엘라스틱 서치를 구동할 리눅스 계열 중에서는 CentOS, Ubuntu 등이 있다. 우리는 Ubuntu를 설치하도록 한다.
🌿Ubuntu 설치
1. 듀얼 부팅
2. VMWare, VirtualBox 가상머신
3. Docker
4. WSL (Windows Subsystem for Linux)
개인 PC면 듀얼 부팅을 하는 방법도 있긴 하지만 불안정하다는 단점이 있다. 그리고 VMWare, VirtualBox 가상머신으로 컴퓨터 안에 또 다른 컴퓨터를 만드는 방식도 있지만 느리다는 단점이 있다.
Docker는 2번과 비슷하긴 하지만, 내부 구조가 다르고 훨씬 가볍다. 하지만 배우는 데 시간이 걸린다.
WSL는 윈도우에 리눅스를 박아놓고 독립적인 시스템으로 돌릴 수 있는 시스템이다. 아무래도 윈도우 기반으로 리눅스가 실행되는 것이므로 완전하진 않지만, 사용하기 간편하며 리눅스와 상당히 비슷하게 구현되어 있다.
🌿WSL 설치
1. Windows 기능 켜기, 끄기
- Linux용 Windows 하위 시스템
- 가상 머신 플랫폼
위 2개의 항목을 체크하고 컴퓨터를 재부팅한다.
2. Microsoft Store
- Ubuntu 22.04.3 LTS
Microsoft Store에서 Ubuntu를 필요한 버전에 맞는 것으로 설치한다.
Linux를 검색하면 SUSE Linux, Oracle Linux 등을 설치할 수도 있다. Linux는 수십 종류가 있으며, 약간씩 커스터마이징이 되어 있다. 그중에 CentOS와 Obuntu가 제일 대중화되어 있다.
적어도 Java를 한다면 Linux 환경에서 일을 하게 될 확률이 매우 높다. 윈도우(맥)은 개발 환경이고, 리눅스는 운영/테스트를 하는 환경이다.
우리가 만든 프로그램과 시스템을 윈도우에서 테스트할 일은 거의 없으며, 대부분 리눅스 서버에서 가동을 하게 된다.
설치가 완료된 뒤에 Ubuntu를 실행하면 오류가 난다. Ubuntu를 실행하려면 필요한 설정이 있다.
3. PowerShell 실행 (관리자 모드)
Windows PowerShell을 반드시 관리자로 실행한다.
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
$ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
위 코드를 $를 제외하고 PowerShell에 한 줄씩 복사, 붙여 넣기 한다.
마지막 코드는 PowerShell이 아니라 chrome 주소에 넣으면 msi 설치 파일이 다운로드된다.
4. wsl_update_x64.msi 설치하기
wsl_update_x64.msi를 설치하고 PC를 재부팅한다.
5. WSL > 2 버전 변경
$ wsl --set-default-version 2
$ wsl --set-version Ubuntu-22.04 2
첫 번째 코드가 작동하지 않으면, 두 번째 코드를 작동하면 된다.
위 2개의 코드 모두 터미널 창을 띄운 뒤에 위 코드를 입력하여 WSL 버전을 2 버전으로 변경하는 코드이다.
버전이 잘 변경되었는지 확인해 보도록 하자.
버전 변경 확인
$ wsl -l -v
Ubuntu-22.04가 Running 중이며, VERSION이 2인 것을 확인할 수 있다.
지금 필요한 버전은 Ubuntu-22.04 이어야 하기 때문에 wsl -1 -v 코드를 입력하여 반드시 버전을 확인해야 한다.
wsl update
$ wsl --update
버전 차이로 인한 문제 발생을 막기 위해 wsl을 update 하도록 한다.
6. 문제 발생 시! Ubuntu 초기화
$ wsl --unregister Ubuntu-22.04
여기까지 실행 중에 문제가 생겼다면 Ubuntu를 초기화하도록 한다.
앱 및 기능에서 Ubuntu 초기화 버튼을 눌러 초기화를 해 주고, 터미널에서 위 코드를 붙여 넣기 하여 등록 취소를 해 주어야 한다.
Ubuntu 실행
다시 Ubuntu를 실행하면 초기화되었으므로 다시 설치를 시작한다.
username을 입력하는 메시지가 나온다.
7. WSL 실행
Ubuntu 계정 생성
Ubuntu를 실행해 보면 터미널창이 켜진다. 이것으로 Ubuntu와 WSL 설치가 완료되었다.
그러나 현재 Ubuntu를 실행하면 바로 root로 들어가는 상태이다. Ubuntu 계정을 생성하도록 하자.
- username
- password
WSL을 실행하여 username과 password를 지정한다.
보안 때문에 비밀번호를 입력해도 보이지 않는다.
$ pwd
루트 폴더 밑에 home 밑에 ubuntu 폴더가 있는 것을 확인할 수 있다.
8. 패키지 업데이트 + 패키지 업그레이드
업데이트는 리포지토리를 최신 상태로 갱신하는 것을 말하고, 업그레이드는 패키지(프로그램)를 실제로 업그레이드하는 행동을 의미한다.
$ apt-get update
Permission denied라는 메시지가 발생했다.
현재 만든 일반 계정은 관리자들이 해야 할 만한 update 같은 업무는 할 수 없다.
이러한 업무는 root라는 최상위 관리자가 할 수 있는데, 현재 계정을 로그아웃하고 업데이트하기에는 번거롭기 때문에 Ubuntu의 sudo 기능을 이용한다.
sudo (Super User Do)
sudo의 Super User는 최고 관리자를 의미한다.
명령어 앞에 sudo를 붙이면 지금 명령에 한해서 최고 관리자 권한으로 실행하겠다는 의미가 된다.
이때 방금 만든 계정에 대하여 비밀번호를 입력해 주어야 한다.
9. 리눅스 명령어
1. pwd
2. ls
- ls
- ls -a
- ls -l
3. cd
- cd 자식폴더
- cd ..
- cd ~
- cd /
4. vi(vim) 편집기
- vi test.txt
- 모드
- 1. 명령 모드
- i
- 검색
- /검색어
- esc
- n(다음 찾기), N(이전 찾기)
- o
- i
- 2. 입력 모드
- esc > 명령 모드 복귀
- 3. 콜론 모드(ex명령 모드)
- 저장 or 나가기
- :q > 종료
- :q! > 저장하지 않고 종료
- :w > 저장
- :wq > 저장 후 종료
ls
ls는 list의 약자로, 하위 항목을 목록으로 보여준다. 처음에는 하위 항목이 없기 때문에 아무것도 보여주지 않는다.
cd ..은 부모 폴더로 이동하는 명령어이다. 부모 폴더로 이동하여 ls를 입력하면 하위 항목을 보여주며, ls -a는 숨김 폴더를 보여준다. ls -l는 길게 보여달라는 의미이다.
ls -l로 보여주는 리스트에서 drwxr-xr-x처럼 d로 시작하는 건 폴더(directory)를 의미한다. 또한, 파란색 글씨가 폴더라는 걸 의미하므로 색으로 구분할 수도 있다. 그리고 -(dash)로 시작하면 파일을 의미한다. l은 symbolic link로 바로 가기를 의미한다.
usr/bin은 너무 길기 때문에 bin으로 바로가기를 만들었다는 걸 bin -> usr/bin으로 표현한다. bin을 입력하면 usr/bin으로 이동한다.
cd
cd ~은 바로 홈 디렉터리로 이동하는 명령어이며, cd /는 무조건 최상위 폴더(루트 폴더)로 이동한다.
vi(vim) 편집기
vi는 메모장이다. 여기서 :q를 입력하면 빠져나갈 수 있다.
vi에는 모드라는 게 있다. 메모장 같은 경우 한 화면에서 작성하고 수정하는 걸 모두 한다. 반면 vi는 각 화면에서 다른 업무를 할 수 있는 모드가 3개가 있다.
vi.test.txt
vi test.txt를 입력하여 진입한 직후에는 아무것도 입력이 되지 않는다. 현재 명령 모드인 상태이다. 여기서 입력할 수 있는 입력 모드로 넘어가려면 명령 모드로 진입할 수 있는 키를 입력해야 한다. 이중 가장 많이 사용하는 것은 소문자 i이다. 그러면 아래가 INSERT 표현으로 바뀐다. 그러면 메모장으로 입력할 수 있는 상태가 된다.
입력을 마치고 싶으면 esc를 누르면 된다. 그러면 명령 모드로 복귀를 하며, 이 상태에서 콜론(:)을 누르면 콜론 모드가 된다. 콜론 모드에서는 저장 혹은 나가기를 한다.
검색
명령 모드에서 /Isaac을 하면 입력한 내용에서 Isaac을 찾아준다.
cat
10. JRE + JDK 설치하기
JRE 설치하기
$ java -version
$ sudo apt-get install default-jre
먼저 JRE가 설치가 되어 있는지 확인해야 한다. 설치되어 있지 않으므로 비밀번호를 입력하여 설치를 진행한다.
대략 371MB 정도 필요하다고 나오는데, Y를 눌러 설치를 진행하도록 하자.
JDK 설치하기
$ javac -version
$ sudo apt-get install default-jdk
JDK가 있다는 건 컴파일러가 있다는 뜻이기 때문에 javac의 버전을 물어보면 된다.
마찬가지로 설치가 되어 씨지 않기 때문에 JDK 설치를 진행하고 다시 버전을 물어보면 위와 같이 버전을 출력한다.