전체 글: 263개의 글

[DataBase] PK 지정 및 제거

Posted by nkjok
2025. 4. 7. 16:51 낙서장[1]/93. DataBase
반응형

1. 테이블 생성
mysql> create table 테스트부서2( 부서번호 varchar(25) not null, 부서명 varchar(25) not null, 테스트번호 varchar(25)
not null);
Query OK, 0 rows affected (0.06 sec)

mysql> desc 테스트부서2;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| 부서번호        | varchar(25) | NO   |     | NULL    |       |
| 부서명          | varchar(25) | NO   |     | NULL    |       |
| 테스트번호      | varchar(25) | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)



2. PK 지정 
mysql> alter table 테스트부서2 ADD primary key (부서번호);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc 테스트부서2;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| 부서번호        | varchar(25) | NO   | PRI | NULL    |       |
| 부서명          | varchar(25) | NO   |     | NULL    |       |
| 테스트번호      | varchar(25) | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)



3. PK 삭제
mysql> alter table 테스트부서2 drop primary key;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc 테스트부서2;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| 부서번호        | varchar(25) | NO   |     | NULL    |       |
| 부서명          | varchar(25) | NO   |     | NULL    |       |
| 테스트번호      | varchar(25) | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)



4. PK 삭제 후 다른 속성에 PK 지정
mysql> alter table 테스트부서2 add primary key (테스트번호);
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc 테스트부서2;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| 부서번호        | varchar(25) | NO   |     | NULL    |       |
| 부서명          | varchar(25) | NO   |     | NULL    |       |
| 테스트번호      | varchar(25) | NO   | PRI | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

반응형

[코딩&디버깅] 생성(5), 구조(7), 행위(11) 패턴 특징

Posted by nkjok
2025. 3. 24. 22:10 낙서장[2]/코딩&디버깅
반응형

---

## **생성 패턴 (Creational Patterns)**  
객체 생성 관련 문제를 해결하며, 객체 생성 과정을 유연하고 효율적으로 만듭니다.

1. **빌더 (Builder)**  
   - **특징**: 복잡한 객체를 단계별로 생성하고, 최종적으로 일관된 객체를 생성.
   - **사용 사례**: 생성 과정이 복잡한 객체의 생성.
   - **예시**: 다양한 속성을 가진 자동차 조립.

2. **프로토타입 (Prototype)**  
   - **특징**: 기존 객체를 복제하여 새로운 객체 생성.
   - **사용 사례**: 객체 생성 비용이 비쌀 때 복제를 통해 성능 향상.
   - **예시**: 게임 캐릭터를 복제해 여러 캐릭터 생성.

3. **팩토리 메서드 (Factory Method)**  
   - **특징**: 객체 생성을 서브클래스에서 정의, 객체 생성의 세부사항을 캡슐화.
   - **사용 사례**: 구체적인 클래스를 알 필요 없이 객체 생성.
   - **예시**: 다양한 데이터베이스 연결 객체 생성.

4. **앱스트랙 팩토리 (Abstract Factory)**  
   - **특징**: 관련 객체를 그룹으로 묶어 생성.
   - **사용 사례**: 계열화된 객체 생성 (윈도우/맥 UI).
   - **예시**: 여러 GUI 테마에서 버튼과 스크롤바 생성.

5. **싱글톤 (Singleton)**  
   - **특징**: 객체를 하나만 생성, 전역 접근을 제공.
   - **사용 사례**: 설정 관리 클래스.
   - **예시**: 애플리케이션 설정이나 로깅 클래스.

---

## **구조 패턴 (Structural Patterns)**  
클래스와 객체의 관계를 정의하며, 시스템 구조를 최적화합니다.

1. **브리지 (Bridge)**  
   - **특징**: 구현과 인터페이스를 분리하여 독립적으로 확장 가능.
   - **사용 사례**: 플랫폼 간 호환성.
   - **예시**: TV와 리모컨의 독립적 설계.

2. **데코레이터 (Decorator)**  
   - **특징**: 객체에 동적으로 새로운 기능을 추가.
   - **사용 사례**: 확장 가능한 기능 추가.
   - **예시**: 메시지 암호화 기능 추가.

3. **퍼사드 (Facade)**  
   - **특징**: 복잡한 서브시스템을 단순한 인터페이스로 제공합니다.
   - **사용 사례**: 라이브러리 사용 단순화.
   - **예시**: 호텔 예약 시스템의 단일 API.

4. **플라이웨이트 (Flyweight)**  
   - **특징**: 공유를 통해 메모리 사용을 줄임.
   - **사용 사례**: 대량의 유사 객체 생성.
   - **예시**: 게임에서 동일한 적 객체 공유.

5. **프록시 (Proxy)**  
   - **특징**: 다른 객체에 대한 접근을 제어.
   - **사용 사례**: 네트워크 요청 최소화.
   - **예시**: 가상 프록시로 이미지 로드 지연 처리.

6. **컴포지트 (Composite)**  
   - **특징**: 객체들을 트리 구조로 구성하여 단일 객체처럼 다룸.
   - **사용 사례**: 계층 구조 데이터 처리.
   - **예시**: 파일 시스템 구조.

7. **어댑터 (Adapter)**  
   - **특징**: 인터페이스 변환을 통해 호환성을 제공.
   - **사용 사례**: 서로 다른 시스템 간의 연결.
   - **예시**: 전압 변환기.

---

## **행위 패턴 (Behavioral Patterns)**  
객체 간의 상호작용 및 책임 분배에 중점을 둡니다.

1. **미디에이터 (Mediator)**  
   - **특징**: 객체 간 통신을 중앙 집중화.
   - **사용 사례**: 복잡한 객체 네트워크 조율.
   - **예시**: 채팅 애플리케이션의 메시지 라우팅.

2. **인터프리터 (Interpreter)**  
   - **특징**: 언어의 문법을 정의하고 해석.
   - **사용 사례**: DSL(도메인 특화 언어) 처리.
   - **예시**: 정규식 해석기.

3. **이터레이터 (Iterator)**  
   - **특징**: 컬렉션 요소를 순차적으로 접근.
   - **사용 사례**: 리스트 반복 작업.
   - **예시**: 데이터베이스 레코드 순회.

4. **스테이트 (State)**  
   - **특징**: 상태에 따라 객체의 동작을 변경.
   - **사용 사례**: 상태 기반 전환.
   - **예시**: 문서 편집기의 상태(편집/읽기).

5. **비지터 (Visitor)**  
   - **특징**: 연산을 객체 구조에서 분리.
   - **사용 사례**: 복잡한 객체 구조에 동작 추가.
   - **예시**: 파일 시스템 탐색.

6. **커맨드 (Command)**  
   - **특징**: 요청을 객체로 캡슐화.
   - **사용 사례**: 실행 취소, 재실행 기능.
   - **예시**: 리모컨 버튼 명령.

7. **전략 (Strategy)**  
   - **특징**: 알고리즘을 캡슐화하여 교환 가능.
   - **사용 사례**: 동적으로 알고리즘 선택.
   - **예시**: 정렬 알고리즘 선택.

8. **메멘토 (Memento)**  
   - **특징**: 객체 상태를 저장하고 복원.
   - **사용 사례**: 이전 상태 복구.
   - **예시**: 문서 복구 기능.

9. **체인 오브 리스폰서빌리티 (Chain of Responsibility)**  
   - **특징**: 요청을 처리할 기회를 여러 객체에 제공.
   - **사용 사례**: 이벤트 처리 체인.
   - **예시**: 권한 검증 체인.

---

**요약 및 차이점 구분**  
- **생성 패턴**: 객체 생성 및 초기화에 초점. (예: 싱글톤, 빌더)
- **구조 패턴**: 시스템 구조 및 관계를 개선. (예: 데코레이터, 어댑터)
- **행위 패턴**: 객체 간 상호작용 및 책임 분배. (예: 전략, 스테이트)

반응형

[Java] 우분투22.04에서 자바 한글 출력

Posted by nkjok
2025. 3. 23. 18:30 낙서장[1]/91. Java
반응형

Ubuntu 22.04에서 자바 프로그램이 한글을 제대로 출력하지 않는 문제를 해결하는 방법을 공유합니다. 
이 과정에서는 로케일 설정과 관련 패키지 설치를 통해 문제를 해결합니다.

1. 한글 언어팩 설치
먼저, 한글 언어팩을 설치합니다.
apt-get -y install language-pack-ko

2. 로케일 설정
로케일 설정을 업데이트합니다.
locale-gen --purge
dpkg-reconfigure locales

로케일 설정 파일을 수정합니다.
vi /var/lib/locales/supported.d/ko
다음 내용을 추가합니다:
ko_KR.EUC-KR EUC-KR

3. 환경 변수 설정
환경 변수 파일을 수정하여 로케일을 설정합니다.
vi /etc/environment
다음 내용을 추가합니다:
LANG="ko_KR.UTF-8"
LANG="ko_KR.EUC-KR"

프로파일 파일도 수정합니다.
vi /etc/profile
다음 내용을 추가합니다:
LANG="ko_KR.UTF-8"

변경 사항을 적용합니다.
source /etc/profile

4. 테스트
이제 자바 프로그램을 실행하여 한글이 제대로 출력되는지 확인합니다.

cd /home/nkjok/var/lib/u2204_java
/usr/bin/env /usr/lib/jvm/java-17-amazon-corretto/bin/java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:44087 -XX:+ShowCodeDetailsInExceptionMessages -cp /root/.vscode-server/data/User/workspaceStorage/f9b4ef33dc6f41286343b53b35c5a9a3/redhat.java/jdt_ws/u2204_java_73517661/bin nadocoding.chap_10._04_FunctionalInterface

정상적으로 한글이 출력되는 것을 확인할 수 있습니다:

2 달러 = 2800 원

이 과정을 통해 Ubuntu 22.04에서 자바 프로그램이 한글을 제대로 출력하도록 설정할 수 있습니다.

 

- 아래는 요약

apt-get -y install language-pack-ko

apt-get install localepurge
엔터 하다가 리무브 부분은 no 했음

vi /var/lib/locales/supported.d/ko
ko_KR.EUC-KR EUC-KR

locale-gen --purge

dpkg-reconfigure locales
엔터 2번? 후 5. ko_KR.EUC-KR 선택

vi /etc/environment
LANG="ko_KR.UTF-8"
LANG="ko_KR.EUC-KR"

vi /etc/profile
LANG="ko_KR.UTF-8"

source /etc/profile

 

- 아래는 실제작업 로그

root@b74821646a14:/home/nkjok/var/lib/u2204_java#  /usr/bin/env /usr/lib/jvm/java-17-amazon-corretto/bin/java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:43079 -XX:+ShowCodeDetailsInExceptionMessages -cp /root/.vscode-server/data/User/workspaceStorage/f9b4ef33dc6f41286343b53b35c5a9a3/redhat.java/jdt_ws/u2204_java_73517661/bin nadocoding.chap_10._04_FunctionalInterface 
2 ?? = 2800 ?
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# apt-get -y install language-pack-ko 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  language-pack-ko-base locales
The following NEW packages will be installed:
  language-pack-ko language-pack-ko-base locales
0 upgraded, 3 newly installed, 0 to remove and 10 not upgraded.
Need to get 5486 kB of archives.
After this operation, 22.9 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 locales all 2.35-0ubuntu3.9 [4248 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 language-pack-ko-base all 1:22.04+20240902 [1237 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 language-pack-ko all 1:22.04+20240902 [1900 B]
Fetched 5486 kB in 4s (1562 kB/s)          
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package locales.
(Reading database ... 5531 files and directories currently installed.)
Preparing to unpack .../locales_2.35-0ubuntu3.9_all.deb ...
Unpacking locales (2.35-0ubuntu3.9) ...
Selecting previously unselected package language-pack-ko-base.
Preparing to unpack .../language-pack-ko-base_1%3a22.04+20240902_all.deb ...
Unpacking language-pack-ko-base (1:22.04+20240902) ...
Selecting previously unselected package language-pack-ko.
Preparing to unpack .../language-pack-ko_1%3a22.04+20240902_all.deb ...
Unpacking language-pack-ko (1:22.04+20240902) ...
Setting up locales (2.35-0ubuntu3.9) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Generating locales (this might take a while)...
  ko_KR.UTF-8... done
Generation complete.
Setting up language-pack-ko (1:22.04+20240902) ...
Setting up language-pack-ko-base (1:22.04+20240902) ...
Generating locales (this might take a while)...
Generation complete.
root@b74821646a14:/home/nkjok/var/lib/u2204_java# apt-get install localepurge
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libgdbm-compat4 libgdbm6 libperl5.34 netbase perl perl-modules-5.34 ucf
Suggested packages:
  gdbm-l10n debfoster deborphan bleachbit perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make libtap-harness-archive-perl
The following NEW packages will be installed:
  libgdbm-compat4 libgdbm6 libperl5.34 localepurge netbase perl perl-modules-5.34 ucf
0 upgraded, 8 newly installed, 0 to remove and 10 not upgraded.
Need to get 8170 kB of archives.
After this operation, 48.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 perl-modules-5.34 all 5.34.0-3ubuntu1.3 [2976 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgdbm6 amd64 1.23-1 [33.9 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgdbm-compat4 amd64 1.23-1 [6606 B]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libperl5.34 amd64 5.34.0-3ubuntu1.3 [4820 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 perl amd64 5.34.0-3ubuntu1.3 [232 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 netbase all 6.3 [12.9 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 ucf all 3.0043 [56.1 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/universe amd64 localepurge all 0.7.3.10 [33.1 kB]
Fetched 8170 kB in 4s (2222 kB/s)     
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package perl-modules-5.34.
(Reading database ... 6372 files and directories currently installed.)
Preparing to unpack .../0-perl-modules-5.34_5.34.0-3ubuntu1.3_all.deb ...
Unpacking perl-modules-5.34 (5.34.0-3ubuntu1.3) ...
Selecting previously unselected package libgdbm6:amd64.
Preparing to unpack .../1-libgdbm6_1.23-1_amd64.deb ...
Unpacking libgdbm6:amd64 (1.23-1) ...
Selecting previously unselected package libgdbm-compat4:amd64.
Preparing to unpack .../2-libgdbm-compat4_1.23-1_amd64.deb ...
Unpacking libgdbm-compat4:amd64 (1.23-1) ...
Selecting previously unselected package libperl5.34:amd64.
Preparing to unpack .../3-libperl5.34_5.34.0-3ubuntu1.3_amd64.deb ...
Unpacking libperl5.34:amd64 (5.34.0-3ubuntu1.3) ...
Selecting previously unselected package perl.
Preparing to unpack .../4-perl_5.34.0-3ubuntu1.3_amd64.deb ...
Unpacking perl (5.34.0-3ubuntu1.3) ...
Selecting previously unselected package netbase.
Preparing to unpack .../5-netbase_6.3_all.deb ...
Unpacking netbase (6.3) ...
Selecting previously unselected package ucf.
Preparing to unpack .../6-ucf_3.0043_all.deb ...
Moving old data out of the way
Unpacking ucf (3.0043) ...
Selecting previously unselected package localepurge.
Preparing to unpack .../7-localepurge_0.7.3.10_all.deb ...
Unpacking localepurge (0.7.3.10) ...
Setting up perl-modules-5.34 (5.34.0-3ubuntu1.3) ...
Setting up ucf (3.0043) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Setting up netbase (6.3) ...
Setting up libgdbm6:amd64 (1.23-1) ...
Setting up libgdbm-compat4:amd64 (1.23-1) ...
Setting up libperl5.34:amd64 (5.34.0-3ubuntu1.3) ...
Setting up perl (5.34.0-3ubuntu1.3) ...
Setting up localepurge (0.7.3.10) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Configuring localepurge
-----------------------

The localepurge package will remove all locale files from the system except those that you select here.

When selecting the locale corresponding to your language and country code (such as "de_DE", "de_CH", "it_IT", etc.) it is recommended to choose the two-character entry ("de", "it", etc.) as well.

Entries from /etc/locale.gen will be preselected if no prior configuration has been successfully completed.

  1. aa             79. bg_BG.UTF-8      157. doi_IN             235. es_NI.UTF-8        313. gv                391. ku_TR         469. ne                547. se                 625. tn
  2. aa_DJ          80. bhb              158. dsb                236. es_PA              314. gv_GB             392. ku_TR.UTF-8   470. ne_NP             548. se_NO              626. tn_ZA
  3. aa_DJ.UTF-8    81. bhb_IN.UTF-8     159. dsb_DE             237. es_PA.UTF-8        315. gv_GB.UTF-8       393. kw            471. nhn               549. sgs                627. to
  4. aa_ER          82. bho              160. dv                 238. es_PE              316. ha                394. kw_GB         472. nhn_MX            550. sgs_LT             628. to_TO
[More]  

  5. aa_ER@saaho    83. bho_IN           161. dv_MV              239. es_PE.UTF-8        317. ha_NG             395. kw_GB.UTF-8   473. niu               551. shn                629. tpi
  6. aa_ET          84. bho_NP           162. dz                 240. es_PR              318. hak               396. ky            474. niu_NU            552. shn_MM             630. tpi_PG
  7. af             85. bi               163. dz_BT              241. es_PR.UTF-8        319. hak_TW            397. ky_KG         475. niu_NZ            553. shs                631. tr
  8. af_ZA          86. bi_VU            164. el                 242. es_PY              320. he                398. lb            476. nl                554. shs_CA             632. tr_CY
  9. af_ZA.UTF-8    87. bn               165. el_CY              243. es_PY.UTF-8        321. he_IL             399. lb_LU         477. nl_AW             555. si                 633. tr_CY.UTF-8
  10. agr           88. bn_BD            166. el_CY.UTF-8        244. es_SV              322. he_IL.UTF-8       400. lg            478. nl_BE             556. si_LK              634. tr_TR
  11. agr_PE        89. bn_IN            167. el_GR              245. es_SV.UTF-8        323. hi                401. lg_UG         479. nl_BE.UTF-8       557. sid                635. tr_TR.UTF-8
  12. ak            90. bo               168. el_GR.UTF-8        246. es_US              324. hi_IN             402. lg_UG.UTF-8   480. nl_BE@euro        558. sid_ET             636. ts
  13. ak_GH         91. bo_CN            169. el_GR@euro         247. es_US.UTF-8        325. hif               403. li            481. nl_NL             559. sk                 637. ts_ZA
  14. am            92. bo_IN            170. en                 248. es_UY              326. hif_FJ            404. li_BE         482. nl_NL.UTF-8       560. sk_SK              638. tt
  15. am_ET         93. br               171. en_AG              249. es_UY.UTF-8        327. hne               405. li_NL         483. nl_NL@euro        561. sk_SK.UTF-8        639. tt_RU
  16. an            94. br_FR            172. en_AU              250. es_VE              328. hne_IN            406. lij           484. nn                562. sl                 640. tt_RU@iqtelif
  17. an_ES         95. br_FR.UTF-8      173. en_AU.UTF-8        251. es_VE.UTF-8        329. hr                407. lij_IT        485. nn_NO             563. sl_SI              641. ug
[More] 

  18. an_ES.UTF-8   96. br_FR@euro       174. en_BW              252. et                 330. hr_HR             408. ln            486. nn_NO.UTF-8       564. sl_SI.UTF-8        642. ug_CN
  19. anp           97. brx              175. en_BW.UTF-8        253. et_EE              331. hr_HR.UTF-8       409. ln_CD         487. nr                565. sm                 643. ug_CN@latin
  20. anp_IN        98. brx_IN           176. en_CA              254. et_EE.ISO-8859-15  332. hsb               410. lo            488. nr_ZA             566. sm_WS              644. uk
  21. ar            99. bs               177. en_CA.UTF-8        255. et_EE.UTF-8        333. hsb_DE            411. lo_LA         489. nso               567. so                 645. uk_UA
  22. ar_AE         100. bs_BA           178. en_DK              256. eu                 334. hsb_DE.UTF-8      412. lt            490. nso_ZA            568. so_DJ              646. uk_UA.UTF-8
  23. ar_AE.UTF-8   101. bs_BA.UTF-8     179. en_DK.ISO-8859-15  257. eu_ES              335. ht                413. lt_LT         491. oc                569. so_DJ.UTF-8        647. unm
  24. ar_BH         102. byn             180. en_DK.UTF-8        258. eu_ES.UTF-8        336. ht_HT             414. lt_LT.UTF-8   492. oc_FR             570. so_ET              648. unm_US
  25. ar_BH.UTF-8   103. byn_ER          181. en_GB              259. eu_ES@euro         337. hu                415. lv            493. oc_FR.UTF-8       571. so_KE              649. ur
  26. ar_DZ         104. ca              182. en_GB.ISO-8859-15  260. eu_FR              338. hu_HU             416. lv_LV         494. om                572. so_KE.UTF-8        650. ur_IN
  27. ar_DZ.UTF-8   105. ca_AD           183. en_GB.UTF-8        261. eu_FR.UTF-8        339. hu_HU.UTF-8       417. lv_LV.UTF-8   495. om_ET             573. so_SO              651. ur_PK
  28. ar_EG         106. ca_AD.UTF-8     184. en_HK              262. eu_FR@euro         340. hy                418. lzh           496. om_KE             574. so_SO.UTF-8        652. uz
  29. ar_EG.UTF-8   107. ca_ES           185. en_HK.UTF-8        263. fa                 341. hy_AM             419. lzh_TW        497. om_KE.UTF-8       575. sq                 653. uz_UZ
  30. ar_IN         108. ca_ES.UTF-8     186. en_IE              264. fa_IR              342. hy_AM.ARMSCII-8   420. mag           498. or                576. sq_AL              654. uz_UZ.UTF-8
[More] 

  31. ar_IQ         109. ca_ES@euro      187. en_IE.UTF-8        265. ff                 343. ia                421. mag_IN        499. or_IN             577. sq_AL.UTF-8        655. uz_UZ@cyrillic
  32. ar_IQ.UTF-8   110. ca_ES@valencia  188. en_IE@euro         266. ff_SN              344. ia_FR             422. mai           500. os                578. sq_MK              656. ve
  33. ar_JO         111. ca_FR           189. en_IL              267. fi                 345. id                423. mai_IN        501. os_RU             579. sr                 657. ve_ZA
  34. ar_JO.UTF-8   112. ca_FR.UTF-8     190. en_IN              268. fi_FI              346. id_ID             424. mai_NP        502. pa                580. sr_ME              658. vi
  35. ar_KW         113. ca_IT           191. en_NG              269. fi_FI.UTF-8        347. id_ID.UTF-8       425. mfe           503. pa_IN             581. sr_RS              659. vi_VN
  36. ar_KW.UTF-8   114. ca_IT.UTF-8     192. en_NZ              270. fi_FI@euro         348. ig                426. mfe_MU        504. pa_PK             582. sr_RS@latin        660. wa
  37. ar_LB         115. ce              193. en_NZ.UTF-8        271. fil                349. ig_NG             427. mg            505. pap               583. ss                 661. wa_BE
  38. ar_LB.UTF-8   116. ce_RU           194. en_PH              272. fil_PH             350. ik                428. mg_MG         506. pap_AW            584. ss_ZA              662. wa_BE.UTF-8
  39. ar_LY         117. chr             195. en_PH.UTF-8        273. fo                 351. ik_CA             429. mg_MG.UTF-8   507. pap_CW            585. st                 663. wa_BE@euro
  40. ar_LY.UTF-8   118. chr_US          196. en_SC.UTF-8        274. fo_FO              352. is                430. mhr           508. pl                586. st_ZA              664. wae
  41. ar_MA         119. ckb             197. en_SG              275. fo_FO.UTF-8        353. is_IS             431. mhr_RU        509. pl_PL             587. st_ZA.UTF-8        665. wae_CH
  42. ar_MA.UTF-8   120. ckb_IQ          198. en_SG.UTF-8        276. fr                 354. is_IS.UTF-8       432. mi            510. pl_PL.UTF-8       588. sv                 666. wal
  43. ar_OM         121. cmn             199. en_US              277. fr_BE              355. it                433. mi_NZ         511. ps                589. sv_FI              667. wal_ET
[More] 

  44. ar_OM.UTF-8   122. cmn_TW          200. en_US.ISO-8859-15  278. fr_BE.UTF-8        356. it_CH             434. mi_NZ.UTF-8   512. ps_AF             590. sv_FI.UTF-8        668. wo
  45. ar_QA         123. crh             201. en_US.UTF-8        279. fr_BE@euro         357. it_CH.UTF-8       435. miq           513. pt                591. sv_FI@euro         669. wo_SN
  46. ar_QA.UTF-8   124. crh_UA          202. en_ZA              280. fr_CA              358. it_IT             436. miq_NI        514. pt_BR             592. sv_SE              670. xh
  47. ar_SA         125. cs              203. en_ZA.UTF-8        281. fr_CA.UTF-8        359. it_IT.UTF-8       437. mjw           515. pt_BR.UTF-8       593. sv_SE.ISO-8859-15  671. xh_ZA
  48. ar_SA.UTF-8   126. cs_CZ           204. en_ZM              282. fr_CH              360. it_IT@euro        438. mjw_IN        516. pt_PT             594. sv_SE.UTF-8        672. xh_ZA.UTF-8
  49. ar_SD         127. cs_CZ.UTF-8     205. en_ZW              283. fr_CH.UTF-8        361. iu                439. mk            517. pt_PT.UTF-8       595. sw                 673. yi
  50. ar_SD.UTF-8   128. csb             206. en_ZW.UTF-8        284. fr_FR              362. iu_CA             440. mk_MK         518. pt_PT@euro        596. sw_KE              674. yi_US
  51. ar_SS         129. csb_PL          207. eo                 285. fr_FR.UTF-8        363. ja                441. mk_MK.UTF-8   519. quz               597. sw_TZ              675. yi_US.UTF-8
  52. ar_SY         130. cv              208. eo_US.UTF-8        286. fr_FR@euro         364. ja_JP.EUC-JP      442. ml            520. quz_PE            598. szl                676. yo
  53. ar_SY.UTF-8   131. cv_RU           209. es                 287. fr_LU              365. ja_JP.UTF-8       443. ml_IN         521. raj               599. szl_PL             677. yo_NG
  54. ar_TN         132. cy              210. es_AR              288. fr_LU.UTF-8        366. ka                444. mn            522. raj_IN            600. ta                 678. yue
  55. ar_TN.UTF-8   133. cy_GB           211. es_AR.UTF-8        289. fr_LU@euro         367. ka_GE             445. mn_MN         523. ro                601. ta_IN              679. yue_HK
  56. ar_YE         134. cy_GB.UTF-8     212. es_BO              290. fur                368. ka_GE.UTF-8       446. mni           524. ro_RO             602. ta_LK              680. yuw
[More] 

  57. ar_YE.UTF-8   135. da              213. es_BO.UTF-8        291. fur_IT             369. kab               447. mni_IN        525. ro_RO.UTF-8       603. tcy                681. yuw_PG
  58. as            136. da_DK           214. es_CL              292. fy                 370. kab_DZ            448. mnw           526. ru                604. tcy_IN.UTF-8       682. zh
  59. as_IN         137. da_DK.UTF-8     215. es_CL.UTF-8        293. fy_DE              371. kk                449. mnw_MM        527. ru_RU             605. te                 683. zh_CN
  60. ast           138. de              216. es_CO              294. fy_NL              372. kk_KZ             450. mr            528. ru_RU.CP1251      606. te_IN              684. zh_CN.GB18030
  61. ast_ES        139. de_AT           217. es_CO.UTF-8        295. ga                 373. kk_KZ.RK1048      451. mr_IN         529. ru_RU.KOI8-R      607. tg                 685. zh_CN.GBK
  62. ast_ES.UTF-8  140. de_AT.UTF-8     218. es_CR              296. ga_IE              374. kk_KZ.UTF-8       452. ms            530. ru_RU.UTF-8       608. tg_TJ              686. zh_CN.UTF-8
  63. ayc           141. de_AT@euro      219. es_CR.UTF-8        297. ga_IE.UTF-8        375. kl                453. ms_MY         531. ru_UA             609. tg_TJ.UTF-8        687. zh_HK
  64. ayc_PE        142. de_BE           220. es_CU              298. ga_IE@euro         376. kl_GL             454. ms_MY.UTF-8   532. ru_UA.UTF-8       610. th                 688. zh_HK.UTF-8
  65. az            143. de_BE.UTF-8     221. es_DO              299. gd                 377. kl_GL.UTF-8       455. mt            533. rw                611. th_TH              689. zh_SG
  66. az_AZ         144. de_BE@euro      222. es_DO.UTF-8        300. gd_GB              378. km                456. mt_MT         534. rw_RW             612. th_TH.UTF-8        690. zh_SG.GBK
  67. az_IR         145. de_CH           223. es_EC              301. gd_GB.UTF-8        379. km_KH             457. mt_MT.UTF-8   535. sa                613. the                691. zh_SG.UTF-8
  68. be            146. de_CH.UTF-8     224. es_EC.UTF-8        302. gez                380. kn                458. my            536. sa_IN             614. the_NP             692. zh_TW
  69. be_BY         147. de_DE           225. es_ES              303. gez_ER             381. kn_IN             459. my_MM         537. sah               615. ti                 693. zh_TW.EUC-TW
[More] 

  70. be_BY.UTF-8   148. de_DE.UTF-8     226. es_ES.UTF-8        304. gez_ER@abegede     382. ko                460. nan           538. sah_RU            616. ti_ER              694. zh_TW.UTF-8
  71. be_BY@latin   149. de_DE@euro      227. es_ES@euro         305. gez_ET             383. ko_KR.EUC-KR      461. nan_TW        539. sat               617. ti_ET              695. zu
  72. bem           150. de_IT           228. es_GT              306. gez_ET@abegede     384. ko_KR.UTF-8       462. nan_TW@latin  540. sat_IN            618. tig                696. zu_ZA
  73. bem_ZM        151. de_IT.UTF-8     229. es_GT.UTF-8        307. gl                 385. kok               463. nb            541. sc                619. tig_ER             697. zu_ZA.UTF-8
  74. ber           152. de_LI.UTF-8     230. es_HN              308. gl_ES              386. kok_IN            464. nb_NO         542. sc_IT             620. tk
  75. ber_DZ        153. de_LU           231. es_HN.UTF-8        309. gl_ES.UTF-8        387. ks                465. nb_NO.UTF-8   543. sd                621. tk_TM
  76. ber_MA        154. de_LU.UTF-8     232. es_MX              310. gl_ES@euro         388. ks_IN             466. nds           544. sd_IN             622. tl
  77. bg            155. de_LU@euro      233. es_MX.UTF-8        311. gu                 389. ks_IN@devanagari  467. nds_DE        545. sd_IN@devanagari  623. tl_PH
  78. bg_BG         156. doi             234. es_NI              312. gu_IN              390. ku                468. nds_NL        546. sd_PK             624. tl_PH.UTF-8

(Enter the items or ranges you want to select, separated by spaces.)

Locale files to keep on this system: 

No locale has been chosen for being kept. This means that all locales will be removed from this system. Please confirm whether this is really your intent.

Really remove all locales? [yes/no] 

Really remove all locales? [yes/no] no

No localepurge action until the package is configured

The localepurge package will not be useful until it has been successfully configured using the command "dpkg-reconfigure localepurge". The configured entries from /etc/locale.gen of the locales package will
then be automatically preselected.

dpkg supports --path-exclude and --path-include options to filter files from packages being installed.

Please see /usr/share/doc/localepurge/README.dpkg-path for more information about this feature. It can be enabled (or disabled) later by running "dpkg-reconfigure localepurge".

This option will become active for packages unpacked after localepurge has been (re)configured. Packages installed or upgraded together with localepurge may (or may not) be subject to the previous
configuration of localepurge.

Use dpkg --path-exclude? [yes/no] no


Creating config file /etc/locale.nopurge with new version
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /var/lib/locales/supported.d/ko
bash: vi: command not found
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /var/lib/locales/supported.d/ko test/
.vscode/   README.md  bin/       lib/       src/       
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /var/lib/locales/supported.d/ko test/
.vscode/   README.md  bin/       lib/       src/       
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /var/lib/locales/supported.d/ko      
bash: vi: command not found
root@b74821646a14:/home/nkjok/var/lib/u2204_java# sudo vi /var/lib/locales/supported.d/ko 
bash: sudo: command not found
root@b74821646a14:/home/nkjok/var/lib/u2204_java# sudo vim /var/lib/locales/supported.d/ko 
bash: sudo: command not found
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# apt -y install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libexpat1 libgpm2 libmpdec3 libpython3.10 libpython3.10-minimal libpython3.10-stdlib libreadline8 libsodium23 libsqlite3-0 media-types readline-common vim-common vim-runtime xxd
Suggested packages:
  gpm readline-doc ctags vim-doc vim-scripts
The following NEW packages will be installed:
  libexpat1 libgpm2 libmpdec3 libpython3.10 libpython3.10-minimal libpython3.10-stdlib libreadline8 libsodium23 libsqlite3-0 media-types readline-common vim vim-common vim-runtime xxd
0 upgraded, 15 newly installed, 0 to remove and 10 not upgraded.
Need to get 14.5 MB of archives.
After this operation, 61.2 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libexpat1 amd64 2.4.7-1ubuntu0.5 [91.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpdec3 amd64 2.5.1-2build2 [86.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-minimal amd64 3.10.12-1~22.04.9 [815 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 media-types all 7.0.0 [25.5 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 readline-common all 8.1.2-1 [53.5 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 libreadline8 amd64 8.1.2-1 [153 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsqlite3-0 amd64 3.37.2-2ubuntu0.3 [641 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-stdlib amd64 3.10.12-1~22.04.9 [1850 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 xxd amd64 2:8.2.3995-1ubuntu2.23 [51.7 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 vim-common all 2:8.2.3995-1ubuntu2.23 [81.5 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgpm2 amd64 1.20.7-10build1 [15.3 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10 amd64 3.10.12-1~22.04.9 [1949 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsodium23 amd64 1.0.18-1build2 [164 kB]
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 vim-runtime all 2:8.2.3995-1ubuntu2.23 [6833 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 vim amd64 2:8.2.3995-1ubuntu2.23 [1732 kB]
Fetched 14.5 MB in 4s (3907 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libexpat1:amd64.
(Reading database ... 8427 files and directories currently installed.)
Preparing to unpack .../00-libexpat1_2.4.7-1ubuntu0.5_amd64.deb ...
Unpacking libexpat1:amd64 (2.4.7-1ubuntu0.5) ...
Selecting previously unselected package libmpdec3:amd64.
Preparing to unpack .../01-libmpdec3_2.5.1-2build2_amd64.deb ...
Unpacking libmpdec3:amd64 (2.5.1-2build2) ...
Selecting previously unselected package libpython3.10-minimal:amd64.
Preparing to unpack .../02-libpython3.10-minimal_3.10.12-1~22.04.9_amd64.deb ...
Unpacking libpython3.10-minimal:amd64 (3.10.12-1~22.04.9) ...
Selecting previously unselected package media-types.
Preparing to unpack .../03-media-types_7.0.0_all.deb ...
Unpacking media-types (7.0.0) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../04-readline-common_8.1.2-1_all.deb ...
Unpacking readline-common (8.1.2-1) ...
Selecting previously unselected package libreadline8:amd64.
Preparing to unpack .../05-libreadline8_8.1.2-1_amd64.deb ...
Unpacking libreadline8:amd64 (8.1.2-1) ...
Selecting previously unselected package libsqlite3-0:amd64.
Preparing to unpack .../06-libsqlite3-0_3.37.2-2ubuntu0.3_amd64.deb ...
Unpacking libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ...
Selecting previously unselected package libpython3.10-stdlib:amd64.
Preparing to unpack .../07-libpython3.10-stdlib_3.10.12-1~22.04.9_amd64.deb ...
Unpacking libpython3.10-stdlib:amd64 (3.10.12-1~22.04.9) ...
Selecting previously unselected package xxd.
Preparing to unpack .../08-xxd_2%3a8.2.3995-1ubuntu2.23_amd64.deb ...
Unpacking xxd (2:8.2.3995-1ubuntu2.23) ...
Selecting previously unselected package vim-common.
Preparing to unpack .../09-vim-common_2%3a8.2.3995-1ubuntu2.23_all.deb ...
Unpacking vim-common (2:8.2.3995-1ubuntu2.23) ...
Selecting previously unselected package libgpm2:amd64.
Preparing to unpack .../10-libgpm2_1.20.7-10build1_amd64.deb ...
Unpacking libgpm2:amd64 (1.20.7-10build1) ...
Selecting previously unselected package libpython3.10:amd64.
Preparing to unpack .../11-libpython3.10_3.10.12-1~22.04.9_amd64.deb ...
Unpacking libpython3.10:amd64 (3.10.12-1~22.04.9) ...
Selecting previously unselected package libsodium23:amd64.
Preparing to unpack .../12-libsodium23_1.0.18-1build2_amd64.deb ...
Unpacking libsodium23:amd64 (1.0.18-1build2) ...
Selecting previously unselected package vim-runtime.
Preparing to unpack .../13-vim-runtime_2%3a8.2.3995-1ubuntu2.23_all.deb ...
Adding 'diversion of /usr/share/vim/vim82/doc/help.txt to /usr/share/vim/vim82/doc/help.txt.vim-tiny by vim-runtime'
Adding 'diversion of /usr/share/vim/vim82/doc/tags to /usr/share/vim/vim82/doc/tags.vim-tiny by vim-runtime'
Unpacking vim-runtime (2:8.2.3995-1ubuntu2.23) ...
Selecting previously unselected package vim.
Preparing to unpack .../14-vim_2%3a8.2.3995-1ubuntu2.23_amd64.deb ...
Unpacking vim (2:8.2.3995-1ubuntu2.23) ...
Setting up libexpat1:amd64 (2.4.7-1ubuntu0.5) ...
Setting up media-types (7.0.0) ...
Setting up libsodium23:amd64 (1.0.18-1build2) ...
Setting up libgpm2:amd64 (1.20.7-10build1) ...
Setting up libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ...
Setting up xxd (2:8.2.3995-1ubuntu2.23) ...
Setting up vim-common (2:8.2.3995-1ubuntu2.23) ...
Setting up libpython3.10-minimal:amd64 (3.10.12-1~22.04.9) ...
Setting up libmpdec3:amd64 (2.5.1-2build2) ...
Setting up vim-runtime (2:8.2.3995-1ubuntu2.23) ...
Setting up readline-common (8.1.2-1) ...
Setting up libreadline8:amd64 (8.1.2-1) ...
Setting up libpython3.10-stdlib:amd64 (3.10.12-1~22.04.9) ...
Setting up libpython3.10:amd64 (3.10.12-1~22.04.9) ...
Setting up vim (2:8.2.3995-1ubuntu2.23) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/vi.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/vi.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/vi.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/vi.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/vi.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/vi.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/vi.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/vi.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/view.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/view.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/view.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/view.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/view.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/view.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/view.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/view.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/ex.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/ex.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/ex.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/ex.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/ex.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/ex.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/ex.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/ex.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/editor.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/editor.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/editor.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/editor.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/editor.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/editor.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/editor.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/editor.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group editor) doesn't exist
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...

          You have to configure "localepurge" with the command

              dpkg-reconfigure localepurge

          to make /usr/sbin/localepurge actually start to function.

          Nothing to be done, exiting ...

root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# sudo vim /var/lib/locales/supported.d/ko 
bash: sudo: command not found
root@b74821646a14:/home/nkjok/var/lib/u2204_java# sudo vi /var/lib/locales/supported.d/ko 
bash: sudo: command not found
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi test
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java#  vi /var/lib/locales/supported.d/ko 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /var/lib/locales/supported.d/ko 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# locale-gen --purge
Generating locales (this might take a while)...
  ko_KR.EUC-KR... done
  ko_KR.UTF-8... done
Generation complete.
root@b74821646a14:/home/nkjok/var/lib/u2204_java# dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Configuring locales
-------------------

Locales are a framework to switch between multiple languages and allow users to use their language, country, characters, collation order, etc.

Please choose which locales to generate. UTF-8 locales should be chosen by default, particularly for new installations. Other character sets may be useful for backwards compatibility with older systems and
software.

  1. All locales              85. ca_ES@euro ISO-8859-15          169. es_AR.UTF-8 UTF-8              253. gl_ES.UTF-8 UTF-8          337. mni_IN UTF-8            421. sq_AL ISO-8859-1
  2. C.UTF-8 UTF-8            86. ca_ES@valencia UTF-8            170. es_BO ISO-8859-1               254. gl_ES@euro ISO-8859-15     338. mnw_MM UTF-8            422. sq_AL.UTF-8 UTF-8
  3. aa_DJ ISO-8859-1         87. ca_FR ISO-8859-15               171. es_BO.UTF-8 UTF-8              255. gu_IN UTF-8                339. mr_IN UTF-8             423. sq_MK UTF-8
  4. aa_DJ.UTF-8 UTF-8        88. ca_FR.UTF-8 UTF-8               172. es_CL ISO-8859-1               256. gv_GB ISO-8859-1           340. ms_MY ISO-8859-1        424. sr_ME UTF-8
  5. aa_ER UTF-8              89. ca_IT ISO-8859-15               173. es_CL.UTF-8 UTF-8              257. gv_GB.UTF-8 UTF-8          341. ms_MY.UTF-8 UTF-8       425. sr_RS UTF-8
[More] 

  6. aa_ER@saaho UTF-8        90. ca_IT.UTF-8 UTF-8               174. es_CO ISO-8859-1               258. ha_NG UTF-8                342. mt_MT ISO-8859-3        426. sr_RS@latin UTF-8
  7. aa_ET UTF-8              91. ce_RU UTF-8                     175. es_CO.UTF-8 UTF-8              259. hak_TW UTF-8               343. mt_MT.UTF-8 UTF-8       427. ss_ZA UTF-8
  8. af_ZA ISO-8859-1         92. chr_US UTF-8                    176. es_CR ISO-8859-1               260. he_IL ISO-8859-8           344. my_MM UTF-8             428. st_ZA ISO-8859-1
  9. af_ZA.UTF-8 UTF-8        93. ckb_IQ UTF-8                    177. es_CR.UTF-8 UTF-8              261. he_IL.UTF-8 UTF-8          345. nan_TW UTF-8            429. st_ZA.UTF-8 UTF-8
  10. agr_PE UTF-8            94. cmn_TW UTF-8                    178. es_CU UTF-8                    262. hi_IN UTF-8                346. nan_TW@latin UTF-8      430. sv_FI ISO-8859-1
  11. ak_GH UTF-8             95. crh_UA UTF-8                    179. es_DO ISO-8859-1               263. hif_FJ UTF-8               347. nb_NO ISO-8859-1        431. sv_FI.UTF-8 UTF-8
  12. am_ET UTF-8             96. cs_CZ ISO-8859-2                180. es_DO.UTF-8 UTF-8              264. hne_IN UTF-8               348. nb_NO.UTF-8 UTF-8       432. sv_FI@euro ISO-8859-15
  13. an_ES ISO-8859-15       97. cs_CZ.UTF-8 UTF-8               181. es_EC ISO-8859-1               265. hr_HR ISO-8859-2           349. nds_DE UTF-8            433. sv_SE ISO-8859-1
  14. an_ES.UTF-8 UTF-8       98. csb_PL UTF-8                    182. es_EC.UTF-8 UTF-8              266. hr_HR.UTF-8 UTF-8          350. nds_NL UTF-8            434. sv_SE.ISO-8859-15 ISO-8859-15
  15. anp_IN UTF-8            99. cv_RU UTF-8                     183. es_ES ISO-8859-1               267. hsb_DE ISO-8859-2          351. ne_NP UTF-8             435. sv_SE.UTF-8 UTF-8
  16. ar_AE ISO-8859-6        100. cy_GB ISO-8859-14              184. es_ES.UTF-8 UTF-8              268. hsb_DE.UTF-8 UTF-8         352. nhn_MX UTF-8            436. sw_KE UTF-8
  17. ar_AE.UTF-8 UTF-8       101. cy_GB.UTF-8 UTF-8              185. es_ES@euro ISO-8859-15         269. ht_HT UTF-8                353. niu_NU UTF-8            437. sw_TZ UTF-8
  18. ar_BH ISO-8859-6        102. da_DK ISO-8859-1               186. es_GT ISO-8859-1               270. hu_HU ISO-8859-2           354. niu_NZ UTF-8            438. szl_PL UTF-8
[More] 

  19. ar_BH.UTF-8 UTF-8       103. da_DK.UTF-8 UTF-8              187. es_GT.UTF-8 UTF-8              271. hu_HU.UTF-8 UTF-8          355. nl_AW UTF-8             439. ta_IN UTF-8
  20. ar_DZ ISO-8859-6        104. de_AT ISO-8859-1               188. es_HN ISO-8859-1               272. hy_AM UTF-8                356. nl_BE ISO-8859-1        440. ta_LK UTF-8
  21. ar_DZ.UTF-8 UTF-8       105. de_AT.UTF-8 UTF-8              189. es_HN.UTF-8 UTF-8              273. hy_AM.ARMSCII-8 ARMSCII-8  357. nl_BE.UTF-8 UTF-8       441. tcy_IN.UTF-8 UTF-8
  22. ar_EG ISO-8859-6        106. de_AT@euro ISO-8859-15         190. es_MX ISO-8859-1               274. ia_FR UTF-8                358. nl_BE@euro ISO-8859-15  442. te_IN UTF-8
  23. ar_EG.UTF-8 UTF-8       107. de_BE ISO-8859-1               191. es_MX.UTF-8 UTF-8              275. id_ID ISO-8859-1           359. nl_NL ISO-8859-1        443. tg_TJ KOI8-T
  24. ar_IN UTF-8             108. de_BE.UTF-8 UTF-8              192. es_NI ISO-8859-1               276. id_ID.UTF-8 UTF-8          360. nl_NL.UTF-8 UTF-8       444. tg_TJ.UTF-8 UTF-8
  25. ar_IQ ISO-8859-6        109. de_BE@euro ISO-8859-15         193. es_NI.UTF-8 UTF-8              277. ig_NG UTF-8                361. nl_NL@euro ISO-8859-15  445. th_TH TIS-620
  26. ar_IQ.UTF-8 UTF-8       110. de_CH ISO-8859-1               194. es_PA ISO-8859-1               278. ik_CA UTF-8                362. nn_NO ISO-8859-1        446. th_TH.UTF-8 UTF-8
  27. ar_JO ISO-8859-6        111. de_CH.UTF-8 UTF-8              195. es_PA.UTF-8 UTF-8              279. is_IS ISO-8859-1           363. nn_NO.UTF-8 UTF-8       447. the_NP UTF-8
  28. ar_JO.UTF-8 UTF-8       112. de_DE ISO-8859-1               196. es_PE ISO-8859-1               280. is_IS.UTF-8 UTF-8          364. nr_ZA UTF-8             448. ti_ER UTF-8
  29. ar_KW ISO-8859-6        113. de_DE.UTF-8 UTF-8              197. es_PE.UTF-8 UTF-8              281. it_CH ISO-8859-1           365. nso_ZA UTF-8            449. ti_ET UTF-8
  30. ar_KW.UTF-8 UTF-8       114. de_DE@euro ISO-8859-15         198. es_PR ISO-8859-1               282. it_CH.UTF-8 UTF-8          366. oc_FR ISO-8859-1        450. tig_ER UTF-8
  31. ar_LB ISO-8859-6        115. de_IT ISO-8859-1               199. es_PR.UTF-8 UTF-8              283. it_IT ISO-8859-1           367. oc_FR.UTF-8 UTF-8       451. tk_TM UTF-8
[More] 

  32. ar_LB.UTF-8 UTF-8       116. de_IT.UTF-8 UTF-8              200. es_PY ISO-8859-1               284. it_IT.UTF-8 UTF-8          368. om_ET UTF-8             452. tl_PH ISO-8859-1
  33. ar_LY ISO-8859-6        117. de_LI.UTF-8 UTF-8              201. es_PY.UTF-8 UTF-8              285. it_IT@euro ISO-8859-15     369. om_KE ISO-8859-1        453. tl_PH.UTF-8 UTF-8
  34. ar_LY.UTF-8 UTF-8       118. de_LU ISO-8859-1               202. es_SV ISO-8859-1               286. iu_CA UTF-8                370. om_KE.UTF-8 UTF-8       454. tn_ZA UTF-8
  35. ar_MA ISO-8859-6        119. de_LU.UTF-8 UTF-8              203. es_SV.UTF-8 UTF-8              287. ja_JP.EUC-JP EUC-JP        371. or_IN UTF-8             455. to_TO UTF-8
  36. ar_MA.UTF-8 UTF-8       120. de_LU@euro ISO-8859-15         204. es_US ISO-8859-1               288. ja_JP.UTF-8 UTF-8          372. os_RU UTF-8             456. tpi_PG UTF-8
  37. ar_OM ISO-8859-6        121. doi_IN UTF-8                   205. es_US.UTF-8 UTF-8              289. ka_GE GEORGIAN-PS          373. pa_IN UTF-8             457. tr_CY ISO-8859-9
  38. ar_OM.UTF-8 UTF-8       122. dsb_DE UTF-8                   206. es_UY ISO-8859-1               290. ka_GE.UTF-8 UTF-8          374. pa_PK UTF-8             458. tr_CY.UTF-8 UTF-8
  39. ar_QA ISO-8859-6        123. dv_MV UTF-8                    207. es_UY.UTF-8 UTF-8              291. kab_DZ UTF-8               375. pap_AW UTF-8            459. tr_TR ISO-8859-9
  40. ar_QA.UTF-8 UTF-8       124. dz_BT UTF-8                    208. es_VE ISO-8859-1               292. kk_KZ PT154                376. pap_CW UTF-8            460. tr_TR.UTF-8 UTF-8
  41. ar_SA ISO-8859-6        125. el_CY ISO-8859-7               209. es_VE.UTF-8 UTF-8              293. kk_KZ.RK1048 RK1048        377. pl_PL ISO-8859-2        461. ts_ZA UTF-8
  42. ar_SA.UTF-8 UTF-8       126. el_CY.UTF-8 UTF-8              210. et_EE ISO-8859-1               294. kk_KZ.UTF-8 UTF-8          378. pl_PL.UTF-8 UTF-8       462. tt_RU UTF-8
  43. ar_SD ISO-8859-6        127. el_GR ISO-8859-7               211. et_EE.ISO-8859-15 ISO-8859-15  295. kl_GL ISO-8859-1           379. ps_AF UTF-8             463. tt_RU@iqtelif UTF-8
  44. ar_SD.UTF-8 UTF-8       128. el_GR.UTF-8 UTF-8              212. et_EE.UTF-8 UTF-8              296. kl_GL.UTF-8 UTF-8          380. pt_BR ISO-8859-1        464. ug_CN UTF-8
[More] 

  45. ar_SS UTF-8             129. el_GR@euro ISO-8859-7          213. eu_ES ISO-8859-1               297. km_KH UTF-8                381. pt_BR.UTF-8 UTF-8       465. ug_CN@latin UTF-8
  46. ar_SY ISO-8859-6        130. en_AG UTF-8                    214. eu_ES.UTF-8 UTF-8              298. kn_IN UTF-8                382. pt_PT ISO-8859-1        466. uk_UA KOI8-U
  47. ar_SY.UTF-8 UTF-8       131. en_AU ISO-8859-1               215. eu_ES@euro ISO-8859-15         299. ko_KR.EUC-KR EUC-KR        383. pt_PT.UTF-8 UTF-8       467. uk_UA.UTF-8 UTF-8
  48. ar_TN ISO-8859-6        132. en_AU.UTF-8 UTF-8              216. eu_FR ISO-8859-1               300. ko_KR.UTF-8 UTF-8          384. pt_PT@euro ISO-8859-15  468. unm_US UTF-8
  49. ar_TN.UTF-8 UTF-8       133. en_BW ISO-8859-1               217. eu_FR.UTF-8 UTF-8              301. kok_IN UTF-8               385. quz_PE UTF-8            469. ur_IN UTF-8
  50. ar_YE ISO-8859-6        134. en_BW.UTF-8 UTF-8              218. eu_FR@euro ISO-8859-15         302. ks_IN UTF-8                386. raj_IN UTF-8            470. ur_PK UTF-8
  51. ar_YE.UTF-8 UTF-8       135. en_CA ISO-8859-1               219. fa_IR UTF-8                    303. ks_IN@devanagari UTF-8     387. ro_RO ISO-8859-2        471. uz_UZ ISO-8859-1
  52. as_IN UTF-8             136. en_CA.UTF-8 UTF-8              220. ff_SN UTF-8                    304. ku_TR ISO-8859-9           388. ro_RO.UTF-8 UTF-8       472. uz_UZ.UTF-8 UTF-8
  53. ast_ES ISO-8859-15      137. en_DK ISO-8859-1               221. fi_FI ISO-8859-1               305. ku_TR.UTF-8 UTF-8          389. ru_RU ISO-8859-5        473. uz_UZ@cyrillic UTF-8
  54. ast_ES.UTF-8 UTF-8      138. en_DK.ISO-8859-15 ISO-8859-15  222. fi_FI.UTF-8 UTF-8              306. kw_GB ISO-8859-1           390. ru_RU.CP1251 CP1251     474. ve_ZA UTF-8
  55. ayc_PE UTF-8            139. en_DK.UTF-8 UTF-8              223. fi_FI@euro ISO-8859-15         307. kw_GB.UTF-8 UTF-8          391. ru_RU.KOI8-R KOI8-R     475. vi_VN UTF-8
  56. az_AZ UTF-8             140. en_GB ISO-8859-1               224. fil_PH UTF-8                   308. ky_KG UTF-8                392. ru_RU.UTF-8 UTF-8       476. wa_BE ISO-8859-1
  57. az_IR UTF-8             141. en_GB.ISO-8859-15 ISO-8859-15  225. fo_FO ISO-8859-1               309. lb_LU UTF-8                393. ru_UA KOI8-U            477. wa_BE.UTF-8 UTF-8
[More] 

  58. be_BY CP1251            142. en_GB.UTF-8 UTF-8              226. fo_FO.UTF-8 UTF-8              310. lg_UG ISO-8859-10          394. ru_UA.UTF-8 UTF-8       478. wa_BE@euro ISO-8859-15
  59. be_BY.UTF-8 UTF-8       143. en_HK ISO-8859-1               227. fr_BE ISO-8859-1               311. lg_UG.UTF-8 UTF-8          395. rw_RW UTF-8             479. wae_CH UTF-8
  60. be_BY@latin UTF-8       144. en_HK.UTF-8 UTF-8              228. fr_BE.UTF-8 UTF-8              312. li_BE UTF-8                396. sa_IN UTF-8             480. wal_ET UTF-8
  61. bem_ZM UTF-8            145. en_IE ISO-8859-1               229. fr_BE@euro ISO-8859-15         313. li_NL UTF-8                397. sah_RU UTF-8            481. wo_SN UTF-8
  62. ber_DZ UTF-8            146. en_IE.UTF-8 UTF-8              230. fr_CA ISO-8859-1               314. lij_IT UTF-8               398. sat_IN UTF-8            482. xh_ZA ISO-8859-1
  63. ber_MA UTF-8            147. en_IE@euro ISO-8859-15         231. fr_CA.UTF-8 UTF-8              315. ln_CD UTF-8                399. sc_IT UTF-8             483. xh_ZA.UTF-8 UTF-8
  64. bg_BG CP1251            148. en_IL UTF-8                    232. fr_CH ISO-8859-1               316. lo_LA UTF-8                400. sd_IN UTF-8             484. yi_US CP1255
  65. bg_BG.UTF-8 UTF-8       149. en_IN UTF-8                    233. fr_CH.UTF-8 UTF-8              317. lt_LT ISO-8859-13          401. sd_IN@devanagari UTF-8  485. yi_US.UTF-8 UTF-8
  66. bhb_IN.UTF-8 UTF-8      150. en_NG UTF-8                    234. fr_FR ISO-8859-1               318. lt_LT.UTF-8 UTF-8          402. sd_PK UTF-8             486. yo_NG UTF-8
  67. bho_IN UTF-8            151. en_NZ ISO-8859-1               235. fr_FR.UTF-8 UTF-8              319. lv_LV ISO-8859-13          403. se_NO UTF-8             487. yue_HK UTF-8
  68. bho_NP UTF-8            152. en_NZ.UTF-8 UTF-8              236. fr_FR@euro ISO-8859-15         320. lv_LV.UTF-8 UTF-8          404. sgs_LT UTF-8            488. yuw_PG UTF-8
  69. bi_VU UTF-8             153. en_PH ISO-8859-1               237. fr_LU ISO-8859-1               321. lzh_TW UTF-8               405. shn_MM UTF-8            489. zh_CN GB2312
  70. bn_BD UTF-8             154. en_PH.UTF-8 UTF-8              238. fr_LU.UTF-8 UTF-8              322. mag_IN UTF-8               406. shs_CA UTF-8            490. zh_CN.GB18030 GB18030
[More] 

  71. bn_IN UTF-8             155. en_SC.UTF-8 UTF-8              239. fr_LU@euro ISO-8859-15         323. mai_IN UTF-8               407. si_LK UTF-8             491. zh_CN.GBK GBK
  72. bo_CN UTF-8             156. en_SG ISO-8859-1               240. fur_IT UTF-8                   324. mai_NP UTF-8               408. sid_ET UTF-8            492. zh_CN.UTF-8 UTF-8
  73. bo_IN UTF-8             157. en_SG.UTF-8 UTF-8              241. fy_DE UTF-8                    325. mfe_MU UTF-8               409. sk_SK ISO-8859-2        493. zh_HK BIG5-HKSCS
  74. br_FR ISO-8859-1        158. en_US ISO-8859-1               242. fy_NL UTF-8                    326. mg_MG ISO-8859-15          410. sk_SK.UTF-8 UTF-8       494. zh_HK.UTF-8 UTF-8
  75. br_FR.UTF-8 UTF-8       159. en_US.ISO-8859-15 ISO-8859-15  243. ga_IE ISO-8859-1               327. mg_MG.UTF-8 UTF-8          411. sl_SI ISO-8859-2        495. zh_SG GB2312
  76. br_FR@euro ISO-8859-15  160. en_US.UTF-8 UTF-8              244. ga_IE.UTF-8 UTF-8              328. mhr_RU UTF-8               412. sl_SI.UTF-8 UTF-8       496. zh_SG.GBK GBK
  77. brx_IN UTF-8            161. en_ZA ISO-8859-1               245. ga_IE@euro ISO-8859-15         329. mi_NZ ISO-8859-13          413. sm_WS UTF-8             497. zh_SG.UTF-8 UTF-8
  78. bs_BA ISO-8859-2        162. en_ZA.UTF-8 UTF-8              246. gd_GB ISO-8859-15              330. mi_NZ.UTF-8 UTF-8          414. so_DJ ISO-8859-1        498. zh_TW BIG5
  79. bs_BA.UTF-8 UTF-8       163. en_ZM UTF-8                    247. gd_GB.UTF-8 UTF-8              331. miq_NI UTF-8               415. so_DJ.UTF-8 UTF-8       499. zh_TW.EUC-TW EUC-TW
  80. byn_ER UTF-8            164. en_ZW ISO-8859-1               248. gez_ER UTF-8                   332. mjw_IN UTF-8               416. so_ET UTF-8             500. zh_TW.UTF-8 UTF-8
  81. ca_AD ISO-8859-15       165. en_ZW.UTF-8 UTF-8              249. gez_ER@abegede UTF-8           333. mk_MK ISO-8859-5           417. so_KE ISO-8859-1        501. zu_ZA ISO-8859-1
  82. ca_AD.UTF-8 UTF-8       166. eo UTF-8                       250. gez_ET UTF-8                   334. mk_MK.UTF-8 UTF-8          418. so_KE.UTF-8 UTF-8       502. zu_ZA.UTF-8 UTF-8
  83. ca_ES ISO-8859-1        167. eo_US.UTF-8 UTF-8              251. gez_ET@abegede UTF-8           335. ml_IN UTF-8                419. so_SO ISO-8859-1
[More] 

  84. ca_ES.UTF-8 UTF-8       168. es_AR ISO-8859-1               252. gl_ES ISO-8859-1               336. mn_MN UTF-8                420. so_SO.UTF-8 UTF-8

(Enter the items or ranges you want to select, separated by spaces.)

Locales to be generated: 

Many packages in Debian use locales to display text in the correct language for the user. You can choose a default locale for the system from the generated locales.

This will select the default language for the entire system. If this system is a multi-user system where not all users are able to speak the default language, they will experience difficulties.

  1. None  2. C.UTF-8  3.   4. ko_KR.UTF-8  5. ko_KR.EUC-KR
Default locale for the system environment: 5

Generating locales (this might take a while)...
  ko_KR.EUC-KR... done
  ko_KR.UTF-8... done
Generation complete.
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /etc/environment
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# vi /etc/profile
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# source /etc/profile
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# 
root@b74821646a14:/home/nkjok/var/lib/u2204_java# ^C

root@b74821646a14:/home/nkjok/var/lib/u2204_java#  cd /home/nkjok/var/lib/u2204_java ; /usr/bin/env /usr/lib/jvm/java-17-amazon-corretto/bin/java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:44087 -XX:+ShowCodeDetailsInExceptionMessages -cp /root/.vscode-server/data/User/workspaceStorage/f9b4ef33dc6f41286343b53b35c5a9a3/redhat.java/jdt_ws/u2204_java_73517661/bin nadocoding.chap_10._04_FunctionalInterface 
2 달러 = 2800 원
반응형

[Java] 자바 synchronized (멀티스레드/동기화)

Posted by nkjok
2025. 3. 22. 20:45 낙서장[1]/91. Java
반응형

자바에서 synchronized 키워드는 멀티스레드 환경에서 동기화를 위해 사용되는 중요한 기능입니다. 이 포스팅에서는 synchronized의 개념, 사용 방법, 장단점, 그리고 예시를 통해 상세하게 설명하겠습니다.

1. synchronized의 개념

동기화란?

동기화는 여러 스레드가 동시에 접근할 수 있는 공유 자원에 대해 한 번에 하나의 스레드만 접근할 수 있도록 제어하는 것을 의미합니다. 이를 통해 데이터의 일관성을 유지하고, 경쟁 상태(race condition)를 방지할 수 있습니다.

synchronized 키워드

자바에서 synchronized 키워드는 메서드나 코드 블록 앞에 사용되어 해당 영역을 임계 영역(critical section)으로 지정합니다. 임계 영역은 한 번에 하나의 스레드만 접근할 수 있는 코드 영역을 의미합니다.

2. synchronized의 사용 방법

메서드 동기화

메서드 선언부에 synchronized 키워드를 붙여서 해당 메서드가 한 번에 하나의 스레드만 접근할 수 있도록 합니다.

public synchronized void method() {
    // 임계 영역
}

블록 동기화

특정 코드 블록을 동기화할 수 있습니다. 이 경우, synchronized 블록 내의 코드만 동기화됩니다.

public void method() {
    synchronized(this) {
        // 임계 영역
    }
}

정적 메서드 동기화

정적 메서드에 synchronized 키워드를 붙이면 클래스 레벨에서 동기화가 이루어집니다.

public static synchronized void staticMethod() {
    // 임계 영역
}

정적 블록 동기화

정적 블록을 동기화할 때는 클래스 객체를 사용합니다.

public static void staticMethod() {
    synchronized(MyClass.class) {
        // 임계 영역
    }
}

3. synchronized의 동작 원리

모니터 락(Monitor Lock)

synchronized 키워드는 객체의 모니터 락을 사용합니다. 스레드가 synchronized 메서드나 블록에 진입하면 해당 객체의 모니터 락을 획득하고, 메서드나 블록을 빠져나올 때 락을 해제합니다

예시

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

위 예시에서 increment와 getCount 메서드는 동기화되어 있어, 여러 스레드가 동시에 접근하더라도 count 변수의 일관성이 유지됩니다.

4. synchronized의 장단점

장점

  1. 데이터 일관성 유지: 여러 스레드가 동시에 접근할 때 데이터의 일관성을 유지할 수 있습니다.
  2. 간단한 사용법: synchronized 키워드를 사용하여 쉽게 동기화를 구현할 수 있습니다.

단점

  1. 성능 저하: 동기화로 인해 스레드가 대기 상태에 들어가면 성능이 저하될 수 있습니다.
  2. 교착 상태(Deadlock): 잘못된 동기화로 인해 교착 상태가 발생할 수 있습니다.
  3. 무한 대기(Blocked 상태): 스레드가 락을 획득하지 못할 경우 무한 대기 상태에 빠질 수 있습니다

5. 고급 예시

생산자-소비자 문제

생산자-소비자 문제는 멀티스레드 환경에서 자주 등장하는 문제로, synchronized를 사용하여 해결할 수 있습니다.

import java.util.LinkedList;
import java.util.Queue;

public class ProducerConsumer {
    private final Queue<Integer> queue = new LinkedList<>();
    private final int MAX_SIZE = 5;

    public void produce() throws InterruptedException {
        int value = 0;
        while (true) {
            synchronized (this) {
                while (queue.size() == MAX_SIZE) {
                    wait();
                }
                queue.add(value);
                System.out.println("Produced: " + value);
                value++;
                notify();
                Thread.sleep(1000);
            }
        }
    }

    public void consume() throws InterruptedException {
        while (true) {
            synchronized (this) {
                while (queue.isEmpty()) {
                    wait();
                }
                int value = queue.poll();
                System.out.println("Consumed: " + value);
                notify();
                   }

    public static void main(String[] args) {
        ProducerConsumer pc = new ProducerConsumer();
        Thread producerThread = new Thread(() -> {
            try {
                pc.produce();
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
        });

        Thread consumerThread = new Thread(() -> {
            try {
                pc.consume();
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
        });

        producerThread.start();
        consumerThread.start();
    }
}

위 예시에서 produce와 consume 메서드는 synchronized 블록을 사용하여 동기화됩니다. wait와 notify 메서드를 사용하여 생산자와 소비자 스레드 간의 협력을 구현합니다.

synchronized 키워드는 자바에서 멀티스레드 환경에서 동기화를 구현하는 데 매우 유용한 도구입니다. 이를 통해 데이터의 일관성을 유지하고, 경쟁 상태를 방지할 수 있습니다. 그러나 성능 저하와 교착 상태와 같은 단점도 있으므로, 상황에 맞게 적절히 사용해야 합니다.

반응형

[코딩&디버깅] 도커 MYSQL 설치

Posted by nkjok
2025. 3. 3. 16:35 낙서장[2]/코딩&디버깅
반응형

docker run -d -it --name mysql1 -p 12000:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.41

 

반응형