목록DEV&OPS (249)
삶 가운데 남긴 기록 AACII.TISTORY.COM

pid 메모리에 로딩된 프로세스를 구분해주는 id 값입니다. kill 명령어와 pid 값으로 강제로 종료할 수 있습니다. 다만 부모 프로세스와 자식 프로세스로 종속되어 실행되는 프로세스들도 있으므로 주의해야 합니다. jobs jobs 명령어를 실행하면 현재 실행되는 백그라운드 프로세스의 번호를 출력해줍니다. ps 현재 프로세스 상태를 확인하는 명령어 입니다. kill 프로세스를 강제 종료하는 명령어 입니다. -9 옵션과 함께 사용하면 무한 루프를 도는 프로세스도 강제 종료 됩니다. pstree 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여주는 명령어 입니다. 단축키 stty -a 하면 정의된 문자를 볼 수 있습니다. 인터럽트 : ctrl-c 강제종료 : ctrl-\ end of file : c..
네트워크 장치 이름 확인 centOS 7은 네트워크 장치(랜카드) 이름을 ens32 또는 ens33 으로 인식합니다. ifconfing ens33 nmtui 이 명령어는 Network Manager Text User Interface로 네트워크 작업 대부분을 할 수 있습니다. ip설정, 서브넷 마스크, 게이트웨이, dns 정보 들을 편집 할 수 있습니다. systemctl start/stop/restart/status network nmtui 명령을 통해 편집할 내용을 적용할 때 쓰는 명령어 입니다. ifup 장치이름 여기서 장치이름은 위에서 언급했던 ens32 또는 ens33을 말합니다. 해당 네트워크 장치를 작동시켜주는 명령어 입니다. ifdown 장치이름 ifup과 반대로 해당 네트워크 장치를 끄는..

java.lang.ClassNotFoundException: sun.misc.GC 이클립스에서 톰캣을 실행할 때 가끔 볼 수 있는 이 오류는 톰켓 버전과 JDK 버전이 맞지 않을 때 발생하는 오류입니다. 예를 들어 Tomcat 8을 사용중일 때 JDK가 11이 설치되었을 때 발생할 수 있습니다. sun.misc.GC는 java9부터 제외되었기 때문입니다. PC에 JDK8과 JDK11이 둘 다 설치되어 있다는 가정하에 이클립스에서 JDK 버전을 바꿔주는 방법으로 해결합니다. 이클립스 > Window > Preferences > Java > Installed JREs 위 화면에서 우측 Search... 버튼을 눌러 JDK8이 설치된 경로를 찾은 후에 설정을 체크하면 오류가 해결됩니다. 만약 프로젝트가 다양해..
1. 이클립스 > Window > Preferences 2. Java > Code Style > Code Templates 에서 Comments 항목을 펼치면 여러가지 항목이 나오는데 그 중에서 Types: 클래스 상단에 적용되는 주석 Methods: 메서드에 적용되는 주석 위 항목들을 클릭하고 Edit 버튼을 눌러 자주 사용하는 2개만 수정해 봅시다. Types 예제 /** * @author : ${user} * @date : ${date} * @description : */ Methods 예제 /** * @author : ${user} * @date : ${id:date('YYYY-MM-dd')} * @description : * ${tags} */ 위처럼 Edit 한 후 apply를 눌러 적용합니다..
cron(주기적으로 반복되는 일을 자동으로 실행) at(일회성 작업 예약) crontab 명령어 형식 분 시 일 월 요일 사용자 실행명령 매월 1일 아무요일 새벽 5시 root 사용자의 home 디렉토리를 backup 디렉토리에 복사(백업) 하는 예제 00 05 1 * * root cp -r /home /backup 매월 15일 새벽 3시 에 /home 과 그 하위 디렉터리를 /backup 디렉터리에 백업하는 예제 기본적으로 crond가 고동되어 있는지 확인해봅니다. systemctl status crond vim 에디터로 crontab을 편집 합니다. vi /etc/crontab 편집 모드 vim 에디터에서 맨 아래에 아래 처럼 등록하고 명령모드에서 wq! 로 저장하고 vim을 빠져나갑니다. 00 3 ..
Bcrypt 사용 예 maven이나 gradle로 관련 라이브러리를 추가 후 아래와 같이 사용합니다. String pw = "pw1234!"; //실제 데이터베이스에 저장될 패스워드의 해시값 String hashed = BCrypt.hashpw(pw, BCrypt.gensalt()); //입력된 패스워드와 해시되어 저장된 패스워드를 비교 boolean isValid = BCrypt.checkpw(pw, hashed); salt 해시된 패스워드를 저장한 테이블인 Rainbow Table 을 이용한 해킹 공격을 막기 위하여 랜덤 생성한 salt값을 더한 뒤 다시한 번 해시 값을 얻어서 Rainbow Table 을 이용한 공격을 막습니다. Bcrypt 해시 값의 예 $2a$10$vI8aWBnW3fID.ZQ4/..
1.운영 Apache Hadoop 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크입니다. 구글 분산 파일 시스템 논문이 공개된 후 그 구조에 대응하는 시스템으로 개발되었습니다. 구성 모듈: Hadoop Common, 하둡 분산 파일 시스템, 하둡 YARN, 하둡 맵리듀스 Apache Ambari 웹 UI를 통해 Hadoop 클러스트 구성, 모니터링, 관리합니다. REST API를 통해 다른 애플리케이션과 통합합니다. Apache ZooKeeper 공개 분산형 구성 서비스, 동기 서비스, 분산 시스템을 위한 네이밍 레지스트리를 제공합니다. 빅테이터 플랫폼에 동물 로고가 많기 때문에 동물원 사육사의 이름이 붙었습니다. 분산처리 ..

JAVA application Export runnable jar 자바 어플리케이션을 실행가능한 jar 파일로 만들 때 manifest 파일(MANIFEST.MF)에 메인 클래스를 지정해줘야 합니다. https://iloveaired.tistory.com/entry/Jar-manifest-%ED%8C%8C%EC%9D%BC-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0 Jar manifest 파일 등록하기 예) Manifest-Version: 1.0 Main-Class: XXXXX iloveaired.tistory.com https://m.blog.naver.com/eungsik80/220054805497 jar 파일 생성 시 MANIFEST.MF 작성 jar 파일 생성 시 MANIFE..

putty로 리눅스에 접속했을 때 한글이 깨져서 나올 때가 있습니다. 그럴 때 아래와 같이 설정을 바꿔보십시오. 창 > 변환 탭 수신한 데이터를 이 문자셋으로 가정 항목이 있습니다. 이 항목을 수정해보면 됩니다. 대개 CP949(윈도우)으로 되어있는 것이 기본 값일 텐데, 리눅스 서버의 한글 인코딩과 맞춰주면 됩니다.(예:UTF-8) 덤으로 폰트는 창> 모양에서 변경할 수 있습니다.
이미 푸시 해버린 폴더나 파일들을 git에서 추적 중지하려면 git ignore 으로는 되지 않습니다. 이미 푸시 된 폴더나 파일의 추적을 중지 하려면 아래와 같이 입력합니다. $ git update-index --skip-worktree 파일이나폴더이름 예를 들어 아래와 같이 추적 중지를 할 수 있습니다. $ git update-index --skip-worktree .settings/* $ git update-index --skip-worktree .metadata/* $ git update-index --skip-worktree .classpath $ git update-index --skip-worktree .project
1. 들여쓰기 1.1. space와 tab을 섞어 혼용해서 쓰지 않는다. 들여쓰기는 space 4개를 사용. function getText(obj){ return obj.value; } 2. 문장의 종료 2.1. 한 줄에 한 문장만 허용한다. 문장 종료 시 반드시 세미콜론을 사용한다. let systemCall; 3. 명명 규칙 3.1. 변수나 함수 이름은 낙타등 표기법을 사용한다. let privateVariableName; 3.2. 상수는 모두 대문자로 하고 단어를 합성할 때는 언더스코어( _ )를 이용한 스네이크 표기법을 사용한다. SYMBOLIC_CONSTANTS; 3.3 Boolean 변수는 is로 시작한다. let isAvailable = false; 3.4. 범용적인 약어는 대문자 그대로 사..
1. 인코딩(Encoding) 1.1. 파일 및 문자 인코딩은 UTF-8 (gerneral_ci)으로 통일한다. 2. 이름(Naming) 2.1. 변수명, 클래스명, 인터페이스명, 메서드명에는 영어와 숫자만 사용한다. public interface AutoClosable{ 2.2. 변수명, 클래스명, 인터페이스명, 메서드명 단어 합성시에는 낙타 등 표기법으로 한다. public interface RowMapper{ 2.3. 클래스명, 인터페이스명, 생성자명은 대문자로 시작한다. public class WatcherClass{ 2.4. 변수명과 메서드명은 소문자로 시작해야한다. public String setHtmlName(String mode){ 2.5. 상수명은 모두 대문자로 하고 단어를 합성할 때는 ..

https://about.gitlab.com/install/#centos-7?version=ce Download and install GitLab Learn about the various GitLab installation packages and downloads for Ubuntu, Debian, Docker, Google Cloud, and many more. about.gitlab.com GitLab은 EE 버전과 CE 버전이 있는데 CE(Community Edition) 버전이 무료 버전입니다만, 공식 사이트에서는 기본적으로 EE 버전으로 설치 가이드가 작성되어 있어서 따로 CE버전 설치 방법을 포스팅하겠습니다. 1. Git 설치 우선 git이 설치되어있는지 확인합니다. git --version..
root 계정 접속 su - sudoers 파일 쓰기 권한 설정 chmod +w /etc/sudoers sudoers 파일에 사용자 추가 vi /etc/sudoers VIM 으로 파일 편집에 들어가서 아래 부분을 찾아 그 아래에다가 추가할 사용자를 추가합니다. rootALL=(ALL)ALL 예) 여기서 유저 계정은 testuser라고 가정합니다. rootALL=(ALL)ALL testuserALL=(ALL)ALL VIM 명령 모드에서 wq! 를 입력해 저장하고 빠져나갑니다. sudoers 파일 쓰기 권한 회수 chmod -w /etc/sudoers sudo 테스트 su - testuser sudo whoami 해당 testuser 계정에서 sudo whoami 를 입력 했을 때 root 가 나오면 정상적..
java.util.concurrent.TimeUnit 패키지 TimeUnit은 멀티 Thread가 아닌 메서드에서 시간을 지연 시킬 때 사용합니다. 예제 import java.util.concurrent.TimeUnit; public class SimpleTest { public static void main(String[] args) { try { for (int i = 0; i < 3; i++) { TimeUnit.SECONDS.sleep(2); System.out.println("Sleep "+i+" sec"); } }catch(Exception e) { System.out.println(e); } } } 자세한 api 문서는 아래 참고 https://docs.oracle.com/javase/7/d..