전체 글

안녕하세요 💻
수료 후기에 앞서 적었던 회고 글을 다시 읽어보았다. 회고 글을 적을 당시 부스트 캠프 멤버십에 붙을 거란 생각을 하지 않았다. 내심.. 붙었으면 좋겠다!! 라고 생각은 했지만 붙을 거란 기대는 하지 않기로 했다. 아래 링크는 챌린지 수료 당시 적었던 글이다. https://jja2han.tistory.com/360 부스트캠프 웹・모바일 8기 챌린지 수료 후기 ❓ 왜 지원했는가? 저는 현재 4학년 1학기를 마치고 여름방학인 상황입니다. 어떻게 하면 더 나은 경쟁력을 가지는 개발자가 될 수 있을까에 대해서 많은 고민을 했습니다. 부스트캠프와 같이 유 jja2han.tistory.com 챌린지가 끝나고 이것저것 하기 보단 개인적인 시간을 보낸것 같다. 챌린지에 떨어질 것 같아서 마음준비도 하고, 챌린지때 배..
Android 프로젝트를 한다면 가장 많이 사용하는 view가 RecyclerView가 아닐까.. 싶을 정도로 굉장히 많이 사용되는거 같습니다 이번 프로젝트를 하면서 어떻게 하면 아이템을 효과적으로 관리할 수 있을까에 대해서 고민해봤고, ListAdapter에 대해서 공부해 봤습니다. 제 목표는 위 사이드바에서 선택한 아이템에 대해서 UI적으로 변화를 주고 싶었습니다.ㅎㅎ ListAdapter RecyclerView에서 사용하는 Adapter는 RecyclerView.adapter 와 조금 더 확장된 개념인 ListAdapter가 있습니다. 간략하게 RecyclerView.adapter를 그냥 Adapter라고 부르겠습니다. Adapter와 ListAdapter의 차이점 아이템이 변화할 때 수동으로 변화..
리사이클러뷰를 이용해서 아이템마다 체크박스를 달아주고 아이템에 대한 체크박스 이벤트를 처리해야 했다. 아이템을 체크하고 스크롤을 내리다가 올라가면 원래 위치에 해당하는 체크박스에 대한 이벤트 처리가 사라진 것을 확인할 수 있었다. 왜??? 일정 스크롤 이상으로 움직이면 리사이클러뷰가 아이템을 재생성하기 때문이었다. 즉 viewHolder가 재활용돼서 생긴 문제라고 판단했다. 이미 Bind를 통해서 아이템을 생성했지만 스크롤을 위아래로 이동하면 아이템을 다시 배치하는 것을 확인할 수 있었다. 실제로는 아이템에 대해서 체크박스가 체크가 되어있지만 아이템을 다시 할당하면서 체크박스가 해제된 모습으로 보인 것이다. 해결 방안 해결하기 위해서 다양한 방법이 있지만, 데이터 클래스의 체크박스 상태를 저장할 변수를 ..
이번 프로젝트를 진행하면서 CustomView를 굉장히 많이 다뤘었고, CustomView에서 텍스트 관련 작업을 맡았는데, CustomView에서 DrawText에 대한 자료도 옛날 자료가 많고, 맨땅에 헤딩하듯이 개발하면서 겪은 경험입니다.. 우리 팀 프로젝트처럼 디테일하게 Text에 대해서 다루지 않을 수도 있지만,, 많은 도움 되었으면 합니다ㅎ DrawText란? Canvasd에서 제공하는 함수입니다. 여러 오버로딩된 함수가 많지만 보편적으로 사용되는 함수는 아래와 같습니다. public void drawText (String text, float x, float y, Paint paint) 함수의 내용은 그리고자 하는 text를 (x, y)를 시작점으로 해서 paint 객체를 이용해서 그리는 것..
앞선 Navigation Component의 글의 보충 내용입니다. https://jja2han.tistory.com/373 [Android] - Navigation Component 기존의 Fragment간의 이동을 구현할 때 supportFragmentManager.beginTransaction(). replace(R.id.frame_layout,GameFragment()).commit() 위와 같은 코드를 통해서 프래그먼트 간의 이동을 구현했습니다. 하지만 Android에서 Na jja2han.tistory.com Navigation Component에 대하여.. 1️⃣ Navigation을 통해서 Activity로 이동할 수 있을까? 정답은 가능하다. 나도 사용해 보기 전까지는 Activity에 ..
앞선 글은 Github Action을 이용해서 CI를 구축해보았다.이번 글은 CD를 구축했고 그에 따른 경험을 적을 예정이다.CD가 뭐야?CD는 Continous Delivery로 지속적인 배포를 뜻한다.즉 이번 글의 목적은 Github Action으로 배포를 자동화를 어떻게 했는지에 대한 글이다.  어플리케이션의 배포 경험이 없어서 정말 많이 헤멨다.Github Action에 대한 정확한 개념이 없어서 많은 글을 찾아봤고, 참고해서 성공할 수 있었다.  CD를 하기전에 버전관리에 대해서 간략하게 설명하겠다.우리가 사용하는 어플리케이션은 지속적인 업데이트로 버그를 수정하고, 기능을 추가한다.이렇듯 어플리케이션의 버전관리는 아주 기본적이라고 할 수 있다. 버전관리의 전략은 다양한 전략이 있지만 통상적으로 ..
이번 프로젝트에서 Github Action이라는것을 알게되고, CI를 적용해보았다. CI CI(Continous Integration) 지속적인 통합 CI를 제대로 구축하면 코드의 새로운 변경사항을 레포지토리에 적용할때마다 테스트,ktlint등 검사를 할 수 있다. 우리팀과 같은 경우 코틀린 컨벤션을 지키는 Ktlint를 CI로 구축해서 특정 브랜치에 push나 PR을 날릴 경우 Github action으로 등록한 workflow에 따라 자동으러 검사를 한다. 우리는 Git flow 전략에 따라서 develop 브랜치에 PR을 날릴때마다 작성한 코드의 코틀린 컨벤션을 검사한다. 위 사진과 같이 error를 감지할 경우 어디서 컨벤션을 지키지 않았는지 알 수 있다. 팀 그라운드룰로 Kotlin Conven..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92335# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 N에 대한 k진수를 구하고 소수 판별에 대한 최적화만 할 수 있다면 쉽게 풀 수 있는 문제이다. 1번 테케에서 틀렸던 사람들은 자료형을 바꾼다면 아마 통과할것이다. 기본적인 k진수 구하기 알고리즘은 k로 나눈 나머지를 저장해서 거꾸로 바꾼다면 아마 그것이 N에 대한 k진수일것이다. 문제에서 요구사항은 N으로 끊어서 그 수가 소수인지 아닌지만 판단하면 된다. 추가적으로 N에 0이 ..
문제 https://www.acmicpc.net/problem/20181 20181번: 꿈틀꿈틀 호석 애벌레 - 효율성 꿈틀꿈틀 호석 애벌레는 N 개의 먹이가 일렬로 나열된 나뭇가지를 오른쪽으로 기어가려고 한다. 시작하는 순간의 호석 애벌레가 0의 위치에 있고 i 번째 먹이는 오른쪽으로 i 초 기어가야 도달할 www.acmicpc.net 문제 풀이 문제를 읽어보니 누적합의 최댓값을 구하는 문제라고 생각을 했다. DP 문제인줄 알았지만, 탐색하는 과정에서 시간이 오래 걸려서 투 포인터 알고리즘을 사용하기로 했다. 투 포인터 알고리즘을 사용했기 때문에 start와 end를 움직이면서 탐색을 진행한다. 기존의 투 포인터 문제들은 누적합을 넘어선 순간 start를 증가시키고, 누적합을 넘지 못한다면 end를 증..
재한
짜이한