목록전체 글 (373)
삶 가운데 남긴 기록 AACII.TISTORY.COM
gitlab 설치 시에 기본 port가 8080 입니다. 그런데 8080은 흔히 WAS에서 사용하는 포트기 때문에 보통 gitlab의 포트를 8080 포트가 아닌 다른 포트로 변경해서 설치합니다. (external_url 설정으로...) 그런데 gitlab을 구동했을 때 8080 포트가 사용중인 경우가 있습니다. 깃랩 서비스가 시작된 후 사용 중인 포트를 조사해보면 sudo netstat -nltp puma가 8080 포트를 점유중인것을 알 수 있습니다. puma 구글에서 검색해보면 unicorn 설정이 많이 나오지만 gitlab 14.0 부터는 unicorn 의 지원을 제외한다고 합니다. 그런데 puma 가 8080 포트를 기본 값으로 사용하고 있어서 tomcat같은 was를 사용할 때 8080 포트가..
1993년 루카스필름 작, 매니악 맨션 후속작 텐타클 최후의 날입니다. 영화/애니메이션을 제작하던 회사답게 미국식 애니메이션과 미국식 개그 코드가 재미있는 게임입니다. 시간 여행을 소재로 하였기 때문에 모은 아이템들을 시간 이동 시켜서 각 시간대에서 문제를 해결해 나가는 게임입니다. 게임 곳곳에 제작팀의 번뜩이는 창의력이 돋보이는 명작입니다. 게임 오버는 없지만 문제를 해결하지 못하면 더 이상 진행을 못합니다. 등장인물 버나드 : 이전작에도 등장했던 전형적인 너드한 공돌이 캐릭터. 현재 시간대를 담당합니다. 래번 : 의대생으로 말투가 느려서 귀엽습니다. 200년 후 시간대를 담당합니다. 호기 : 밴드에서 드럼을 맡고 있는 뮤지션 캐릭터. 200년 전 시간대를 담당합니다. 줄거리 매니악 맨션에서는 오수로 ..
100 : 현재 데이터를 서버가 받은 상태 200 : 에러없는 정상 처리 204 : 정상처리되었지만 서버에서 응답 데이터가 없음 301 : 요청 페이지가 새 URL로 변경되었음 304 : 기존 데이터와 변경된 것이 없음 400 : Request에 문제가 있어서 서버가 인식 할 수 없음 403 : 서버에서 허락되지 않음 404 : URL에서 자원을 찾을 수 없음 406 : 전송 방식(method)가 허락되지 않음 500 : 서버 처리시 문제 발생 502 : 게이트웨이나 프록시 상태 문제(과부하) 503 : 일시적 과부하 혹은 서비스 중단 504 : 서비스가 타임 아웃 되어 처리되지 못함.
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 여기서는 JDK11을 기준으로 합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. (윈도우 경로 기준) -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코..
MySQL 8 이상 MySQL 8은 기본 character set 과 collation 이 utf8mb4와 utf8mb4_0900_ai_ci 이므로 별도 utf8설정이 필요하지 않습니다. MySQL의 utf8은 3byte 문자 밖에 표시하지 못하므로 utf8mb4 즉, 4byte 인코딩을 사용할 것을 권장합니다. (MySQL 5.5.3 이상 필요) MySQL 5.7 MySQL 5.7 이하는 명시적으로 설정하지 않으면 latin1 이 기본 캐릭터 셋입니다. mysql 콘솔에 접속 후 mysql -u root -p status으로 server characterset 등을 확인할 수 있습니다. status; Charaterset 설정 CentOS 설정 파일: /etc/my.cnf Ubuntu 설정 파일: /e..
RAID(Redundant Array of Independent Disks) 여러개의 디스크를 하나의 디스크 처럼 사용하는 방식 Linear RAID 2개 이상의 디스크를 1개의 볼륨으로 사용합니다. 첫 번째 디스크부터 데이터를 저장한 후 꽉차면 두번째 디스크에 데이터를 저장하는 방식입니다. 그래서 각 디스크의 용량이 달라도 문제없이 사용할 수 있습니다. RAID 0 Linear RAID와는 다르게 데이터를 각 디스크에 분할하여 동시에 저장하는 방식입니다. 동시에 저장하기 때문에 저장 속도가 획기적으로 향상됩니다. 단점은, 여러개의 디스크 중에서 한개가 고장나면 모든 데이터를 잃어버린다는 점입니다. 그래서 속도는 빨라야하지만 잃어버려도 큰 문제가 없는 데이터를 저장할 때 적절한 방식입니다. RAID 1 ..
IDE 장치와 SCSI 장치 IDE는 메인보드 슬롯에 각각 2개씩 총 4개 장착할 수 있습니다 표기는 IDE 0:0, 0:1, 1:0, 1:1처럼 표기합니다. 실제 컴퓨터에 CentOS가 설치되어 있다면 실제 물리 하드디스크를 장착하겠지만, VMware는 기본적으로 IDE 1:0 에 CD/DVD 장치를 장착해 줍니다. SCSI는 총 16개의 장치를 연결할 수 있습니다. 여기서 우리는 VMware에 하드디스크를 SCSI로 추가해볼 것입니다. VMware에서는 총 60개 까지 하드디스크를 사용할 수 있습니다. 리눅스에서는 SCSI디스크 이름을 /dev/sda 라고 부릅니다. 추가로 디스크를 장착하면 /dev/sdb, /dev/sdc, /dev/sdd 등으로 부르고 논리적인 파티션으로 나눠진 것은 /dev/s..
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..