전체 글 76

JENKINS (3) - github Webhook[ngrok] (1)

저번 글에서는 수동 빌드까지 밖에 하지 못했습니다. 이번 시간에는 github과 연결하여 새로운 푸시 사항이 들어오면 자동적으로 빌드를 하는 Trigger 이벤트에 대하여 알아 보겠습니다. 우선 github의 webhook과 연결하기 위해서는 로컬에서 돌아가는 Jenkins 서버가 외부에서 접근이 가능해야 합니다. 따라서 먼저 이것을 가능케 해주는 ngrok를 먼저 설치합시다. 1. ngrok 설치 ngrok 설치를 위해서는 2가지 방법이 있다. 하나는 공식 홈페이지에서 파일 받아 설치하는 것이다. https://ngrok.com/ ngrok - Online in One Line Zero Trust Add SSO, Mutual TLS, IP Policy, and webhook signature verif..

iOS 2023.03.11

JENKINS(2) - 환경변수 설정

JENKINS에서 CocoaPod, SPM, Carthage, Tuist등을 사용해야 할때 필요하다. 사용하기 위해서는 환경변수 설정이 필요한데 다음과 같이 설정할 수 있다. 우선 Dashboard에서 Jenkins 관리 -> 시스템 설정으로 들어간다 그리고 아래로 내리다 보면 다음과 같이 Global properties에서 Enviroment variables에서 환경변수 설정이 가능하다 필자는 일단 TUIST를 사용해야 하는 상황이라 로컬에서 TUIST가 어디에 저장되어 있는지 알아내야 했다. 그래서 위대하신 chatGPT에게 물어봤다. 겁나 똑똑한거 같다. 일단 jenkins가 Local에서 돌아가는 상황이라 내 맥북 참조가 가능한 것 같은데. 로컬로 안돌릴때는 어떻게 해야할지 아직 잘 모르겠다. ..

iOS 2023.03.11

JENKINS[ERROR] no test bundles available ~

에러 본문 xcodebuild: error: Failed to build workspace SwiftAnimation with scheme SwiftAnimation. Reason: There are no test bundles available to test. Recovery suggestion: Ensure that all package dependencies have resolved and that there are no missing test bundles in the active scheme or test plan. TDD를 적용하지 않았거나. 간단한 프로젝트에서 TestTarget을 만들지 않았을때 발생하는 문제이다. 보통 jenkins 도입 과정을 보면 xcode build 명령어가 다음과 ..

iOS 2023.03.11

JENKINS[ERROR] Couldn`t find any revision to build

JENKINS를 처음 도입하고 바로 빌드를 해보면 높은 확률로 빌드를 실패하면 다음 에러 메시지를 보게 됩니다. ERROR: Couldn`t find any revision to build. Verify the repositry and branch configuration for this job. 굉장히 단순 에러이다. 초기 jenkins 설정에서 github의 브랜치가 "*/ master"로 설정이 되어 있는데. 언어 혁명? 순환?의 개념으로 master/slave는 지양하자는 의미로 github의 master 브랜치가 main으로 변경되었기 때문에 생기는 문제이다. 따라서 jenkins 프로젝트 설정에서 "*/main"으로 바꾸면 올바르게 작동한다. 아니면 단순 오탈자가 있는제 확인해 보면 된다.

iOS 2023.03.11

JENKINS (1) - 첫 CI 경험해보기

개발을 좀 하다 보며 연차가 올라가고 이제 어느정도 자기 domain분야의 지식이 갖춰지면 슬슬 다른게 눈에 더 들어오기 마련입니다. 주로 귀차니즘 혹은 프로젝트의 정합성, 안정성 등을 고려하는 의미로 프로젝트를 좀더 JUICY하게 해주는 외부 Tool들을 찾아보게 되죠. 이러한 계기로 저는 첫번째로 찾아보게 된데 FrameWork를 이용한 Modular Architecture 였습니다. 회사를 다니는 동안에는 일에 치여 개념만 알아보다가 저번 글에서 드디어 TUIST를 이용하는 법에 글을 써보았죠. 이러한 고민에 대한 연장선으로 이번에는 CI/CD 중 CI에 대하여 글을 써볼까 합니다. 우선 CI가 뭔지에 대해부터 알아보겠습니다. CI는 Continuous Integration 즉, 지속적인 통합이라는..

iOS 2023.03.11

[프로그래머스] - 디스크컨트롤러[인터벌 스케쥴링][파이썬]

https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 힙과 인터벌 스케쥴링(처음 들어보았다)의 개념을 갖고 푸는 문제라고 한다. 일단 인터벌 스케쥴링은 greedy algorithm 쪽에 속한다. 일단 기본 개념은 간단하다. 위의 문제와 같이 시작점과 끝점이 주어질때 가장 빠르게 일을 종료하는 방법을 찾는 것이다. 흔히 4가지의 케이스로 나누어서 보는데 다음과 같다. (내용은 https://snupi.tistory.com/34 에서 가져왔다.)..

알고리즘 2023.03.10

[프로그래머스] - N으로표현[파이썬]

특히 DP의 경우 점화식이나 수학적인 패턴이 나오는데 이것을 파악하기 위해서 케이스들을 나열하는 습관을 들여볼 필요가 있을거 같다. 생각보다 간단한 문제였는데 풀이를 봐버린게 아쉽다. https://school.programmers.co.kr/learn/courses/30/lessons/42895#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 ..

알고리즘 2023.03.09

[프로그래머스] - 등대 [파이썬]

그냥 감도 못 잡았던 문제.. 모든 경우의 수를 다 탐색해야 해서 DFS나 BFS나 아무튼 완전탐색을 돌려야겠다고 생각했는데 노드와 간선이 최대 10만개까지 되니까 이게 맞나?라고 생각되기도 했었음 https://school.programmers.co.kr/learn/courses/30/lessons/133500 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 인천 앞바다에는 1부터 n까지 서로 다른 번호가 매겨진 등대 n개가 존재합니다. 등대와 등대 사이를 오가는 뱃길이 n-1개 존재하여, 어느 등대에서 출발해도 다른 모든 등대까지 이동할 수 ..

알고리즘 2023.03.07

[프로그래머스] - 순위 [파이썬][플로이드 와셜]

문제를 보고 고민하다가 뭔가 순환이 없기도 하고, 방향을 뚜렷하고, 가중치도 없겠다해서 위상정렬로 풀려고 했지만, 어디서 핀트가 나간건지 끝내 못풀고 결국 플로이드 와셜을 사용해야 한다는 힌트를 얻은 문제 https://school.programmers.co.kr/learn/courses/30/lessons/49191#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수..

알고리즘 2023.03.06

[프로그래머스] - 외벽점검 (파이썬)

완전탐색(순열) https://school.programmers.co.kr/learn/courses/30/lessons/60062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 손상될 수도 있..

알고리즘 2023.02.21