Java

    [고민] public repository에 application.properties(.yml)의 정보를 어떻게 관리해야할까?

    [고민] public repository에 application.properties(.yml)의 정보를 어떻게 관리해야할까?

    예전에 공모전에 참가하며 설정파일에 모든 주소들이 공개되어 해커가 db를 싹다 암호화해버린 경험이 있었다. 그래서 당시에는 결국 repository를 private로 진행했고 이후 공모전이 끝나고 나서 public으로 전환한 기억이 있다. 사실 이러한 문제를 알고 있었기 때문에 과연 프로젝트를 공개적으로 배포하기 위해서는 무엇을 해야하는지 여러가지 방안을 고민해보게 되었다. 이때 사용가능한 방법을 몇개 생각해보았다. ${key}사용하여 환경변수로 application.properties를 작성한다. 이 방법을 사용하는 경우 로컬에서 매번 실행시 java -jar -Dusername=root target/SendOwl-0.0.1-SNAPSHOT.jar 식으로 실행해주어야 한다. 나는 intellij를 사용..

    JAVA의 스레드를 공부하자

    JAVA의 스레드를 공부하자

    프로세스와 스레드의 차이 프로세스(공장) : 실행중인 프로그램이란 뜻이다. OS로 부터 실행에 필요한 자원을 할당받아 프로세스가 된다. 모든 프로세스는 하나 이상의 스레드를 가진다. 스레드(일꾼) : 프로세스 내부에서 작업을 수행하는 것이다. 호출스택만 있다면 무한정 만들어 낼 수 있다. 멀티 태스킹 : 여러개의 프로세스를 동시에 수행한다. cpu의 코어의 개수와 일치한다. 멀티 스레딩 : 하나의 프로세스에 여러개의 스레드를 수행한다. *스레드를 생성하는 것보다 프로세스를 생성하는데 더 자원(시간,공간)이 필요하다. *멀티 스레드는 하나의 프로세스(할당된 공간)에서 자원을 같이 사용하기 때문에 동기화,교착상태와 같은 문제들이 발생할 수 있다. 쓰레드의 구현과 실행 Thread 클래스 상속 (다른 클래스 ..