목록분류 전체보기 (326)
삶 가운데 남긴 기록 AACII.TISTORY.COM
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. 상수명은 모두 대문자로 하고 단어를 합성할 때는 ..
대항해시대 오리진에는 여급(남급)과 친밀도를 최대치로 올리면 퀘스트를 줍니다. 여기서는 퀘스트를 세번 완료하면 B급 장비를 주는데 그중 유용한 전투 장비를 주는 퀘스트를 정리해보겠습니다. 흐로닝언 여관(포격) 30레벨 제한 1. 놓칠수 없어: 아티나 > 흐로닝언 2. 비밀스런 선물: 도버 해적 처치 > 플리머스 > 카사블랑카 장미 30개 3. 간절했던 마음: 세우타 > 흐로닝언 > 상트페테르부르크 > 흐로닝언 획득 B급 장비: 부카니에의 질레(남자) 결투 방어력 19 추가 백병 방어력 18 포격술 27 지중해 6 세비야 여관(포격) 25레벨 제한 1. 남동생의 행방: 해적처치 > 시라쿠자 > 세비야 2. 남동생을 찾아서 : 알이스칸다리야 > 해전 > 세비야 3. 남동생을 잡아라 : 나폴리 > 세비야 획득..
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..
서비스(비즈니스 로직) 서비스 레이어는 controller와 persistence 사이에서 비즈니스 로직을 수행하는 역할입니다. service 패키지를 만들어 아래 예제를 작성합니다. package ds.co.kr.todo.service; import org.springframework.stereotype.Service; @Service public class TodoService { public String testService() { return "Test Service"; } } @Service 어노테이션은 비즈니스 로직을 수행하는 컴포넌트이며 서비스 레이어임을 알려주는 어노테이션입니다. 스테레오 타입 어노테이션으로 내부에 @Component를 포함하고 있습니다. @RestController 에도 ..
REST 제약 조건 Client - Server 구조를 따릅니다. stateless 클라이언트가 서버에 요청을 보낼 때 이전 요청의 영향을 받지 않습니다. 그래서 요청을 보낼 때 로그인(인증) 정보를 항상 함께 보내야 합니다. http는 기본적으로 staeless 구조입니다. Cacheable 캐시가 가능한지 명시할 수 있어야 합니다. http는 헤더에 cache-control 에서 캐시 여부를 명시할 수 있습니다. Uniform Interface 리소스를 URI를 통한 인터페이스로 관리합니다. Layered System 인증서버, 캐싱 서버, 로드 밸런서 등 여러 레이어로 된 서버들을 거치지만 클라이언트는 서버 사이의 레이어의 존재 유무를 알지 못합니다. Code on demand 클라이언트는 서버에 ..