프로젝트

· 프로젝트
이번에 UMC에서 주관하는 "모여봐요 해커톤"에 참가하게 되었다. 해커톤을 진행하며 많은 트러블을 겪었는데, 그 중 가장 기억에 남는 multipart/form-data 이슈에 대해 소개하고, 또 공부한 내용을 기록하고자 한다. (마지막에 해커톤 후기도 포함되어 있다.) 기존 나의 multipart/form-data 지식 ? 이미지와 같은 큰 사이즈의 요청을 보낼 때 사용하는 하나의 프로토콜? 정도로 알고 있었고, multipart/form-data 전송 방식 및 키워드에 대한 지식은 전혀 없었다. 구글링을 통해 Retrofit2 @Multipart를 활용하여 단순히 이미지를 전송하는 방식만 알고 있었다. (사실 단일 이미지 전송만을 위해서만 주로 사용했고, 사용 빈도가 높지 않아 지식의 필요성을 못 느..
· 프로젝트
필자는 현재 프로젝트에 KtLint를 도입하고 있다. 이번 포스팅에서 KtLint 소개, KtLint 사용하고 있는 방법에 대해 소개하고자 한다. 포스팅하는 이유 프로젝트 초기 설정을 하면서 자연스럽게 린트 검사에 대한 이야기가 나왔고, KtLint를 잘 알지 못한 채 무작정 도입했다. 그 결과 이슈가 발생했다. 이전에도 크게 제대로 적용하지 못한 경험이 있는데, 이러한 경험도 돌이켜보면, 제대로 알고 쓰지 못해서 발생했던 것 같다. 그래서 이번에 KtLint에 대해서 공부해보고, 포스팅하면서 정리하고자 한다. 또한, 가만히 프로젝트 하다가 PR Failed를 당한.. 팀원에게 소개하고자 글을 쓰는 것도 있다. 린트의 장점 사실 이전의 프로젝트는 하나 빼고 KtLint를 적용하지 않았다. 왜냐하면, 계속..
· 프로젝트
이전 포스팅을 이어서, 이번에는 실제로 프로젝트에 Github Action을 적용한 사례를 소개하고자 한다. 현재 진행하고 있는 프로젝트의 협업 도구는 메세지로는 디스코드, 이슈 트래킹 및 칸반의 용도로 지라를 사용하고 있다. 이번 포스팅에서는 Github Action을 통해, 자동으로 Discord로 Github Event를 전송하는 방법과 이슈 생성시 자동으로 Jira Issue를 생성하는 방법을 소개한다. 그전에, 받았던 질문에 답을 기록하고자 한다. 1. Github Webhook에 Discord Webhook을 등록하면, 자동으로 알림 서비스를 받을 수 있는데요? Github Webhook을 사용하지 않고, 따로 Github Action을 사용하는 몇가지 이유가 있다. 첫번째로 메세지 커스텀이 ..
· 프로젝트
이번 새롭게 시작하는 프로젝트에서 CI/CD를 도입하고자 한다. 이번 포스팅에서는 CI/CD에 대해 공부한 내용을 소개하고, Github Action을 통해 Android Project CI/CD를 구축하는 방법에 대해서 소개한다. CI/CD 어플리케이션 개발에서부터 배포까지 자동화를 통해 더 효율적으로, 더 자주 사용자에게 배포하는 방법이다. 자동화를 통해 개발에 집중할 수 있도록 도와주며, 더 빠르고 자주 배포할 수 있게 만들어 주는 것이 특징이다. CI : Continuous integration 버그 수정이나 새로운 기능을 빌드되고 테스트되고 공유되는 레포지토리에 통합하는 방법이다. CI는 다음과 같은 특징을 가지고 있다. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다. 새로운 기능보다 머지 ..
· 프로젝트
WAP에서 진행하는 랜덤 개발 챌린지에 참가하게 되었다! 랜덤 개발 챌린지는 참가자가 주제를 선정하고, 랜덤으로 배정받아 개발하는 챌린지이다. 내가 배정된 주제는 "취업"이였고, 현재 상황에서 산업기능요원을 준비하고 있는 나에게 필요한 어플리케이션을 개발하고 싶었다. 그래서 IT산업기능요원 채용 플랫폼 WANTED를 이은 (kid)NAPPED를 기획하게 되었다. 사실 어느정도 생각은 하고 있던 프로젝트여서, 문제 없이 금방 개발할 수 있을 것 같았다. 그 API를 자세히 보기 전까지,, 병무청에서는 병역일터 채용공고 API를 제공하고 있다. 해당 API는 현재 산업기능요원 및 전문연구요원을 모집하고 있는 회사의 공고를 확일할 수 있는 공공 API이다. 이번 포스팅에서는 해당 공공 API를 사용하면서 발생..
· 프로젝트
이전 포스팅에서는 Proto DataStore 소개와 가지고 있는 장점 그리고 초기 세팅 방법을 알아보았다. 이번에는 Proto DataStore 사용방법, 의존성 주입을 통한 사용에 대해서 소개한다. DataStore 구조 public interface DataStore { public val data: Flow public suspend fun updateData(transform: suspend (t: T) -> T): T } DataStore는 데이터를 읽기위한 프로퍼티 data와 데이터를 쓰기 위한 함수 updateData로 구성되어 있다. data는 Flow의 형태로, updateData는 suspend function의 형태를 띄고 있다. 데이터 읽기 DataStore에 사용할 함수와 프로퍼..
정자이노
'프로젝트' 카테고리의 글 목록