'분류 전체보기' 카테고리의 글 목록 (4 Page) — SH's Devlog

분류 전체보기

Android/Kotlin(Java)

[Kotlin] 자주 사용하는 코틀린 함수 정리(String, ArrayList, Queue, Stack)

이번 포스트에서는 코틀린의 String, ArrayList, Queue, Stack의 함수들을 간략하게 알아보겠습니다. String startsWith(str) -> 문자열이 특정 문자열로 시작하는지 Boolean 값 반환 endsWith(str) -> 문자열이 특정 문자열로 끝나는지 Boolean 값 반환 indexOf(str) -> 특정 문자열의 포함된 첫번째 index 반환. 만약, 중복될 경우 가장 처음 index 반환. 일치하는 문자열이 존재하지 않을 경우 -1 반환 equal(str) -> String 문자열 값 비교하여 Boolean 값 반환 none(predicate: (Char) -> Boolean) -> predicate 조건을 만족하는 문자가 하나도 없는지에 대한 Boolean 값을 ..

DevOps/CI CD

[CI/CD] Jenkins - Github 연동하기(Git Personal Access Token)

Git Personal Access Token 발급하기 깃허브에 접속해서 [Profile] - [Settings] - [Developer settings] - [Personal access tokens] 탭에 들어가서 [Generate new token]을 선택해줍니다. token에 대한 설명, 만료 기간과 토큰에 대한 권한 scopes를 설정해줍니다. 저는 repo, repo_hook에 대한 권한을 부여했습니다. 토큰 생성이 완료되었습니다. Jenkins에 Token 등록하기 [Manage Jenkins] -> [Manage Credentials] - [System] - [Global credentials (unrestricted)]에 들어갑니다. 아래의 내용을 입력해줍니다. Kind -> Usern..

DevOps/GIT

[Git] git reflog를 이용하여 git reset --hard로 지워진 커밋 복구하기

Git reflog란? git reflog는 로컬 저장소에서 HEAD의 업데이트를 기록을 출력합니다. 업데이트의 내용은 저장소 디렉토리의 .git/logs/refs/heads/. 혹은 .git/logs/HEAD에 기록되며 git reflog는 이 내용을 출력합니다. git reflog 사용법(명령어) 모든 브랜치의 reflog를 보고싶다면 아래와 같이 호출하면 됩니다. $ git reflog 위의 명령어는 아래의 명령어가 생략된 것입니다. 모든 브랜치의 HEAD 참조 기록을 보여줍니다. $ git reflog show HEAD 만약, 특정 브랜치의 reflog만 보고싶다면 아래와 같이 호출하면 됩니다. $ git reflog [show] "branch name" git reflog가 알려주는 정보는? 커..

Android/Kotlin(Java)

[Kotlin/Java] System.arraycopy로 배열 복사하기

이번에는 System.arraycopy에 대해 정리하겠습니다. System.arraycopy란? System.arraycopy는 메소드는 배열의 값들을 지정한 위치에서 갯수만큼 값을 복사할 수 있습니다. System.arraycopy 메소드 public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); Object src -> 복사하려는 배열 int srcPos -> 복사하려는 시작 인덱스 Object dest -> 복사받으려는 배열 (붙여넣으려는) int destPos -> 복사받으려는 시작 인덱스 (붙여넣으려는) int length -> 복사하려는 갯수 만약, srcPos + leng..

DevOps/GIT

[Git] git commit --amend로 마지막 커밋 수정하기

기능을 만들고 커밋을 했는데 방금 올린 커밋 내용을 들여다보니 무언가 내용이 빠져있거나 잘못 올린 경우가 있습니다. 그럴 경우에 가장 간단한 방법인 git commit --amend로 커밋을 수정해주면 됩니다. 이번에는 마지막 커밋을 수정해주는 git commit --amend에 대해 정리하겠습니다. git commit --amend란? 브랜치의 최신 커밋을 수정하는 가장 간단한 방법입니다. 브랜치의 최신 커밋을 수정하기 위해 git reset으로 커밋을 지우고 수정된 내용을 다시 커밋해주는 방법도 있지만 git commit --amend를 이용하면 reset 작업 없이 간단하게 최신 커밋을 수정할 수 있습니다. 그림으로 봐도 간단합니다. git commit --amend를 사용하면 위의 그림처럼 마지막..

DevOps/CI CD

[CI/CD] Jenkins 설치하기 (Docker)

이번 포스트에서는 Docker를 이용하여 아무런 설정이 되어있지 않은 젠킨스를 설치하는 방법을 정리하겠습니다. 프로덕트 레벨에서 Jenkins로 CI 환경을 구성하실 분들은 이 방법보다는 사용하시는 프로젝트의 빌드 환경을 구성하는 Dockerfile을 작성해서 이용하시는 것을 추천합니다. 테스트 환경 OS: Ubuntu Server 22.04 LTS (HVM) 성능: t2.micro(free tier) 만약, EC2에서 Jenkins를 설치하신다면 외부에서 Jenkins 접속을 위해서 Security group의 인바운드 규칙 설정을 통해 8080 포트를 열어주셔야 합니다. Jenkins 컨테이너 실행 이미지는 jenkins/jenkins 이미지의 latest 버전을 사용하여 컨테이너를 실행해주겠습니다...

Android/Basic

[Android] BuildConfig과 ProductFlavors로 빌드 변형 구성하기 (Configure Build Variants)

이번에는 Gradle 빌드 변형 구성에 대해 알아보겠습니다. 먼저, 현재 빌드정보를 담고있는 buildConfig에 필드를 추가하는 방법 필드의 정보들을 불러오는 방법을 알아보겠습니다. 그리고 BuildType, ProductFlavors마다 BuildConfig을 변형 구성하는 방법과 Source Set을 바꿔서 구성하는 방법을 알아보겠습니다. BuildType이란? buildType은 일반적으로 개발자가 새 모듈을 생성하면 debug와 release 두 가지를 생성합니다. debug는 빌드 유형을 선언하지 않더라도 Android Studio에서는 debuggable true를 default값으로 구성하며 이 속성 덕분에 Android 기기에서 앱을 디버깅할 수 있습니다. release는 출시용 bui..

Flutter/Error and Tips

[Flutter/Error] build()안에 variable 넣으면 안되는 이유 (setState does not update UI)

StatefulWidget의 build()에서 변수 값을 초기화해는 구문을 넣어주니 문제가 발생했다. 문제발생 class DailyCalendar extends StatefulWidget { const DailyCalendar({Key? key, required this.onDayClick, required this.selectedDateTime}) : super(key: key); final Function(DateTime) onDayClick; final DateTime selectedDateTime; // .. @override _DailyCalendarState createState() => _DailyCalendarState(); } class _DailyCalendarState extends ..

DevOps/GIT

[GIT] .gitconifg 설정으로 remote URL을 ssh 혹은 https로 사용하도록 만들기

이번에는 .gitconfig을 이용하여 clone시 remote url을 https 혹은 ssh로 바꾸게 만들어서 편하게 git url을 설정할 수 있는 방법을 알아보겠습니다. 설정할 수 있는 gitconfig 세 가지 입니다. 또한, 각 설정은 .git/config > ~/.gitconfig > /etc/gitconfig 순으로 우선시 됩니다. 1. /etc/gitconfig 파일 시스템의 모든 사용자와 모든 저장소에 적용되는 설정 파일입니다. 이 파일은 시스템 전체 파일에 대한 설정이기 때문에 수정하려면 시스템의 관리자 권한이 필요합니다. $ git config --system https -> ssh로 사용하기 // git fetch or git push url git config --system u..

Android/RxJava

[RxJava] flatMap의 원리 및 Observable 스트림 종료 후 다시 이어가기

flatMap의 원리와 Observable 스트림 종료 후 다시 이어가기 RxJava는 데이터 스트림에 여러 연산자들을 체이닝하여 데이터를 조작할 수 있습니다. 원본 데이터에 체이닝하면서 데이터를 처리하기 위해서 거의 대부분의 경우에 flatMap, concatMap, switchMap을 사용하여 처리할 텐데, 이유는 이 연산자들은 방출되는 각각의 데이터 마다 Observable을 생성하여 데이터를 처리할 수 있게 해주므로 스레드 관리에 효과적이기 때문일 것입니다. 그런데 여기서 생산자에 따라 차이가 생기게 되며, 이 포스트에서는 flatMap을 예로 들어보겠습니다. Single, Maybe, Completable은 1 혹은 0개의 데이터를 발생하고 스트림을 종료합니다. 그래서 이 생산자들은 어짜피 하..

반응형
seunghwaan
'분류 전체보기' 카테고리의 글 목록 (4 Page)