목록분류 전체보기 (338)
삶 가운데 남긴 기록 AACII.TISTORY.COM
싱글톤 패턴: 하나의 인스턴스만 사용하기 위한 디자인 패턴, 스레드 풀링, 커넥션 풀링 등에서 주로 사용합니다. 인스턴스를 생성할 때 참조 변수를 private static으로 합니다. 생성자를 private로 한다. 이는 외부에서 new로 인스턴스를 생성하지 못하게 합니다.인스턴스를 리턴하는 public static getInstance() 메서드를 제공합니다. 이 메서드 내부에서 인스턴스를 생성할 때 null 체크 후 생성해서 인스턴스를 리턴 해야 합니다.멀티스레드 환경에서는 위 getInstance메서드를 synchronized 해야 안전합니다. 하지만 전반적인 성능 저하 때문에 일반적으로 아래와 같은 패턴으로 코딩합니다.싱글톤패턴1public class InitializationOnDemandHo..
AWS 계정생성https://aws.amazon.com/ko/free 무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어AWS 프리 티어 제품 및 서비스를 통해 AWS 플랫폼, 제품 및 서비스를 무료로 체험해 볼 수 있습니다. AWS 프리 티어 서비스의 100가지 제품 및 서비스를 찾아보세요.aws.amazon.comAWS프리티어로 무료 계정 생성을 합니다. 계정 생성에 필요한 정보들을 입력하고 결제 정보와 연락처 정보를 입력합니다.지원 플랜 선택은 무료로 선택하고 완료합니다.AWS 인스턴스를 생성하기 전에 AWS 계정 보안 설정을 참고해 주세요. AWS 인스턴스 생성1. AWS 콘솔에 로그인합니다. 2. EC2(Elastic Compute Cloud)를 이용하겠습니다. 콘솔에 로그인 버튼을 클릭한 후 ..
젠킨스는 자바 오픈소스 소프트웨어이며 플러그인으로 다른 다양한 시스템들과 연동할 수 있습니다. 주요기능git과 연동웹 인터페이스테스트 보고서 생성빌드 및 테스트 자동화코드 품질 감시인증 권한 관리배포 관리 자동화분산 빌드그루비 스크립트를 사용한 잡 스케줄링 젠킨스 설치젠킨스를 사용하려면 JDK와 메이븐이 필요합니다.여기서는 JDK11 이상을 설치했다고 가정합니다.젠킨스는 도커를 사용하거나 윈도우, 리눅스 용으로 포팅된 바이너리를 이용할 수 있습니다.LTS 버전을 다운로드 받습니다.여기서는 Generic Java package (.war) 을 다운받는다고 가정합니다.https://jenkins.io JenkinsJenkins – an open source automation server which enab..
원격 브랜치 로컬로 가져오기(fetch)1. 원격 저장소(orign)의 모든 원격 브랜치를 로컬로 가져옴git fetch origin 2. 체크아웃할 수 있는 브랜치 목록 확인git branch -a브랜치 목록 중에서 원격 브랜치에는 remotes/origin 접두사가 붙어 있습니다. 로컬 브랜치를 분리 생성 후 원격 브랜치에 적용1. 분리하려는 원본 브랜치를 checkout 합니다.git checkout 분리하려는브랜치이름 2. 로컬 저장소에 분리하려는 새로운 브랜치를 생성합니다.git checkout -b 분리생성할브랜치이름 3. 원격 저장소에 새 브랜치를 push 해 줍니다.git push origin 로컬에분리생성된브랜치이름 원격 브랜치 업데이트1. 원격 저장소의 브랜치들을 갱신git rem..
git 클라이언트 설치https://git-scm.com/ Git git-scm.com여기서는 윈도우를 기준으로 설명합니다. git 로컬 저장소 만들기윈도우의 cmd를 사용해도 되지만 linux 스타일인 위에서 설치한 git bash를 실행시켜 작업하겠습니다.d:\ 드라이브로 이동합니다.cd /dgit이라는 디렉터리를 생성한 뒤 이동합니다.mkdir gitcd git여기에 다시 gitwork 디렉토리를 생성한 뒤 이동합니다.mkdir gitworkcd gitwork깃 저장소를 생성해서 초기화 하는 명령어를 실행합니다.git init그러면. git이라는 디렉터리가 하위에 자동생성되며 이 디렉터리가 git에서 관리하는 저장소라는 역할을 하게 됩니다.디렉터리 경로 앞에 점(.)을 붙이는 것은 리눅스에서 숨김..
gradle 8.5와 인텔리제이를 기준으로 합니다. Taskgradle은 기본적으로 task를 작성하고 실행합니다.task는 실행할 처리들로 이루어진 명령어들을 작성해둔 것입니다.이렇게 정의한 task는 gradle 명령어로 실행할 수 있습니다.tasks.register('enjoy') { doLast { println("================================================"); println("enjoy gradle build system."); println("================================================"); }}build.gradle 파일의 끝에 위 task내용을 등록합시다...
groovygroovy는 jvm용 스크립트언어이며 gradle은 groovy를 사용한 빌드 도구입니다.gradle 소프트웨어 내부에 groovy가 포함되어 있으므로 따로 설치 하지 않아도 됩니다만,여기서는 groovy언어 연습용으로 설치해보도록 합시다. 그루비 다운로드 링크: https://groovy.apache.org/download.html The Apache Groovy programming language - Download* Modules:2.4.X: "ant", "bsf", "console", "docgenerator", "groovydoc", "groovysh", "jmx", "json", "jsr223", "nio", "servlet", "sql", "swing", "test", "tem..
WSL ubuntu 24 기준입니다. NVM(Node Version Manager) 설치터미널을 열고 NVM을 설치하기 위한 스크립트를 다운로드하고 실행합니다.curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash curl 명령어로 스크립트를 다운로드하고 | bash 옵션으로 스크립트를 즉시 실행해서 설치를 진행하는 것입니다. 셸 초기화(설치 적용)설치 스크립트에서 ~/.bashrc 파일에 NVM을 로드하는 설정을 추가하기 때문에, 현재 터미널 세션에 변경사항을 적용하려면 셸을 다시 로드하거나 터미널을 재시작해야 합니다.source ~/.bashrc 제대로 적용되었는지 확인하기 위해 버전 확인을 해봅니다.nvm --v..
ubuntu 24 배포판 기준입니다.git 설치대부분의 WSL 배포판에는 git이 설치되어 있지만, git 이 설치되어 있지 않은 배포판도 많은 관계로 명시적으로 git을 설치하는 방법을 살펴보겠습니다. 1. 우분투 소프트웨어 repository에서 git을 설치합니다.sudo apt-get install git 2. 다 설치되었다면 설치된 버전을 확인해 봅니다.git --version 3. git 설정으로 사용자 이름과 메일 주소를 설정합니다. 여러 개발자가 협업하는 환경이라면 코드 변경자를 식별할 수 있게 해 줍니다.git config --global user.name "사용자이름"git config --global user.email "이메일주소" 개행 문자 차이 문제 윈도우와 리눅스는 개행문자(..
WSL2 네트워크WSL 에서는 윈도우의 물리적 네트워크 인터페이스를 사용하는데 반해 WSL 2는 경량 VM에서 리눅스 커널이 실행됩니다.가상화된 네트워크 어댑터가 있어서 자체 IP 주소가 할당되어 네트워크를 이용할 수 있습니다.윈도우에서 PowerShell을 실행시키고 다음 명령어를 입력하면 네트워크 어댑터 정보를 확인할 수 있습니다.Get-NetAdapter *WSL* | Format-List IP 주소를 확인하려면 PowerShell에서 다음과 같이 입력합니다.Get-NetAdapter *WSL* | Get-NetIPAddress | Format-List IPAddress 우분투 배포판의 IPWSL의 우분투 배포판의 IP는 가상 네트워크에 속해 있으므로 터미널을 열고 ifconfig으로 알아냅니다...
Windows 11 새로 설치 시 로컬(Local) 계정 생성 방법네트워크가 연결되지 않은 환경이거나 기존 윈도우 처럼 로컬 계정으로 운영체제에 로그인 하려면 윈도우 설치시 로컬 계정을 생성해야 합니다.Windows 11은 사용자(User)의 로그인을 Microsoft 계정이 기본 값으로 되어있습니다.네트워크 연결 없이 윈도우 11을 설치하다보면 인터넷 연결 설정 부분에서 막히게 됩니다.이 때 Shfit + F10 키를 눌러서 CMD 창을 실행하고 다음 명령어를 입력해줍니다.oobe\bypassnro그러면 재부팅 되면서 이전에는 없던 "인터넷 연결되어 있지 않음" 이라는 버튼이 생겨있습니다.그리고 나서 "제한된 설치로 계속" 을 선택하면 기존 윈도우10 처럼 로컬 계정을 생성하고 로그인 할 수 있게 됩니..
HTTPS 테스트용 SSL 사설 인증서 Tomcat 9 적용 방법여기서 HTTPS 포트는 8443 을 사용할 것입니다.CentOS7, JDK11, Tomcat9 기준으로 작성되었습니다. HTTPS 통신 Handshake 과정서버측: 서버 정보가 담긴 인증서와 공개키-개인키 쌍을 생성한 뒤 공개키를 인증기관(CA)에 등록합니다. (개인키는 서버측에서 관리하고 공개키는 인증기관에 등록되며 브라우저에 내장 됨)클라이언트 측: 실제 데이터를 암호화할 때 필요한 대칭키 자체를 이 인증기관에 등록된 공개키로 암호화해서 이 암호문을 서버측에 전송합니다.서버측: 클라이언트에서 전송된 암호문을 개인키(1에서 생성했던)를 써서 복호화하여 실제 클라이언트와 통신할 데이터를 암호화할 대칭키(암호키와 복호키가 같아서 대칭키)를..
자바 어플리케이션은 main()스레드 외에 병렬로 처리하는 스레드를 같이 실행할 수 있습니다. 보통은 단순하고 긴 작업이나 I/O작업들을 멀티 스레드로 병렬로 작업하는 것이 효율적입니다. 그러나, 너무 많은 스레드를 실행하면 각 스레드간 context switching 에 시간을 더 소비하게 되어 오히려 효율이 떨어지게 됩니다. java.lang.Thread 클래스로부터 extends 하거나 Runnable 인터페이스로부터 implements 해서 스레드를 생성할 수 있습니다. Runnable 구현 방법import java.awt.Toolkit;public class BeepTask implements Runnable { @Override public void run() { Toolkit toolkit..
WSL은 두 운영체제를 분리하여 네트워크로만 접근할 수 있게 하지 않고 직접 파일을 주고 받을 수 있습니다.윈도우에서 리눅스 파일 시스템을 실행할 수 있게 WSL은 리눅스 파일 시스템에서 수행되는 모든 작업을 NT 커널 작업으로 변환합니다. 가상 하드웨어 디스크(VHD)WSL 2는 모든 리눅스 파일을 ext4 파일 시스템을 사용하는 가상 하드웨어 디스크(VHD)에 저장합니다.VHD 파일은 처음 만들어질 때 최대 256GB 까지 늘어날 수 있도록 만들어지고 사용량에 따라 최대 제한에 도달할 때까지 자동으로 크기가 조절됩니다.한계에 도달하면 디스크 공간 부족 오류가 발생합니다.디스크 공간 부족을 해결하려면 다음 단계를 진행하여 VHD 크기를 확장합니다. 1. 실행중인 wsl의 인스턴스들을 종료wsl --s..
배포판 목록 조회wsl -lwsl --list 기본 배포판 설정위에서 조회한 배포판의 목록을 이용해서 --setdefault 또는 -s 매개변수로 WSL 기본 배포판을 지정할 수 있습니다.wsl --set-default 배포판이름 배포판 백업WSL의 배포판 패키지는 tar 파일로 내보내면 쉽게 백업할 수 있습니다.관리자 권한으로 명령 프롬프트에서 다음과 같이 export 할 수 있습니다.wsl --export 배포판이름 저장될윈도우경로\백업될파일이름.tar 백업된 배포판 복원 백업 파일이 c:\temp\ 경로에 복사되었다고 가정하면 다음과 같이 복원할 수 있습니다.이 c:\temp\ 경로는 배포판의 루트 파일 시스템이 설치됩니다.wsl --import 배포판새이름 c:\temp\ c:\temp\백업된파일..
