Search

팀멘토링_3팀_1주차

분류
기타
담당멘토
양민욱
멘토링 요청시간
2023/07/20 19:00-20:00
멘토링 시간
2023/07/20 19:00-20:00
멘토링방
멘토링룸1
배정상태
해결완료
비용지급
지급완료
번호
0
신청팀
팀멘토링
소요시간
1
작성자
김승완/임성욱/김민우

질문

질문을 구체적으로 작성해주셔야 명확한 답변을 받으실 수 있습니다! (수업 관련 질문이 없을 경우 취업 관련, 공부 관련된 고민 등도 남겨주세요!)

매주 멘토링 시간.

매주 목요일 오후 7시. 고정으로 가져갈 지.
청소연구소 가사 서비스 플랫폼에서 Android 개발자로 2년정도 근무.
IT 동아리 ‘Mash-Up’ Android Team으로 활동
멘토링을 내가 멘토로서 참여하는것은 처음이라 많이 부족함이 있을 수 있습니다.. ㅎ
이번 멘토링 얻어가고 싶은 것은.
김민우
응용하는 부분이 어렵다.
구글 API 활용.
메소드가 너무 많아서 단어만 보고 유추하는 것이 어려웠다.
Kotlin 문법적으로는 큰 어려움은 없다.
김승완
응용하는 부분도 마찬가지로 어렵다.
Kotlin 람다, 고차함수 부분이 어렵다.
제네릭 등 in, out 부분이 어렵다.
임성욱
전반적인 위젯, 대략적으로 이해를 하고 싶다.
현업의 분위기
김민우
김승완
보통 사진을 다루는 경우 Glide로 다루는 걸 봤는데 사용하는 이유가 뭔가요 ?
요즘 코테보다 과제를 내는 추세로 알고 있는데 과제를 준비하려면 어떤 식으로 공부해야 할까요?
코루틴을 안드로이드에서 언제 쓰면 좋을 지
임성욱

멘토 답변

취업에 정보처리기사 큰 영향이 있는지
정부 관련 사업을 진행하는 기업 or SI
정보처리기사 의미가 있어요. 주변 지인에게 자격증이 있는 사람과 없는 사람의 연봉 차이도 좀 있다.
대기업: Naver, Samsungm, 현대
지원서 자격증란이 있어서 적기는 하지만. 큰 점수에 영향이 미치지 않는다.
네이버 부서마다 채용 기준이 달라서 어떤 부서는 대학교 학점까지….
스타트업: … 성장하지 못한 스타트업, 자본이 얻을려고 정부 사업..
강의 때 배운내용들을 아무것도 없이 코드를 작성하려고하면 막상 아무것도 모르겠어요. 배운 내용들을 응용할 때 도움이 되는 좋은 방법이 있을까요?? (지금은 티스토리에 개념을 정리하고 필요할 때마다 찾아서 쓰고있습니다!)
티스토리 같은 개인 블로그에 정리하는 습관은 저는 너무 좋다고 봅니다. 블로그가 취업할 때 도움을 줄 수도 있다.
사이드 프로젝트 최대한 많이해서 다양한 케이스를 경험해보는게 도움이 될 것 같아요.
보통 사진을 다루는 경우 Glide로 다루는 걸 봤는데 사용하는 이유가 뭔가요 ?
이미지 관련 처리에 대한 좋은 솔루션이 많아요.
이미지 캐시
해상도 대응. 특정 사이즈로 큰 이미지를 줄여야할 때
URL 이미지 로딩. 네트워크를 통해서 이미지를 다운
네트워크가 끊김.
잘못된 URL
Glide 오픈소스로 공개되면서 많은 기간동안 많은 유지보수를 통해 이미지 처리에 대한 좋은 솔루션을 주고 있다. 성능적으로 보장이 되어 있다.
cc. Retroift 네트워크 통신
요즘 코테보다 과제를 내는 추세로 알고 있는데 과제를 준비하려면 어떤 식으로 공부해야 할까요?
토스 채용 과제
카카오 이미지 API를 사용해서 리스트를 구현하고 검색 기능 추가.
리스트 & API 통신
기업마다 기능 구현이 다르긴 해서 정답은 없지만.
방향성.
관심있는 회사의 안드로이드 기술 스택
RecyclerView
ListAdapter
Kotlin
Coroutine
Flow
Glide // 이미지 처리
DI
이 기능을 구현하기 위해서 Glide를 선택하신 이유가 물어봐요.
기능 구현은 대부분 할 수 있지만 기술 선택에 대한 이유가 있는 지원자는 많이 없다.
ListView vs RecyclerView 사용한 기술의 장점과 선택한 이유를 생각하면서 개발을 해서 제출.
본인 코드에 한번 답해보기. 왜 이 코드를 짜게 되었나요.
네이버 Z Tip
일부로 아쉬운 부분을 의도적으로 남겨요.
면접관을 이 부분을 질문
질문을 내가 원하는 대로 이끌어갈 수 있어요. + 미리 좋은 답을 준비해갈 수 있다.
깃허브 특강 때 커밋을 할 때 기능별로 하는게 좋다고 했는데, 개인프로젝트와 팀프로젝트에서의 커밋의 차이점이 있을까요? + 깃허브에서 이슈나 풀리퀘스트와 같은 기능을 어떻게 사용해야하는지 잘 모르겠습니다!
개인과 팀 차이점은 크게 없는 것 같고. 프로젝트를 깃으로 관리할 때 기능별로 커밋을 쪼개면 좋다.
이유
유지보수
어떤 3줄 정도가 수정이 되어야 해요. 이 코드가 문제가 있던 코드였어요.
커밋에 이 3줄만 연관되어 있지 않고, 다른 부분 기능까지 연결되어 있으면. 커밋을 재활용하지 못해요.
그런데 먄약. 기능별로 나눠져 있어서 해당 3줄 부분만 커밋이 되어 있었다면. 해당 커밋만 지울 수도 있고.
재활용
팀 프로젝트를 하면서 동시에 각 개발자가 브랜치 만들어서 각자 서로 브랜치에서 개발을 하는데.
A가 B 브랜치에서 작업중인 기능을 사용해야 해요.
cherry-pick 커밋 그자체를 A 브랜치로 이동할 수 있다. 깃 IDE 자체에서 가능하기 때문에 직접 코드를 입력하지 않고 간단한 git 명령어나 혹은 마우스로 간단히 코드를 가져올 수 있다.
좋은 습관
PR
코드 리뷰를 통해 놓친 부분을 팀원에게 피드백을 받으면서 서로 성장
다른 사람의 코드를 같이 확인해서 추후 해당 부분을 맡게 되었을 때 좀 더 익숙한 상태로 기능 개발이나 수정을 할 수 있도록
단점
시간 소요가 많이 돼요. 개발 속도가 느려져요. 그래서 멋사에서 코드 리뷰 팀 내에서 도입을 하게 된다고 했을 때 룰을 잘 정해야해요.
코드 반영 기간을 1주일
1주일 내에 팀원이 피드백을 안해준다. 그러면 그냥 머지시킨다.
팀원 3명이다.
다른 팀원 2명이 모두 승인을 해줘야 머지 되는 것이 아닌 1명만 승인해도 머지하자.
Coroutine을 언제 써야할 지
Android에서 멀티 쓰레드 환경으로 앱을 구축하잖아요. (UI Thread) Main Thread .. ANR
멀티쓰레드 환경을 구축하기 위해서 비동기 프로그래밍
동기 vs 비동기
비동기
어떤 함수를 호출했을 때 해당 결과를 기다리지 않는다. 호출과 반환이 같은 라인에서 이뤄지지 않는 것.
Thread 만들어서 서로 다른 실행 흐름을 통해 비동기를 만드는데.
RxJava, Coroutine .. Thread를 통해서 비동기 흐름이 되지만 Thread 생성과 관리 처리를 내부에서 해줌.
Coroutine을 사용할 때는 이런 Thread를 돌려서 비동기 흐름을 만들어야 할 때
언제 Thread 같은 비동기 흐름을 써야할까.
네트워크 통신 IO ex) 크롤링, 구글 API 외부 API JSON 통신
Disk IO
핸드폰 내부 파일에 저장하거나 읽어올 때 IO 입출력이기 때문에. ex) File, DataStore
DB ex) Sqlite, Room
비용이 높은 작업
이미지 처리
고해상도 이미지를 압축해야 할 때
10만개 데이터를 클라 내에서 정렬을 하거나 query를 날려야할 때.