본문 바로가기

분류 전체보기

(216)
Ubuntu Jenkins 설치 Jenkins란? Jenkins는 Java로 빌드된 오픈소스 CI(Continuous Integration) 및 CD(Continuous Delivery) 도구이며, 기본적으로 스프트웨어 프로젝트를 빌드, 테스트 및 배포하기 위해서 사용됩니다. Jenkins 설치 방법 1. apt-get 업데이트 $ apt-get update 2. JDK 설치 사용하고자 하는 버전으로 설치하면 됩니다. # 이미 설치되었나 버전 확인 $ java -version # 없다면 설치 $ sudo apt-get install openjdk-11-jdk 3. Jenkins 저장소 Key 다운로드 $ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-k..
Spring Boot 프로젝트 SSL 인증서로 https 적용하기 1. Let's Encrypt Certbot Docker Image로 SSL 인증서 발급 받기 웹 페이지의 보안을 위해 사용되는 https은 SSL 인증서가 필요합니다. Let's Encrypt는 무료 SSL 발급 인증 기관으로 Certbot Docker Image를 제공하고 있어, 이를 활용하면 SSL 인증서를 발급 받을 수 있습니다. 우선, SSL 인증서 발급을 위해 Docker 설치, 서버 인증에 필요한 도메인 준비가 선행되어야 하며, 관련 내용은 생략하고 발급 방법을 알아보겠습니다. 참고로, Let's Encrypt를 이용하여 SSL 인증서를 발급받는 방법은 3가지입니다. ① Webroot : 외부 웹 사이트에서 해당 호스트 서버에 접근하여 검증. 도메인 호스트 서버에 사용자(개발자)가 설정한 W..
spring boot 시작 시 java 버전이 17로 자동 설정되는 경우 build.gradle의 springframewokr.boot version을 확인해봅시다. version 3.0.0 이상을 사용하면 java 1.8을 사용하지 못하고 17로 자동 변경되며, thymeleaf-extras-springsecurity5 gradle 빌드 시 에러 발생합니다. version 2.x.x로 다시 프로젝트 생성하면 java 1.8 또는 11로 잘 설정되는 것을 확인할 수 있습니다. springframewokr.boot version 3.0.0은 개발 중인 최신 버전이라 java17만 사용되는 듯 합니다. 참고링크 https://stackoverflow.com/questions/72677959/spring-thymeleaf-security-secauthentication-not-wo..
Refresh gradle이 반영되지 않는 경우 Eclipse나 STS에서 Gradle dependency의 내용이 refresh를 해도 반영되지 않을 경우, 프로젝트를 F5키를 눌러 Refresh하고, 다시 Refresh gradle하면 반영됩니다.
업무 지시의 본질. 업무 지시란 내가 시행착오할 시간을 아끼는 과정이다. 물론 업무 지시를 하는 위치라면, 그만큼의 경험이 누적되어 적은 시행착오만으로도 업무를 풀어나갈 수 있다. 그러나, 많은 업무를 세세하게 시행착오를 겪어가며 수행한다면 모두 끝낼 수 없을 뿐더러, 큰 틀에서 업무를 효율적으로 구성해갈 수 없다. 따라서 적절하게 업무 지시가 이루어지는 모습은, 가장 시행착오를 적게 겪을 사람에게 업무가 분배되고 잘 정리되어 수행되는 것이다. 업무 지시를 하는 사람은 4가지를 잘 해야 한다. 1. 해야할 업무의 중요도와 긴급도를 잘 구분하고, 팀원들에게 브리핑한다. 2. 시행착오를 가장 적게할 수 있는 인원을 선별하고, 적절하게 공수를 정리하여 일임한다. 3. 세세한 업무 진행 상황, 시행착오의 내용을 선정 인원에게 모두..
어떤 일부에 집중해야 하는가 우리는 시간과 공간에 제약을 받는다. 모든 지식을 다 알 수 없고, 다 배울 수 없고, 모든 일에 참여할 수 없고, 모든 일에 책임을 가질 수 없다. 동시적이지 않더라도 전체를 컨트롤하는 것은 실제 세상에서 불가능한 것이다. 사실, 멀티태스킹이라는 것도 하나씩 빠른 속도로 돌아가면서 처리하기 때문에 병렬처리되는 것으로 보일 뿐이다. 인터넷 강의를 듣더라도 앞으로 전혀 쓸 일이 없는 기술은 듣지 않는 편이 낫다. 그러니 그 기술이 나와 관련이 있는지 탐색하는 노력은 필수인 셈이다. 일을 할 때도 전체를 모두 동시할 수 없다는 사실을 먼저 인정해야, 중요한 일, 급한 일의 우선순위를 효율적으로 정할 수 있다. 그래야 주어진 업무를 차분하게 해결해 나갈 수 있다. 가장 중요한 것은 어떤 일부가 중요한 것인지 ..
소프트웨어 엔지니어링이란? 소프트웨어 엔지니어링은 단순히 코드를 작성하는 행위에 더하여, 시간의 흐름에 발맞춰 한 조직이 그 코드를 구축하고 유지보수하는 데 이용하는 모든 도구와 프로세스를 포괄합니다. 출처 : [도서] 구글 엔지니어는 이렇게 말한다. 코드몽키, 코더, 스크립터가 되는 일은 알지 못하는 사이 서서히 진행된다. 주어진 업무 범위만 채우려고, 설계 없이 짐작으로 어림잡아 해결하는 행동이 습관이 될 때, 매너리즘에 쉽게 빠지게 된다. 그럼, 산출물은 그 활용 가치보다 유지보수 비용이 더 들어가는 레거시로 전락하게 된다. 내가 어떻게 일을 하고 있는지를 돌아보게 하는 문구였다.
CentOS7에서 mariadb를 Docker-compose로 띄우는 방법 docker-compose.yml 작성 version: '3.7' services: mariadb: container_name: docker-mariadb image: mariadb:10.5.5 init: true user: root restart: always command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --lower_case_table_names=1 - --sql-mode= volumes: - ./init:/docker-entrypoint-initdb.d - ./data:/var/lib/mysql ..