본문 바로가기

앱 개발/Chapter_Curriculum

(22)
내일배움캠프 후기 - 솔직 1) 내일배움캠프 수료최종 프로젝트 발표회와 함께 사전캠프부터 시작된 반년 동안의 내일배움캠프 과정을 뿌듯한 마음으로 수료하였습니다. 2) 내일배움캠프 이전의 삶 전공자가 아니고 코딩에 대해서 아무것도 몰랐습니다. 회사 생활을 할 때 사내 시스템을 다루고 모바일 앱 개발에 참여한 적은 있지만, 이렇게 개발 업무를 전문적으로 학습하게 될지는 생각하지 못했습니다. 3) 내일배움캠프를 선택한 계기 1년 전에 코딩 공부를 처음 시작했고 인프런 강의 등을 수강하면서 부트캠프에 대해서 계속 알아보고 있었습니다. 온라인 과정이 괜찮을까 하는 고민을 하고 있었는데, 내일배움캠프 광고를 통하여 들어간 홈페이지 커리큘럼과 인터넷 검색을 통한 수강 후기를 보고 선택하였습니다. 4) 내일배움캠프의 장점매 프로젝트마다 다양한 ..
[심화 프로젝트] 회고 1) 튜터님 피드백- 즉각적인 프로젝트 내용 피드백 수용 자세가 좋았음- 최종 프로젝트에는 ListAdapter와 Flow를 사용해보기- 피그마 무료 레퍼런스 참고하여 UI를 구성하면 좋을 것2) Keep- 안드로이드에서 기본적으로 제공하는 디자인이 아닌 폰트나 색상 비율 등을 직접 적용하여 기존 프로젝트보다 UI 디자인이 더 발전할 수 있었음- 분업이 매우 잘 이루어지고 이슈 발생시 공유가 잘되어 쉽게 해결했음- 처음 사용해보는 기술도 시도하는 도전 정신3) Problem* 문제- 세심한 예외처리가 조금 부족했었던 것 같음 (ex. 가로 모드, 빌드 버전 등)- Room 사용 관련하여 앱 종료 후 재실행하는 것을 시연 영상에 넣었으면 하는 아쉬움* 원인- 기능 구현에만 집중을 하여 세심한 부분에 대한 ..
[과제] 피드백 (앱 개발 심화) 1) ViewModelProvider는 레거시 코드이므로 by viewModels() 사용하기https://ddangeun.tistory.com/802) _thumbnailUrls는 MutableLiveData(가변 라이브데이터), 언더바가 없는 thumbnailUrlList는 불변 LiveData. (Backing Property) 언더바가 존재하면 읽기/쓰기 가능, 없으면 읽기만 가능.    private val _thumbnailUrls = MutableLiveData>()    val thumbnailUrls: LiveData> = _thumbnailUrls3) RetrofitService interface에서 아래 "Authorization"에 Default 값을 설정 @GET("v2/searc..
[과제] 피드백 (앱 개발 숙련) 1) 리사이클러뷰 아이템 레이아웃 화면 꽉 채우기            android:layout_height="0dp"        app:layout_constraintBottom_toBottomOf="parent"        tools:listitem="@layout/item_layout" /> 2) @Parcelize 사용하기    build.gradle (Module: app)    plugins {        id("kotlin-parcelize") // 추가    }  3) ItemAdapterViewHolder는 inner 아닌 단순 class로 작성.NO_POSITION보다는 item이라는 변수를 nullable하게 만들어서 null이 아닐 때만 클릭 동작이 가능하도록 설정.class ..
[숙련 프로젝트] 회고 - 발표 피드백 시연 영상에는 실제 데이터가 들어가야 함. 선택과 집중을 잘 했음. 디테일 페이지를 액티비티로 한 것이 인상깊었음. - Keep 팀원들 사이의 소통이 정말 좋았다. 프로젝트 기능 구현에 관한 것 외에도 일상적 소통도 많이 하니 결국 프로젝트 수행에도 도움이 되었다. 선택 기능 구현에 대한 아쉬움이 없는 것은 아니었지만, 무리하지 않고 필수 기능과 전체 로직을 팀원 모두가 공부하고 이해하는 시간을 가졌던 것이 성장에 더 도움이 된 것 같다. 그 과정에서 안드로이드 개발 일반에 대하여 두루 이야기할 수 있었다.  - Problem & Solution 앱의 UI에 조금 아쉬움이 남았다. 현업에서 디자이너의 도움을 받는다고 해도 UI를 잘 만드는 능력을 가지고 있으면 나쁠 것은 없다. ViewM..
Today I Learned and Studied 1) MVVM(Model-View-ViewModel) 패턴 - View - Activity , Fragment - xml 와 같이 화면에 보여지는 UI - 텍스트 입력, 버튼 터치 등과 같은 UI Event, Action 받음 - UI 관련 로직 수행 - ViewModel - View에 필요한 데이터를 Model로부터 가져와 가공 및 변환 - Network, DB Data 처리 - UI와 관련된 데이터 처리 - View와 관련된 Business Logic 처리 - View가 Observe하고 있기 때문에 View가 데이터를 갱신할 수 있도록 LiveData로 변경사항 전달 - Anti-pattern : View의 Context를 가지고 있으면 안됨 - View와 ViewModel의 LifeCycle이 다..
Chapter 3-3 (앱 개발 숙련) - 안드로이드 앱 개발 숙련 강의 수강 및 학습 (리사이클러뷰, 프래그먼트) - 앱 개발 숙련 과제 수행 (사과 마켓)
[기초 프로젝트] 회고 - 프로젝트 시작부터 git 관리를 잘해서 PR시 충돌 이슈는 거의 없었다. 모르는 것이나 어려움이 있으면 먼저 물어보고 친절하게 알려주는 분위기를 형성하는 것은 언제나 중요하다. - 프로젝트의 방향성을 설정하는 것도 중요하다. 현업 개발자가 아닌 각 팀원들의 수준에서 어디까지 타협할 수 있느냐가 핵심이다. 각자 맡은 분야에 집중하다 보니 개인 소통에 비해서 팀 전체 회의를 많이 못했던 것 같다. 더 자주 이슈 공유를 했으면 좋았을 것이다. - 안드로이드 스튜디오에 유용한 기능들이 매우 많다. 개발 환경 자체에 더 숙달되어야 개발 속도와 협업 효율이 올라갈 수 있다. 코틀린 문법은 기본이라는 것을 잘 알고 있지만 더 열심히 학습할 필요가 있다. - 함수와 클래스 이전에 프로그래밍의 시작은 변수 선언이다...
Chapter3-2 (앱 개발 기초 프로젝트) 1) 각 액티비티에 공통으로 적용되는 데이터를 관리하며 데이터를 주고 받는 로직이 매우 흥미로웠음. 2) 앱 개발의 핵심은 화면들 사이의 또는 앱과 서버와의 데이터 연동이라고 생각함. data class UserInfo( val id: String, // email 형식으로 입력받도록 regex로 사전에 확인 필요 val pw: String, // 비밀번호 val nickName: String, // 프로필 이미지 아래에 표시할 닉네임 val thumbnail: Uri?, // 프로필에 표시할 이미지, null일 경우 기본 썸네일 표시 val introduction: String, // 프로필에 표시할 소개 문구 ) obje..
[과제] 피드백 (Android 입문) 1) isEmpty보다는 isBlank를 사용하기 (https://lionbae.tistory.com/entry/isEmpty-isBlank) 2) View 객체를 선언하는 부분 관련 코드를 뭉쳐놓기 (코드 이해도와 가독성 향상) // View 객체 초기화 val imageView: ImageView = findViewById(R.id.sparta) val textView: TextView = findViewById(R.id.Text1) val editText1: EditText = findViewById(R.id.editText1) val textView2: TextView = findViewById(R.id.Text2) val editText2: EditText = findViewById(R.id.e..