본문 바로가기

Dev

(11)
[Jenkins] 사용자 권한 자동 검증 기능 구현 고객 요구사항ITSM에서 Jenkins 배포 실행 시, 사용자 계정을 파라미터로 전달하여 해당 계정의 배포 권한을 자동 검증하는 기능 검토아래 절차로 검토 요청sample 파이프라인 생성해당 job에 Enable project-based-security > 테스트 아이디 추가 > job build, read, cancel 추가파이프라인 실행 시 특정 userId 파라미터로 받아서 해당 아이디가 job build 권한이 있는지 체크하는 로직 구현폴더에 job build 설정하고 하위 잡에서 상속된 권한도 체크할 수 있는지 확인구현 내용jenkins-pipeline-library에 함수(checkBuildPermission) 구현함// Jenkins 파이프라인 라이브러리 내의 함수def checkBuildP..
[Jenkins] 전체 사용자 권한 조회 및 CSV 파일 생성 프로젝트 진행 간 구현 내용을 글로 작성합니다.요구사항Jenkins 전체 사용자의 Folder, Job 별 권한을 조회하고 그 결과를 CSV로 생성Jenkins 전체 사용자 Job 별 권한 조회 -> CSV 파일 생성 파이프라인 구현코드 내용// MngJenkinsUtils.groovy// 젠킨스 관리를 위한 메서드를 구현def getAllUserJobAndFolderPermissions() {    def jenkins = Jenkins.getInstanceOrNull()    if (jenkins == null) {        println "[ERROR] Jenkins 인스턴스를 가져올 수 없습니다."        return [:]    }    def permissions = [:]    Us..
[Spring 핵심 원리] 좋은 객체지향 프로그래밍 객체 지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프 트웨어 개발에 많이 사용된다. 역할과 구현을 분리 역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다. 장점 클라이언트는 대상의 역할(인터페이스)만 알면 된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다 자바 언어 자바..
[Spring 핵심 원리] SOLID - 좋은 객체 지향 설계의 5가지 원칙 좋은 객체 지향 설계의 5가지 원칙(SOLID) SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙 (Open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution principle) ISP: 인터페이스 분리 원칙 (Interface segregation principle) DIP: 의존관계 역전 원칙 (Dependency inversion principle) SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요..
[NAVER SENS API] SMS API를 이용해 인증번호 발송 혼자서 끄적끄적하고 있는 프로젝트의 회원가입 부분에 핸드폰 번호로 인증번호를 발송하는 기능이 있으면 좋을 것 같아서 구현하게 되었다. 문자 발송 API를 찾아보던 중 NAVER SMS API 는 한달에 50건 무료인 것을 확인하여 해당 API를 사용하기로 했다. 진행순서 1. https://www.ncloud.com/ 네이버 클라우드 플랫폼 회원가입 2. 오른쪽 상단 [콘솔] 클릭 3. Products & Services 메뉴의 Simple & Easy Notification Service 클릭 4. Simple & Easy Notification Service -> Project -> 프로젝트 생성하기 서비스 Type - SMS 이름, 설명 입력 후 생성하기 서비스 ID 부분 열쇠모양 누르면 발급받은 ..
Git 목차 1. 일반 형상 관리툴과 차이점 2. 시나리오 분석 3. 기본 명령어 확인 4. conflict 예제 생성/해결/정리 5. 히스토리 보는 법 6. git 고급 기능 3가지 7. merge request 기능 확인 8. issue 기능 확인 ## 1. 일반 형상 관리툴과 차이점 SVN : 중앙 서버에 소스코드와 히스토리를 저장 Git : 소스코드를 여러 개발 PC와 저장소에 분산해서 저장한다. Git은 분산형 관리 시스템이다. 중앙 서버에 장애가 발생해도 로컬 저장소에 커밋을 할 수 있으며, 로컬 저장소들을 이용하여 중앙 저장소의 복원도 가능하다. 장점 SVN보다 속도가 빠르다. 또한, 소스코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능하다. 브랜치를 통해 개발..
[Maven] Goal, Phase, LifeCycle [Maven] Goal, Phase, LifeCycle Maven의 goal, phase, lifecycle 개념에 대해서 정리해보았습니다. goal - Maven에서 행할 수 있는 기능들을 수행하는 명령 $ mvn [goal 명령어] [goal 명령어] phase - 라이프사이클에 속해 있는 각각의 단계들을 phase라고 부릅니다. 특정 순서에 따라 goal이 실행되도록 하는 구조를 가지고 있습니다. Phase는 의존 관계를 가지고 있어 해당 phase를 수행하기 위해서는 이전 phase가 수행된 다음 실행됩니다. ex) mvn install 실행 시 install 전까지의 단계들을 모두 수행한 다음 실행됨. default lifecycle - compile, test, package, install,..
[GitLab] Project visibility 설정 (Private, Public, Internal) 해당 project의 visibility 설정은 해당 프로젝트 > Settings > General > Visibility, project features, permissions > Project visibility 에서 설정한다.