Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

이미정_6주차 과제 #70

Open
leemijung opened this issue May 24, 2021 · 0 comments
Open

이미정_6주차 과제 #70

leemijung opened this issue May 24, 2021 · 0 comments

Comments

@leemijung
Copy link
Contributor

16. 데이터 베이스

  • 데이터를 저장하기 위함

데이터 저장방식

  • RDB (Relational Database)
    -관계형 데이터 베이스
    -엑셀 처럼 생겼다

  • key-Value
    -쌍으로 저장하는 방식 (키, value)

  • RDBMS

    • Relational Database Management system
    • RDB를 관리하기 위한 툴
    • MySQL
    • Oracle
    • PostgreSQL
  • SQL

    • RDBMS를 위한 언어이다.
  • NoSQL : key-value 방식

    • SQL 말고 다르게 해보자!

안드로이드 데이터베이스
-SQLiteDatabase
-SharedPreference
- 목적: 공유된 사용자의 기호를 저장하기 위한 데이터베이스
- key-value 방식
- 하드하게 데이터베이스 시스템을 구축 할 수 없다!

동기/비동기

비동기 -> Async
동기 -> Sync

동기 방식
- 작업을 순서대로 진행한다
- A->B->C->D
- 윗줄 부터 아랫줄로 실행

비동기 방식
- 쓰레드를 만들어서 작업을 따로 처리한다 (쓰레드와 아주 비슷)

                        결과를 받는다

--------------------------------------------------------------->
|
--------------->
작업

안드로이드에서 Async 다루는 방법
- AsyncTask를 상속받는다
-> onPreExcute : 쓰레드 출발하기 전에 할 작압
-> doIntBackground : 쓰레드가 할 작업
-> onPregressUpdate : 작업하는 중간중간에 메인 쓰레드에게 작업 현황을 알려줌
-> onPostExcute : 작업을 다 마친후 메인 쓰레드

Async의 장점
- Main Thread를 기다리게 할 필요가 없다
- 네트워크 작업에 많이 사용된다

Async의 단점
- 재사용이 불가능하다
- 구현된 Activity가 종료될 경우 따라서 종료되지 않는다
- AsyncTask는 하나만 실행될 수 있다.( 복수개 불가능, 병렬처리가 안된다 )

네트워크
-> 통신

DataBase <----> server <----> Client(app, web ...)
글 A
댓글 B

Local DataBase 의 한계

  • 동기화가 어렵다
  • 상호작용이 불가능 하다

==>Local DataBase 의 한계때문에 서버가 필요하다

서버와 통신하는 방법
- 해당 URL 로 요청한다
- 인증 정보를 보낸다
- JCON 형식을 사용하여 data를 보낸다.
- JavaScript Object, Notation -> Javascript 에서 객체를 만들때 사용하는 표현식이다

JSON 형식

  • [] -> List
  • {} -> 객체
    -> "" -> 문자열
    -> "" 없으면 -> 숫자

JSON Response
[
{
"id": 1,
"name": "홍길동",
"age": 20,
"intro": "나는 홍길동이다!"
},
{
"id": 2,
"name": "김아무개",
"age": 10,
"intro": "난 김아무개 입니다 :)"
}
]

JSON Parsing -> JSON을 코틀린이라 자바가 이해할 수 있게 변형하는 과정
Serializable(직렬화) ->

request type status food

  • GET -> 정보 요청 ->201 OK
  • POST -> 정보 추가 요청 ->20번 이상
  • DELETE -> 정보 작세 요청
  • PUT -> 정보 수정 요청

Status code

  • 200번대 -> 처리가 잘 됬다

Library

  • Volly
  • Retrofit

permission (권한)

  • 일반 권한

    • 인터넷 사용 권한,
      -> Manifest에 등록만 하면 바로 사용할 수 있다
  • 위험 권한

    • 카메라, 연락처
      -> 사용자에게 획득을 요청해야 한다

이전 버전 기종 api는 권한을 물어보지 않는다.
권한을 얻는 타이밍

  • 설치하자 마자 필요한 권할을 묻는 경우
  • 특정기능을 사용하려고 할때 묻는 경우 -> 구글 추천 (Best Practice)

실습 화면
hw1
hw2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant