ݺߣ

ݺߣShare a Scribd company logo
SoundHub
SoundHub
•프로젝트 소개
1. GitHub처럼 각각 음악 파일을 합쳐, 더 좋은 음악을 만드는 플랫폼
•프로젝트의 목적
1. MVVM 패턴, Data Binding 개념 이해 및 적용
2. Git Flow 개념 이해 및 적용
3. 클라이언트의 UI/UX를 결정을 협업하며 UI/UX 이해
•프로젝트 관리
1. Google Doc로 매주 해야할 일 작성 

(https://docs.google.com/spreadsheets/d/1aOBVDjqBJo5Attgge3mPwlsU10jkrWDfB0WdC5FbMw4/edit#gid=761901345)
2. Hangout를 통한 데일리 스크럽
사용한 아키텍처(MVVM)
•WHY? 아키텍처를 사용한 이유
1. 코드 수정에 따른 스파게티 코드 문제점 직면

•WHY? MVVM을 선택한 이유
1. MVVM은 View와 ViewModel간 N:1 관계

(테스트 수월)
2. MVVM, MVP 경험 필요

사용한 아키텍처(MVVM)
•내가 생각하는 MVVM의 구조 (Android)























사용한 아키텍처(MVVM)
•고민하며 어려웠던 점

ViewModel을 어떻게 설계하느냐에 대한 계속되는 고민
•MVVM의 ViewModel의 설계 근거
1. View와 ViewModel은 N:1의 관계

View가 변하더라도 ViewModel은 재사용이 가능해야한다.

2. OOP의 SRP 원칙

“모든 클래스나 모듈은 하나의 책임만 맡는다”는 원칙

∴ 이를 바탕으로 ViewModel은 View의 기능별로 1개씩 정의해 프로젝트 진행 중
사용한 아키텍처(MVVM)
•프로젝트에 적용 





















사용한 아키텍처(MVVM)
•Android와 클라이언트 통신





















사용한 아키텍처(MVVM)
•DataAPI와 ViewModel간 통신





















사용한 아키텍처(MVVM)
•View와 ViewModel 연결





















사용한 아키텍처(MVVM)
•사용자와 View 연결





















UI/UX - 머티리얼 디자인
•XML 설정







•Android 코드













추가될 기능
•Data Binding 메모리 처리

Activity 생명 주기에 따른 Binding, unBinding 처리
•검색 기능, 페이지네이션 기능

페이지네이션은 기본 기능과 레이아웃 틀 완성 (서버에서 API 준비 중)
•단위 테스트, UI 테스트, Fabric 적용

현재 간단한 단위 테스트, UI 테스트는 예제로 진행 완료

그러나, 네트워크 통신 등 처리를 위한 공부 필요

공부를 하며 추후 Fabric까지 적용 할 예정
•음악 Merge 기능

현재는 Merge를 서버에서 처리

그러나, 근본적으로 Merge를 처리하는 것은 많은 부하를 필요

그래서 이후 클라이언트에서 처리 (음악 Merge은 구현 완료)


More Related Content

What's hot (9)

2014 대전 발표파일
2014 대전 발표파일2014 대전 발표파일
2014 대전 발표파일
JongHo Lee
Summernote 이야기 - 홍영택님(@hackerwins)
Summernote 이야기 - 홍영택님(@hackerwins)Summernote 이야기 - 홍영택님(@hackerwins)
Summernote 이야기 - 홍영택님(@hackerwins)
이상모임
TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법
TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법
TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법
DaYe Jung
[SEF2019]개발자로 성장하는 부스트캠프
[SEF2019]개발자로 성장하는 부스트캠프[SEF2019]개발자로 성장하는 부스트캠프
[SEF2019]개발자로 성장하는 부스트캠프
YoungjikYoon
Seuk sak
Seuk sakSeuk sak
Seuk sak
SeongHyuk Jeong
2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리
Jay Park
웹팩 발표자료
웹팩 발표자료웹팩 발표자료
웹팩 발표자료
Jinui You
2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리
Jay Park
2014 대전 발표파일
2014 대전 발표파일2014 대전 발표파일
2014 대전 발표파일
JongHo Lee
Summernote 이야기 - 홍영택님(@hackerwins)
Summernote 이야기 - 홍영택님(@hackerwins)Summernote 이야기 - 홍영택님(@hackerwins)
Summernote 이야기 - 홍영택님(@hackerwins)
이상모임
TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법
TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법
TEDxSinchon 2014 창작과 공유로 즐거운 세상을 만드는 방법
DaYe Jung
[SEF2019]개발자로 성장하는 부스트캠프
[SEF2019]개발자로 성장하는 부스트캠프[SEF2019]개발자로 성장하는 부스트캠프
[SEF2019]개발자로 성장하는 부스트캠프
YoungjikYoon
2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리
Jay Park
웹팩 발표자료
웹팩 발표자료웹팩 발표자료
웹팩 발표자료
Jinui You
2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리
Jay Park

Similar to SoundHub 프로젝트 발표 자료 (20)

U&i insight2012스터디설명회
U&i insight2012스터디설명회U&i insight2012스터디설명회
U&i insight2012스터디설명회
Amy Young Ah Kim
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
jaeyunjeong1
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
Deo Kim
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
Ian Choi
음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기
김 태우
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
Ian Choi
황규영 포트폴리오
황규영 포트폴리오황규영 포트폴리오
황규영 포트폴리오
Q_0
jjongwuner_cv_page
jjongwuner_cv_pagejjongwuner_cv_page
jjongwuner_cv_page
종원 이
What Is Needed for the Sustainable Success of Open Source Software Projects: ...
What Is Needed for the Sustainable Success of Open Source Software Projects: ...What Is Needed for the Sustainable Success of Open Source Software Projects: ...
What Is Needed for the Sustainable Success of Open Source Software Projects: ...
JaeYoon Song
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
이상모임
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
smartstudy_official
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
Hyun-woo Park
Why use git
Why use gitWhy use git
Why use git
Taeung Song
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
Sunjung Park
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON
[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP
[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP
[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP
Startup Coding
반응형 웹 디자인
반응형 웹 디자인반응형 웹 디자인
반응형 웹 디자인
준극 김
2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기
Jay Park
U&i insight2012스터디설명회
U&i insight2012스터디설명회U&i insight2012스터디설명회
U&i insight2012스터디설명회
Amy Young Ah Kim
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
jaeyunjeong1
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
Deo Kim
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
Ian Choi
음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기
김 태우
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
Ian Choi
황규영 포트폴리오
황규영 포트폴리오황규영 포트폴리오
황규영 포트폴리오
Q_0
What Is Needed for the Sustainable Success of Open Source Software Projects: ...
What Is Needed for the Sustainable Success of Open Source Software Projects: ...What Is Needed for the Sustainable Success of Open Source Software Projects: ...
What Is Needed for the Sustainable Success of Open Source Software Projects: ...
JaeYoon Song
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
이상모임
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
smartstudy_official
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
Hyun-woo Park
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
Sunjung Park
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON
[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP
[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP
[비즈니스 모델 디자인과 린스타트업 활동] 12주차. Build Product_MVP
Startup Coding
반응형 웹 디자인
반응형 웹 디자인반응형 웹 디자인
반응형 웹 디자인
준극 김
2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기
Jay Park

SoundHub 프로젝트 발표 자료

  • 2. SoundHub •프로젝트 소개 1. GitHub처럼 각각 음악 파일을 합쳐, 더 좋은 음악을 만드는 플랫폼 •프로젝트의 목적 1. MVVM 패턴, Data Binding 개념 이해 및 적용 2. Git Flow 개념 이해 및 적용 3. 클라이언트의 UI/UX를 결정을 협업하며 UI/UX 이해 •프로젝트 관리 1. Google Doc로 매주 해야할 일 작성 
 (https://docs.google.com/spreadsheets/d/1aOBVDjqBJo5Attgge3mPwlsU10jkrWDfB0WdC5FbMw4/edit#gid=761901345) 2. Hangout를 통한 데일리 스크럽
  • 3. 사용한 아키텍처(MVVM) •WHY? 아키텍처를 사용한 이유 1. 코드 수정에 따른 스파게티 코드 문제점 직면
 •WHY? MVVM을 선택한 이유 1. MVVM은 View와 ViewModel간 N:1 관계
 (테스트 수월) 2. MVVM, MVP 경험 필요

  • 4. 사용한 아키텍처(MVVM) •내가 생각하는 MVVM의 구조 (Android)
 
 
 
 
 
 
 
 
 
 
 

  • 5. 사용한 아키텍처(MVVM) •고민하며 어려웠던 점
 ViewModel을 어떻게 설계하느냐에 대한 계속되는 고민 •MVVM의 ViewModel의 설계 근거 1. View와 ViewModel은 N:1의 관계
 View가 변하더라도 ViewModel은 재사용이 가능해야한다.
 2. OOP의 SRP 원칙
 “모든 클래스나 모듈은 하나의 책임만 맡는다”는 원칙
 ∴ 이를 바탕으로 ViewModel은 View의 기능별로 1개씩 정의해 프로젝트 진행 중
  • 6. 사용한 아키텍처(MVVM) •프로젝트에 적용 
 
 
 
 
 
 
 
 
 
 

  • 7. 사용한 아키텍처(MVVM) •Android와 클라이언트 통신
 
 
 
 
 
 
 
 
 
 

  • 8. 사용한 아키텍처(MVVM) •DataAPI와 ViewModel간 통신
 
 
 
 
 
 
 
 
 
 

  • 9. 사용한 아키텍처(MVVM) •View와 ViewModel 연결
 
 
 
 
 
 
 
 
 
 

  • 10. 사용한 아키텍처(MVVM) •사용자와 View 연결
 
 
 
 
 
 
 
 
 
 

  • 11. UI/UX - 머티리얼 디자인 •XML 설정
 
 
 
 •Android 코드
 
 
 
 
 
 

  • 12. 추가될 기능 •Data Binding 메모리 처리
 Activity 생명 주기에 따른 Binding, unBinding 처리 •검색 기능, 페이지네이션 기능
 페이지네이션은 기본 기능과 레이아웃 틀 완성 (서버에서 API 준비 중) •단위 테스트, UI 테스트, Fabric 적용
 현재 간단한 단위 테스트, UI 테스트는 예제로 진행 완료
 그러나, 네트워크 통신 등 처리를 위한 공부 필요
 공부를 하며 추후 Fabric까지 적용 할 예정 •음악 Merge 기능
 현재는 Merge를 서버에서 처리
 그러나, 근본적으로 Merge를 처리하는 것은 많은 부하를 필요
 그래서 이후 클라이언트에서 처리 (음악 Merge은 구현 완료)