개요MiniMoment 프로젝트를 진행하면서 얕은 범위로 서버까지 개발을 진행하고 있습니다.서버 개발을 진행하니, CI/CD에 관심이 자연스레 관심이 생겨서 Docker를 이용해 자동 배포 파이프라인을 구축해보고 싶었습니다.저는 Jenkins가 아닌 Github Actions를 이용해서 파이프라인을 구축했고, 느낀 점을 적어볼까 합니다. 도커 파일 생성도커 파일은 여러 블로그에서 사용되는 코드를 참고해서 작성했습니다.target 폴더 아래에 mimo-*.jar 이라는 jar 파일을 app.jar이라는 이름의 파일로 복사해 줍니다.FROM openjdk:17-jdkCOPY target/mimo-*.jar app.jarENTRYPOINT [ "java", "-jar","app.jar" ]자료의 부족자동 ..
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리[Android] - 레이어 분리 [멀티 모듈 적용기(1)] 이전 글에서는 멀티 모듈 적용을 위해서 의존성 방향이 정리되지 않은 Domain, Data, Presentation의 계층을 완전하게 분리했습니다.이번 글에서는 분리한 계층들을 하나의 App 모듈에서 여러 개의 모듈로 분리해 보는 과정과 느꼈던 점에 대해서 적어볼까 합니다...
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리 안드로이드 프로젝트의 코드를 보거나, 이력서를 보게 되면 클린 아키텍처 설계 경험, 혹은 멀티 모듈이라는 말이 등장하게 된다.멀티 모듈을 얘기하기 전 클란 아키텍쳐에 대해 먼저 알아야 한다.대부분이 알고 있는 클린 아키텍쳐는 로버트 마틴의 클린 아키텍처일 것이다.클린 아키텍처를 읽지 않아도, 적용해 본 적이 없어도 클린 코드와 더불..
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리 이전 글에서는 비디오 타임라인에 대해 시간대를 제공하고, 동영상 시점을 변화시켰습니다.이번글에서는 갤러리 앱처럼 편집한 구간에 대해 재생할 수 있는 컨트롤러를 적용해 볼 예정입니다. 기능 요구사항클립의 구간을 벗어날 수 없다.재생을 하는 도중 타임라인이 변경될 경우 동영상 재생을 정지한다.동영상이 재생하는 동안 타임라인도 같이 이..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] DataSource 적용 및 분리[Android] - Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현 이전글에선 영상 편집 UI를 구현했다면 이번 글은 타임라인에 대한 이벤트 처리에 대해 포스팅입니다.해당 화면은 삼성 갤러리 동영상 편집화면이고, 기능은 다음과 같습니다. 화면 요구사항1️⃣타임 라인 조절 시 동영상의 시점이 변한다.2️⃣왼쪽과 오른쪽 클립 이동시 해당 시점으로 동영상 시점이 변한다.3️⃣동영상의 재생 범위는 왼쪽 클립과 오른쪽 클립 사이이다.4️⃣타임 라인 클릭 시 영상의 시간대가 나와야 한다.5️⃣재생버튼..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] - Retrofit으로 에러 메시지 처리하기 영상을 다루는 프로젝트를 진행함에 있어서 영상 편집을 한번 시도해보고 싶었습니다.그러기 위해서 Android 기본 어플인 갤러리의 UI를 많이 참고했습니다.시중에 많은 동영상 편집 어플은 있지만, 실제로 블로그에 다룬 사람들은 많이 없었기에, 적절한 UI 컴포넌트를 찾는데 정말 오래 걸린 것 같습니다. UI 컴포넌트 후보는 여러 가지가 있는데요,SeekBar ❌https://developer.android.com/..
개요안드로이드에서 실시간 데이터의 변환을 감지해야 하는 화면이 여럿 있습니다.예를 들어 커뮤니티와 댓글창과 같이 다른 유저의 행동으로 인해 서버의 데이터가 변한 경우, 이를 다른 유저의 화면에도 반영해야 합니다.통상적으로 MVVM 패턴에서 프래그먼트나 액티비티의 뷰모델이 생성될 경우 init 블록이나 view가 생성될 당시 서버의 데이터를 로드해서 UI에 반영하게 되는 로직이 일반적이라고 생각합니다.즉 서버로의 데이터 호출은 딱 한번 일어납니다.하지만 어떻게? 다른 앱은 댓글과 게시글이 달릴 경우 다른 유저가 화면을 이동시키지 않아도(프래그먼트나 뷰모델이 재생산되지 않아도) 실시간으로 반영할 수 있는지 궁금했습니다. 구조를 간단하게 도식화하면 아래와 같습니다.뷰모델이 초기 생산되면 서버로 데이터를 요청합..
짧은 프로젝트를 하면서 TMDB API를 이용해 영화 관련 앱을 만들고 있었습니다.차별화된 기능으로 영화 이름에 대한 트레일러 영상을 제공하고 싶었습니다. TMDB API는 공공 API로 영화에 대한 세부 정보를 알 수 있습니다.https://developer.themoviedb.org/reference/intro/getting-started Getting StartedWelcome to version 3 of The Movie Database (TMDB) API. This is where you will find the definitive list of currently available methods for our movie, tv, actor and image API.developer.themovi..
문제https://www.acmicpc.net/problem/1781 문제 풀이처음 문제를 보고 난이도에 비해 정말 쉽다고 생각했다.회의실 배정과 유사하게 우선순위큐를 사용해서, deadLine이 짧은 순, 가치가 무거운 순으로 정렬한 뒤, 시간에 맞게 빼면 된다고 생각했다. 우선 문제에 대한 테스트케이스는 다음과 같다.해당 작업들을 우리가 목표로 하는 최대의 가치의 순서로 작업할 수 있도록 정렬해줘야 한다.고려해야할 점은 다음과 같다.데드라인이 적은 순서대로 정렬을 한다.가치가 많은 순으로 정렬을 한다.위 조건을 고려해서 정렬을 하면 다음과 같다.그리고 데드라인 별로 작업을 선택해서 답을 구하면 된다.하지만 여기서 함정이 존재한다.내가 풀이했던 방식은 데드라인이 아니라, 그때 풀어야 했던 문제라고 생각..