Suche senden
Hochladen
[NEXT] Nextgram Refactoring
•
16 gefällt mir
•
1,450 views
YoungSu Son
Folgen
android refactoring code naming shared reference stan4j implicit intent
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 113
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Django in Production
Django in Production
Hyun-woo Park
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
정주 김
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
sung yong jung
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
Wonha Ryu
데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력
Youngjae Kim
Modern android
Modern android
Leonardo YongUk Kim
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
Wonha Ryu
Empfohlen
Django in Production
Django in Production
Hyun-woo Park
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
정주 김
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
sung yong jung
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
Wonha Ryu
데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력
Youngjae Kim
Modern android
Modern android
Leonardo YongUk Kim
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
Wonha Ryu
Refactoring#9
Refactoring#9
Seungmin Yu
Code Refactoring
Code Refactoring
Harbinger Systems - HRTech Builder of Choice
Big refactoring #12
Big refactoring #12
Jay Kim
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
Suwon Chae
Refactoring tutorial
Refactoring tutorial
Bingu Shim
Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]
bbongcsu
Refactoring to Design Patterns
Refactoring to Design Patterns
Eric De Carufel
The Introduction to Refactoring
The Introduction to Refactoring
김진태 Jintae Kim
Refactoring vers les design patterns pyxis v2
Refactoring vers les design patterns pyxis v2
Eric De Carufel
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
클라우드 준
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
Daum DNA
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park Jihun
Core.Today
12books
12books
cheongwonseo
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
Jae Sung Park
Doxygen 사용법
Doxygen 사용법
YoungSu Son
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
DK Lee
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
Ubuntu Korea Community
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
NAVER D2
스프링 스터디 1장
스프링 스터디 1장
Seongchan Kang
소프트웨어 마에스트로 10기 - 책을 만나는 순간, 책을찍다
소프트웨어 마에스트로 10기 - 책을 만나는 순간, 책을찍다
HYEONGNAM LEE
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1
mangonamu
Weitere ähnliche Inhalte
Andere mochten auch
Refactoring#9
Refactoring#9
Seungmin Yu
Code Refactoring
Code Refactoring
Harbinger Systems - HRTech Builder of Choice
Big refactoring #12
Big refactoring #12
Jay Kim
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
Suwon Chae
Refactoring tutorial
Refactoring tutorial
Bingu Shim
Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]
bbongcsu
Refactoring to Design Patterns
Refactoring to Design Patterns
Eric De Carufel
The Introduction to Refactoring
The Introduction to Refactoring
김진태 Jintae Kim
Refactoring vers les design patterns pyxis v2
Refactoring vers les design patterns pyxis v2
Eric De Carufel
Andere mochten auch
(9)
Refactoring#9
Refactoring#9
Code Refactoring
Code Refactoring
Big refactoring #12
Big refactoring #12
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
Refactoring tutorial
Refactoring tutorial
Refactoring tutorial 1주차[refactoring 개요]
Refactoring tutorial 1주차[refactoring 개요]
Refactoring to Design Patterns
Refactoring to Design Patterns
The Introduction to Refactoring
The Introduction to Refactoring
Refactoring vers les design patterns pyxis v2
Refactoring vers les design patterns pyxis v2
Ähnlich wie [NEXT] Nextgram Refactoring
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
클라우드 준
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
Daum DNA
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park Jihun
Core.Today
12books
12books
cheongwonseo
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
Jae Sung Park
Doxygen 사용법
Doxygen 사용법
YoungSu Son
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
DK Lee
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
Ubuntu Korea Community
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
NAVER D2
스프링 스터디 1장
스프링 스터디 1장
Seongchan Kang
소프트웨어 마에스트로 10기 - 책을 만나는 순간, 책을찍다
소프트웨어 마에스트로 10기 - 책을 만나는 순간, 책을찍다
HYEONGNAM LEE
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1
mangonamu
180525 mobile visionnet_hanlim_extended
180525 mobile visionnet_hanlim_extended
Jaewook. Kang
GloVe:Global vectors for word representation
GloVe:Global vectors for word representation
keunbong kwak
2020년 2월 22일 개발 이야기 정리
2020년 2월 22일 개발 이야기 정리
Jay Park
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
Sungchul Park
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
Chanwoong Kim
[부스트캠퍼세미나]김재원_presentation-oop
[부스트캠퍼세미나]김재원_presentation-oop
CONNECT FOUNDATION
함수형 프로그래밍
함수형 프로그래밍
QooJuice
Ähnlich wie [NEXT] Nextgram Refactoring
(20)
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park Jihun
12books
12books
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
Doxygen 사용법
Doxygen 사용법
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
스프링 스터디 1장
스프링 스터디 1장
소프트웨어 마에스트로 10기 - 책을 만나는 순간, 책을찍다
소프트웨어 마에스트로 10기 - 책을 만나는 순간, 책을찍다
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
웹 본격적으로 배우기 전 감 잡기 - 1
웹 본격적으로 배우기 전 감 잡기 - 1
180525 mobile visionnet_hanlim_extended
180525 mobile visionnet_hanlim_extended
GloVe:Global vectors for word representation
GloVe:Global vectors for word representation
2020년 2월 22일 개발 이야기 정리
2020년 2월 22일 개발 이야기 정리
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
[부스트캠퍼세미나]김재원_presentation-oop
[부스트캠퍼세미나]김재원_presentation-oop
함수형 프로그래밍
함수형 프로그래밍
Mehr von YoungSu Son
Fault Tolerance 패턴
Fault Tolerance 패턴
YoungSu Son
Clean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance Tuning
YoungSu Son
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
YoungSu Son
Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭)
YoungSu Son
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
YoungSu Son
Singleton 패턴 (김진영 - EVA, 소마에 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기)
YoungSu Son
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
YoungSu Son
생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기)
YoungSu Son
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
YoungSu Son
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
YoungSu Son
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
YoungSu Son
DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법
YoungSu Son
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
YoungSu Son
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
YoungSu Son
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
YoungSu Son
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
YoungSu Son
SW 아키텍처 분석방법
SW 아키텍처 분석방법
YoungSu Son
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
YoungSu Son
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
YoungSu Son
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
YoungSu Son
Mehr von YoungSu Son
(20)
Fault Tolerance 패턴
Fault Tolerance 패턴
Clean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance Tuning
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기)
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기)
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
SW 아키텍처 분석방법
SW 아키텍처 분석방법
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
Kürzlich hochgeladen
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
Tae Young Lee
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Kim Daeun
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
Kim Daeun
Kürzlich hochgeladen
(6)
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
[NEXT] Nextgram Refactoring
1.
DAY
2.
-
3.
7 “Refactoring”
4.
학습목표 ! • 유지보수가
5.
쉽게
6.
리팩토링을
7.
할
8.
수
9.
있습니다.
10.
• STAN4J를
11.
활용할
12.
수
13.
있습니다.
14.
15.
•
16.
SharedPreference를
17.
사용할
18.
수
19.
있습니다.
20.
21.
• 묵시적
22.
인텐트를
23.
사용할
24.
수
25.
있습니다.
26.
이
27.
학습을
28.
마치면…⋯.
29.
상황1. 원하는 책을
찾는 Z군 코드네이밍
30.
서재에 책이 단
한권만 있다면?
31.
한 7권쯤 있어도???
32.
한 20권쯤 있으면….
33.
감당할
34.
수
35.
없을
36.
만큼의
37.
책들은?
38.
어떻게
39.
하면
40.
원하는
41.
책을
42.
쉽게
43.
찾지? 논술.. 컴퓨터.. 수학..
44.
우리에게 필요한건 ?! 책
45.
분류
46.
라벨링
47.
아무리
48.
이런
49.
큰
50.
서재라고
51.
해도!
52.
이곳엔
53.
컴퓨터관련
54.
책이
55.
있어요
56.
이곳엔
57.
수학관련
58.
책이
59.
있어요
60.
이곳엔
61.
논술관련
62.
책이
63.
있다면.
64.
빨리
65.
찾을수
66.
있겠죠?
67.
이거
68.
어때
69.
–
70.
How
71.
About
72.
분석
73.
사례
74.
https://github.com/recomio/howabout-android
75.
76.
두
77.
가지의
78.
스트리밍
79.
서비스를
80.
이용해
81.
음악
82.
재생.
83.
이거
84.
어때
85.
앱
86.
아키텍처
87.
88.
새로운
89.
스트리밍
90.
서비스를
91.
추가하고
92.
싶어요! ActionBarSherlock
93.
(액션바) Universal
94.
Image
95.
Loader
96.
97.
(이미지
98.
로딩)
99.
spring-android
100.
101.
(RESTful)
102.
ViewPagerIndicator
103.
104.
(뷰페이저)
105.
RoboSpice
106.
107.
(비동기
108.
네트워킹)
109.
RoboGuice
110.
(인스턴스
111.
인젝션)
112.
adlibr
113.
114.
(광고)
115.
Flurry
116.
117.
(트래픽
118.
분석)
119.
Jackson
120.
121.
(JSON)
122.
이거
123.
어때
124.
–
125.
오염도
126.
이거
127.
어때
128.
–
129.
Tangled
130.
(Circular
131.
Dependency)
132.
이거
133.
어때
134.
–
135.
Cyclomatic
136.
Complexity
137.
이거
138.
어때
139.
–
140.
Distance
141.
이거
142.
어때
143.
–
144.
Distance
145.
이거
146.
어때
147.
앱
148.
아키텍처 ActionBarSherlock
149.
(액션바) Universal
150.
Image
151.
Loader
152.
153.
(이미지
154.
로딩)
155.
spring-android
156.
157.
(RESTful)
158.
ViewPagerIndicator
159.
160.
(뷰페이저)
161.
RoboSpice
162.
163.
(비동기
164.
네트워킹)
165.
RoboGuice
166.
(인스턴스
167.
인젝션)
168.
adlibr
169.
170.
(광고)
171.
Flurry
172.
173.
(트래픽
174.
분석)
175.
Jackson
176.
177.
(JSON)
178.
새롭게
179.
아키텍처
180.
계층화
181.
적용
182.
이렇게 구조를 바꾸어
봅시다. 24
183.
상황2. 3개월만에 프로젝트를
실행시킨 Y양 코드네이밍
184.
오랜만에
185.
프로젝트를
186.
튜닝할
187.
생각에
188.
신이난
189.
Y양
190.
글들이
191.
적혀있는
192.
홈
193.
화면에
194.
기능을
195.
추가하자!
196.
먼저,
197.
Eclipse를
198.
실행한
199.
후..
200.
현재 있는 클래스들..
201.
현재 있는 클래스들.. Article ArticleViewer ArticleWriter CustomAdapter Dao Img_Downloader Proxy ProxyUP Util MainActivity
202.
글들이
203.
적혀있는
204.
홈
205.
화면 Article ArticleViewer ArticleWriter CustomAdapter Dao Img_Downloader Proxy ProxyUP Util MainActivity 이 화면은 어느
클래스 일까요?
206.
Article ArticleViewer ArticleWriter CustomAdapter Dao Img_Downloader Proxy ProxyUP Util MainActivity 이 화면은 어느
클래스 일까요? 글들이 적혀있는 홈 화면이 MainActivity?? 글들이
207.
적혀있는
208.
홈
209.
화면
210.
이곳에는
211.
212.
“#?!@#$”한
213.
책이
214.
있지.
215.
글들이
216.
적혀있는
217.
홈
218.
화면원하는
219.
수학책은 수학라벨이
220.
붙은
221.
책장에
222.
있고 Main
223.
Activity
224.
글들이
225.
적혀있는
226.
홈
227.
화면은원하는
228.
수학책 수학라벨이
229.
붙은
230.
책장 Main
231.
Activity에
232.
있다?
233.
Main
234.
Activity에
235.
있다? 원하는
236.
수학책 수학라벨이
237.
붙은
238.
책장 HomeView 는 어떨까? 글들이
239.
적혀있는
240.
홈
241.
화면은
242.
우리에게 필요한건 ?! 코드
243.
네이밍 더
244.
나은
245.
유지보수를
246.
위한
247.
더
248.
나은
249.
유지보수를
250.
위해 객체의 이름은 실제
객체가 하는 역할을 추측할 수 있어야 한다. 원하는 기능을 찾기 위해서 헤멜필요는 없으니까.. 팀워크하는 상황에서 상대방은 모르니까..
251.
우리의 프로젝트에 적용해보자!
252.
1. 클래스파일
253.
위에서
254.
마우스
255.
우클릭
256.
2. Refactor
257.
클릭
258.
3. Rename
259.
클릭 Eclipse 에서 Rename하는
방법(1)
260.
Eclipse 에서 Rename하는
방법(2) 1. 위의
261.
창이
262.
뜨면
263.
‘New
264.
name
265.
:’
266.
옆에
267.
원하는
268.
이름으로
269.
수정
270.
Eclipse 에서 Rename하는
방법(3) 이렇게
271.
이름을
272.
바꿀경우
273.
MainActivity를
274.
참조하던
275.
것들의
276.
이름이
277.
모두
278.
279.
280.
HomeView로
281.
바뀌게
282.
되어
283.
프로젝트가
284.
꼬이지
285.
않습니다.
286.
Article대상 목적 Article객체를
287.
다루기
288.
위한
289.
DTO…⋯? 수정
290.
Article대상 목적 Article객체를
291.
다루기
292.
위한
293.
DTO…⋯? 수정 ArticleDTO
294.
대상 목적 글을
295.
쓰는
296.
화면 수정 ArticleWriter
297.
대상 목적 수정 WritingArticleView 글을
298.
쓰는
299.
화면 ArticleWriter
300.
ArticleViewer대상 목적 글
301.
한개를
302.
읽는
303.
화면 수정
304.
대상 목적 수정 ArticleView ArticleViewer 글
305.
한개를
306.
읽는
307.
화면
308.
ProxyUp대상 목적 글을
309.
적을때
310.
작동하는
311.
프록시 수정
312.
대상 목적 수정 ArticleWritingProxy ProxyUp 글을
313.
적을때
314.
작동하는
315.
프록시
316.
CustomAdapter대상 목적 HomeView에서
317.
사용되는
318.
Adapter 수정
319.
대상 목적 수정 HomeViewAdapter CustomAdapter HomeView에서
320.
사용되는
321.
Adapter
322.
코드
323.
네이밍
324.
적용
325.
전
326.
코드
327.
네이밍
328.
적용
329.
후
330.
이름은 좋은데.. 뭔가
구조가 답답한데? 코드
331.
네이밍
332.
적용
333.
후
334.
프로젝트의 의존도 상황 HomeView에
너무 집중되어 있다. 이유는?
335.
중복!
336.
공통된 자원을 HomeView에서
관리하기 때문에
337.
그럼 공통된 자원을
공통된 공간에 저장하자!
338.
Shared
339.
Preferences
340.
341.
Store
342.
private
343.
primitive
344.
data
345.
in
346.
key-value
347.
pairs.
348.
! Internal
349.
Storage
350.
351.
Store
352.
private
353.
data
354.
on
355.
the
356.
device
357.
memory.
358.
! External
359.
Storage
360.
361.
Store
362.
public
363.
data
364.
on
365.
the
366.
shared
367.
external
368.
storage.
369.
! SQLite
370.
Databases
371.
372.
Store
373.
structured
374.
data
375.
in
376.
a
377.
private
378.
database.
379.
! Network
380.
Connection
381.
382.
Store
383.
data
384.
on
385.
the
386.
web
387.
with
388.
your
389.
own
390.
network
391.
server.
392.
안드로이드에서
393.
추천하는
394.
Data
395.
Storage
396.
방법들
397.
Shared
398.
Preferences
399.
400.
Store
401.
private
402.
primitive
403.
data
404.
in
405.
key-value
406.
pairs.
407.
! Internal
408.
Storage
409.
410.
Store
411.
private
412.
data
413.
on
414.
the
415.
device
416.
memory.
417.
! External
418.
Storage
419.
420.
Store
421.
public
422.
data
423.
on
424.
the
425.
shared
426.
external
427.
storage.
428.
! SQLite
429.
Databases
430.
431.
Store
432.
structured
433.
data
434.
in
435.
a
436.
private
437.
database.
438.
! Network
439.
Connection
440.
441.
Store
442.
data
443.
on
444.
the
445.
web
446.
with
447.
your
448.
own
449.
network
450.
server.
451.
안드로이드에서
452.
추천하는
453.
Data
454.
Storage
455.
방법들 우리가 사용할 방법
456.
Shared Preferences공유되는 정보는 공통된
공간에 따로 모아두자
457.
Shared
458.
Preferences는 • primitive
459.
data
460.
타입들을
461.
key-value
462.
기반으로
463.
저장 하거나
464.
얻어올
465.
수
466.
있습니다.
467.
! ! • 내부
468.
File에
469.
저장하기
470.
때문에
471.
어플리케이션이
472.
종료되어도
473.
정보가
474.
저장됩니다. primitive
475.
data:
476.
booleans,
477.
floats,
478.
ints,
479.
longs,
480.
and
481.
strings
482.
Shared
483.
Preferences
484.
사용방법
485.
참고
486.
:
487.
http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String,
488.
int) 1)
489.
Shared
490.
Preferences
491.
객체
492.
가져오기 인자값 반환값 name mode 원하는
493.
preference
494.
파일명.
495.
만약
496.
이
497.
이름의
498.
preference이
499.
존재하지
500.
않다면
501.
파일을
502.
생성한다. 작동
503.
mode를
504.
설정한다.
505.
MODE_PRIVATE가
506.
기본값이다.
507.
preference
508.
값들을
509.
수정하고
510.
가져올
511.
수
512.
있는
513.
SharedPreferences
514.
인스턴스를
515.
반환한다.
516.
2)
517.
Shared
518.
Preferences
519.
Editor
520.
521.
522.
523.
524.
525.
526.
527.
SharedPreferences
528.
pref
529.
=
530.
getSharedPreferences(SharedPref,
531.
MODE_PRIVATE);
532.
533.
534.
535.
536.
537.
538.
539.
540.
SharedPreferences.Editor
541.
editor
542.
=
543.
pref.edit();
544.
545.
546.
547.
548.
549.
550.
551.
552.
editor.putString(“name,
553.
“Android);
554.
555.
556.
557.
558.
559.
560.
561.
562.
editor.commit(); • SharedPreferences.Editor을
563.
반환하는
564.
SharedPreferences
565.
의
566.
메서드 example SharedPreferences
567.
2)
568.
Shared
569.
Preferences
570.
Editor • SharedPreferences
571.
객체의
572.
값을
573.
수정하기
574.
위해서
575.
필요한
576.
클래스
577.
578.
579.
580.
581.
582.
583.
584.
SharedPreferences
585.
pref
586.
=
587.
getSharedPreferences(SharedPref,
588.
MODE_PRIVATE);
589.
590.
591.
592.
593.
594.
595.
596.
597.
SharedPreferences.Editor
598.
editor
599.
=
600.
pref.edit();
601.
602.
603.
604.
605.
606.
607.
608.
609.
editor.putString(“name,
610.
“Android);
611.
612.
613.
614.
615.
616.
617.
618.
619.
editor.commit(); • 값을
620.
수정한
621.
후
622.
변경
623.
내용을
624.
저장하기
625.
위한
626.
Editor
627.
의
628.
메서드 SharedPreferences.Editor example
629.
3)
630.
Shared
631.
Preferences
632.
값
633.
저장하기
634.
635.
636.
637.
638.
639.
640.
641.
SharedPreferences
642.
pref
643.
=
644.
getSharedPreferences(SharedPref,
645.
MODE_PRIVATE);
646.
647.
648.
649.
650.
651.
652.
653.
654.
SharedPreferences.Editor
655.
editor
656.
=
657.
pref.edit();
658.
659.
660.
661.
662.
663.
664.
665.
666.
editor.putString(“name,
667.
“Android);
668.
669.
670.
671.
672.
673.
674.
675.
676.
editor.commit(); • key를
677.
기반으로
678.
value를
679.
저장하는
680.
Editor
681.
의
682.
메서드 SharedPreferences.Editor example
683.
3)
684.
Shared
685.
Preferences
686.
값
687.
저장하기 참고
688.
:
689.
http://developer.android.com/reference/android/content/SharedPreferences.Editor.html Boolean,
690.
Float,
691.
Int,
692.
Long,
693.
String,
694.
StringSet의
695.
자료
696.
저장
697.
가능
698.
4)
699.
Shared
700.
Preferences
701.
값
702.
삭제하기
703.
704.
705.
706.
707.
708.
709.
710.
SharedPreferences
711.
pref
712.
=
713.
getSharedPreferences(SharedPref,
714.
MODE_PRIVATE);
715.
716.
717.
718.
719.
720.
721.
722.
723.
SharedPreferences.Editor
724.
editor
725.
=
726.
pref.edit();
727.
728.
729.
730.
731.
732.
733.
734.
735.
editor.remove(name);
736.
737.
738.
739.
740.
741.
742.
743.
744.
editor.commit(); • key에
745.
해당하는
746.
값을
747.
삭제한다 SharedPreferences.Editor example
748.
5)
749.
Shared
750.
Preferences
751.
값
752.
모두
753.
삭제하기
754.
755.
756.
757.
758.
759.
760.
761.
SharedPreferences
762.
pref
763.
=
764.
getSharedPreferences(SharedPref,
765.
MODE_PRIVATE);
766.
767.
768.
769.
770.
771.
772.
773.
774.
SharedPreferences.Editor
775.
editor
776.
=
777.
pref.edit();
778.
779.
780.
781.
782.
783.
784.
785.
786.
editor.clear();
787.
788.
789.
790.
791.
792.
793.
794.
795.
editor.commit(); SharedPreferences.Editor example • SharedPreferences에
796.
있는
797.
모든
798.
값을
799.
삭제한다
800.
6)
801.
Shared
802.
Preferences
803.
값
804.
가져오기
805.
806.
807.
808.
809.
810.
811.
812.
SharedPreferences
813.
pref
814.
=
815.
getSharedPreferences(SharedPref,
816.
MODE_PRIVATE);
817.
818.
819.
820.
821.
822.
823.
824.
825.
pref.getString(name,
826.
IOS); SharedPreferences example • SharedPreferences에서
827.
key랑
828.
매치되는
829.
값을
830.
가져온다. • defValue는
831.
만약
832.
값이
833.
없을경우
834.
기본으로
835.
사용할
836.
값을
837.
의미
838.
(default
839.
Value)
840.
6)
841.
Shared
842.
Preferences
843.
값
844.
가져오기 참고
845.
:
846.
http://developer.android.com/reference/android/content/SharedPreferences.html boolean,
847.
float,
848.
int,
849.
long,
850.
String,
851.
StringSet의
852.
자료
853.
가져오기
854.
가능
855.
Shared
856.
Preferences를
857.
적용해보자
858.
Proxy
859.
클래스에
860.
있는
861.
HomeView.SERVER_ADDRESS를
862.
저장해봅시다
863.
1. 어플리케이션이
864.
실행되는
865.
시점에
866.
SharedPreferences
867.
를
868.
통해
869.
Server
870.
URL 을
871.
저장한다.
872.
! 2. Proxy
873.
class
874.
에서
875.
getSharedPreferences
876.
를
877.
통해
878.
SharedPreferences를
879.
불 러들인다. 적용순서
880.
1.
881.
어플리케이션이
882.
실행되는
883.
시점에
884.
SharedPreferences
885.
를
886.
통해
887.
Server
888.
URL을
889.
저장시킨다.
890.
1. SharedPreferences
891.
변수를
892.
선언
893.
2. getSharedPreferences()를
894.
통해
895.
SharedPreferences
896.
인스턴스
897.
구하기 HomeView.java
898.
-
899.
onCreate
900.
getResources()
901.
! .getString() • 어플리케이션
902.
패키지의
903.
Resource
904.
값들을
905.
가져온다 • string의
906.
형태로
907.
가져온다 HomeView.java
908.
-
909.
onCreate
910.
getResources()
911.
! .getString() • 어플리케이션
912.
패키지의
913.
Resource
914.
값들을
915.
가져온다 • string의
916.
형태로
917.
가져온다 strings.xml
918.
file HomeView.java
919.
-
920.
onCreate
921.
1. SharedPreferences.edit()을
922.
통해
923.
Editor를
924.
호출
925.
2. Editor.putString()을
926.
이용해
927.
key,
928.
value
929.
저장
930.
3. Editor.commit()을
931.
통해
932.
변경내용
933.
적용 HomeView.java
934.
-
935.
onCreate
936.
1. SharedPreferences.edit()을
937.
통해
938.
Editor를
939.
호출
940.
2. Editor.putString()을
941.
이용해
942.
key,
943.
value
944.
저장
945.
3. Editor.commit()을
946.
통해
947.
변경내용
948.
적용 strings.xml
949.
file HomeView.java
950.
-
951.
onCreate
952.
2.
953.
Proxy
954.
class
955.
에서
956.
getSharedPreferences
957.
를
958.
통해
959.
SharedPreferences를
960.
불러들인다.
961.
Proxy
962.
Class
963.
생성자 Proxy
964.
Class
965.
-
966.
getJSON
967.
메서드
968.
Before After
969.
“View끼리의
970.
의존성을
971.
제거할
972.
필요가
973.
있음”
974.
Custom
975.
Implicit
976.
Intent 암시적 인텐트를 사용해보자
977.
인텐트란? • 다른
978.
컴포넌트들에게
979.
기능을
980.
요청하는
981.
메세지
982.
객체 명시적
983.
인텐트 인텐트 타입 암시적
984.
인텐트 • 명시적으로
985.
하나의
986.
컴포넌트를
987.
선택.
988.
실행할
989.
컴포넌트의
990.
클래스명을
991.
지정함. • 암시적으로
992.
여러
993.
컴포넌트
994.
중에서
995.
지정한
996.
특성을
997.
가진
998.
컴포넌트중
999.
하나를
1000.
선택함.
1001.
명시적
1002.
인텐트가
1003.
다른
1004.
액티비티를
1005.
실행시키는
1006.
방법 • Activity
1007.
A
1008.
에서
1009.
행동을
1010.
서술한
1011.
Intent를
1012.
만들고
1013.
startActivity()를
1014.
통해
1015.
Activity
1016.
B에게
1017.
직접
1018.
전달한다
1019.
암시적
1020.
인텐트가
1021.
다른
1022.
액티비티를
1023.
실행시키는
1024.
방법 • Activity
1025.
A
1026.
에서
1027.
행동을
1028.
서술한
1029.
Intent를
1030.
만들고
1031.
startActivity()를
1032.
통해
1033.
Android
1034.
System에게
1035.
전달한다
1036.
• Android
1037.
System이
1038.
action을
1039.
서술한
1040.
Intent와
1041.
매치되는
1042.
앱을
1043.
찾는다. 암시적
1044.
인텐트가
1045.
다른
1046.
액티비티를
1047.
실행시키는
1048.
방법
1049.
• 매치되는
1050.
앱을
1051.
찾았다면,
1052.
매칭되는
1053.
액티비티의
1054.
onCreate()를
1055.
호출하고
1056.
Intent를
1057.
넘긴다. 암시적
1058.
인텐트가
1059.
다른
1060.
액티비티를
1061.
실행시키는
1062.
방법
1063.
암시적
1064.
인텐트와
1065.
명시적
1066.
인텐트 컴포넌트 컴포넌트 Intent Filter (Action,
Data, Category) 명시적
1067.
인텐트 암시적
1068.
인텐트
1069.
ArticleView를 호출할 때
암시적 인텐트를 적용해보자
1070.
1.
1071.
Android
1072.
Manifest.xml
1073.
수정하기 • action
1074.
1075.
태그의
1076.
android:name
1077.
속성은
1078.
안드로이드
1079.
시스템이
1080.
액티비티를
1081.
찾을
1082.
때
1083.
활용한다.
1084.
• category
1085.
태그의
1086.
android:name
1087.
속성에
1088.
DEFAULT값이
1089.
있어야.
1090.
안드로이드
1091.
시스템이
1092.
해당
1093.
액티비티를
1094.
후보로 서
1095.
확인한다.
1096.
1.
1097.
HomeView.java
1098.
수정하기 • setClass가
1099.
아닌
1100.
setAction임에
1101.
주의
1102.
암시적 인텐트 적용전 암시적
인텐트 적용후
1103.
Database 최신의 데이터만 서버에
요청하기
1104.
“현재는 이미 저장되어있는
데이터도 반복해서 가져옵니다.” 0..n
1105.
의
1106.
게시물
1107.
모두
1108.
현재
1109.
데이터를
1110.
받아올때
1111.
사용하는
1112.
URL [serverUrl]/loadData.php • 저장되어있는
1113.
모든
1114.
Article을
1115.
반환한다.
1116.
[serverUrl]/loadData.php/?articleNumber= 최신데이터만
1117.
갱신하는데
1118.
사용하는
1119.
새로운
1120.
URL • articleNumber
1121.
이후의
1122.
Article을
1123.
반환한다.
1124.
• prefArticleNumberKey
1125.
:
1126.
SharedPreferences
1127.
에서
1128.
사용하는
1129.
KeyString을
1130.
의미 • articleNumber
1131.
:
1132.
SharedPreferences
1133.
에서
1134.
prefArticleNubmerKey
1135.
에
1136.
대응되는
1137.
값을
1138.
의미
1139.
(==
1140.
마지막으로
1141.
가져온
1142.
articleNumber를
1143.
의미) • serverUrl
1144.
:
1145.
serverUrl
1146.
과
1147.
articleNumber
1148.
를
1149.
조합.
1150.
서버에
1151.
요청할
1152.
주소를
1153.
의미 1.
1154.
Proxy.java
1155.
수정하기
1156.
-
1157.
서버에
1158.
최신데이터만
1159.
요청
1160.
2.
1161.
Dao.java
1162.
수정하기
1163.
-
1164.
마지막
1165.
데이터
1166.
정보를
1167.
갱신하기 Dao.java의
1168.
insertJsonData
1169.
메서드
1170.
• prefArticleNumberKey
1171.
:
1172.
SharedPreferences
1173.
에서
1174.
사용하는
1175.
KeyString을
1176.
의미 • “”+
1177.
articleNumber
1178.
:
1179.
int형
1180.
변수
1181.
articleNumber를
1182.
String으로
1183.
변환 2.
1184.
Dao.java
1185.
수정하기
1186.
-
1187.
마지막
1188.
데이터
1189.
정보를
1190.
갱신하기
1191.
우리가
1192.
여태까지
1193.
한것 정리!
1194.
알아보기
1195.
어려웠던
1196.
클래스의
1197.
이름을
1198.
“네이밍”
1199.
을
1200.
통해
1201.
이해하기
1202.
쉽게
1203.
개선했고
1204.
HomeView에
1205.
집중되어
1206.
답답했던
1207.
구조를
1208.
공통된
1209.
자원을
1210.
“Shared
1211.
Preferences”를
1212.
통해
1213.
분리시켰으며
1214.
View간에
1215.
긴밀했던
1216.
의존성을
1217.
“Implicit
1218.
Intent”를
1219.
활용하여
1220.
View간의
1221.
의존성을
1222.
제거했고
1223.
API 서버의 URL을
변경해 “최신의 데이터”만 서버에 요청받도록 수정했습니다.
1224.
수고하셨습니다
Jetzt herunterladen