Cute Hello Kitty Kaoani

전체 글

Android Programming

[Mobile Programming] 데이터 관리 및 파일처리

데이터 관리 데이터 스토리지 : 안드로이드에서 사용 가능한 데이터 파일 내부 및 외부 저장 메모리 파일 데이터베이스 파일 웹 서버 파일 데이터 저장 위치에 따른 분류 공유 프레퍼런스 : 키-값-쌍으로 사적이고 기초적인 데이터 저장 내부 저장 : 사적인 데이터를 내부 저장소에 저장 외부 저장 : 공유데이터를 공유 외부 저장소에 저장 SQLite 데이터베이스 : 구조화된 데이터를 사적인 데이터베이스에 저장 네트워크 연결 : 데이터를 네트워크 서버에 저장 공유 프레퍼런스 애플리케이션 환경 설정에 많이 사용 기초적인 자료형을 '키-값' 쌍으로 저장/복원할 수 있는 방법 저장 데이터는 사용자 애플리케이션이 종료되어도 저장 getSharedPreferences(name, mode) getPreferences(mod..

Android Programming

[Mobile Programming] 스레드

스레드 배경 음악이 플레이 되면서 동시에 액티비티 화면의 사용자 인터페이스 조작 작업 실행과정에서 서로 영향을 미치지 않고 독립적으로 수행되는 작업에 대해서만 사용 각각의 프로세서가 서로 다른 작업 → 동시 진행 new Thread() { public void run() { // 이 부분에 작업을 코딩 } }.start(); // new로 표현된 객체를 만드는 순간 thread가 실행 일반적 스레드 : 스레드 안에서 필요한 내용을 계산하는 것만 가능 UI 스레드 : 화면의 위젯 내용 변경 가능 runOnUiThread(new Runnable() { public void run() { // 위젯을 변경하는 작업 프로그램 } }; 실습1 SeekBar에서 현재의 진행 상황을 서로 다르게 진행하도록 해주는 작..

Database/데이터베이스

[Database] 데이터 종속성과 정규화

잘못된 설계로 인한 이상(Anomaly) 💡 삭제 이상 : 하나의 데이터를 삭제하면 다른 데이터도 같이 삭제됨 ex. 200번 학생이 'C123' 과목을 등록 취소 → 200번 학생의 학년정보 소실 💡 삽입 이상 : 불필요한 정보를 채워서 삽입해야함 ex. 학번이 600, 이름이 홍길동, 2학년, 전기과인 학생 정보를 삽입 → insert into 수강 values(600, 'NONE', 'N', 2, '홍길동','전기') 💡 갱신 이상 : 하나의 속성값을 변경하려면 여러개의 투플을 갱신해야함 ex. 400번 '송병길'의 학년을 4에서 3으로 변경 → 4개의 투플을 모두 갱신해야함 정규화의 필요성 Anomaly가 발생한 이유 : 상이한 종류의 정보를 하나의 릴레이션으로 표현했기 때문 정규화 : 속성들 간..

Database/SQL

[SQL] Java를 사용한 데이터베이스 응용프로그램의 개발 - JDBC

JDBC JAVA 언어를 사용하여 응용프로그램을 개발하는 경우, 가장 널리 사용되는 표준적인 DBMS 인터페이스 방식 DBMS에 접근하여 데이터를 사용하기 위한 Java API 제공 💡 기능 DBMS 서버에 접속 SQL 문을 전송 전달된 결과를 처리 💡 종류 🎀 Type 1: JDBC-ODBC 브리지와 ODBC 드라이버 사용 🎀 Type 2: Native-APi (클라이언트 라이브러리) + Java JDBC 드라이버 🎀 Type 3: 순수 Java JDBC 드라이버 + 서버 라이브러리 🎀 Type 4: 순수 Java JDBC 드라이버 Type1, Type2는 드라이버 외 부가적인 라이브러리 사용 Type3, Type4는 드라이버 외 부가적인 라이버러리 사용 X Type3은 여러 DBMS에 접근 가능 Ty..

Database/SQL

[SQL] 트리거

트리거 테이블에 이벤트가 발생하면 자동으로 실행되는 작업 데이터베이스 작업을 제한하거나, 작업의 기록log, 작업에 대한 감사audit를 수행하기 위해 사용 트리거의 구성요소 : 이벤트, 조건, 동작 행 트리거 : 테이블 내에 변경되는 행에 대해 각각 실행 문장 트리거 : INSERT UPDATE DELETE 문장 전체에 대해 실행 [트리거 정의] CREATE\[OR REPLACE\] TRIGGER \[BEFORE|AFTER\] \[INSERT|UPDATE|DELETE\] ON \[FOR EACH ROW|FOR EACH STATEMENT\] \[WHEN condition\] BEGIN ... END; [트리거 삭제] DROP TRIGGER [트리거 카탈로그] ALL_TRIGGERS : 데이터베이스 내의 ..

Database/SQL

[SQL] 함수

함수 SP와 동일하게 데이터베이스에 저장되는 서브루틴이며 값을 리턴할 수 있다 함수는 SQL 문장 내에서 사용 가능 [함수 정의] CREATE\[OR REPLACE\] FUNCTION { \[IN|OUT|IN OUT\] (data\_type), \[IN|OUT|IN OUT\] (data\_type), ... } IS|AS ... return data\_type; BEGIN ... return expression; END; [함수 삭제] DROP FUNCTION [함수 카탈로그 정보] ALL_OBJECTS : where 절 조건에 object_type = 'FUNCTION' 사용 USER_PROCEDURES : 사용자가 정의한 프로시저 및 함수 USER_SOURCE : 함수 소스 코드( 컴파일 에러 발생도..

Android Programming

[Android Programming] 카메라 영상 캡처

Camera 클래스를 이용한 영상 캡처 자신만의 카메라 애플리케이션을 작성한다면 Camera 클래스 이용 이미지 캡처 설정 변경, 이미지 프리뷰, 비디오 프레임 추출 가능 Camera 클래스 카메라 객체 준비 Open 메소드 호출 다양한 메소드를 활용해 기본설정, 촬영 진행 카메라 메소드 getCameraInfo : 카메라에 대한 정보 반환 getNumberofCameras(); : 카메라 개수 Release() : 카메라에 대한 락 해제 Open() : 카메라를 사용할 수 있도록 함 카메라를 이용한 이미지 캡처 단계 카메라 하드웨어 감지 : 카메라 존재 검사, 카메라 객체에 대한 참조 얻음 프리뷰 클래스 생성 : SurfaceView를 상속받는 카메라 프리뷰 클래스 생성, SurfaceHolder 인터..

Database/SQL

[SQL] 저장 프로시저(SP)

저장 프로시저(SP, Stored Procedure) 데이터베이스 내에 저장된 서브루틴 영구저장모듈(PSM) 이라고도 함 데이터 뿐만아니라 처리 로직을 DB에 저장할 수 있음을 의미 SQL/PSM 표준이 있으나 DBMS 별로 구문에 차이가 존재 Oracle의 경우 PL/SQL : 표준 SQL 언어 + 변수, 정의, 조건문, 반복문 등의 기능을 가짐 범용 프로그래밍 언어 사용 가능 (Oracle의 경우 Java) 💡 저장프로시저의 장점 하나의 요청으로 일련의 SQL문을 수행 미리 컴파일되어 있는 코드를 실행하므로 처리시간이 줄어듬 응용프로그램 수준의 데이터 무결성 관리를 대신함 응용프로그램을 수정하지 않고서도 프로그램의 동작을 변경 💡 저장프로시저의 단점 DBMS 별로 SP 지원 방식 및 기능에 차이가 있..

Android Programming

[Mobile Programming] 방송 수신자

방송 수신자 애플리케이션에 필요한 이벤트를 필터링하는 컴포넌트 원하는 방송이 나왔을 경우에 그 정보를 가져와 처리하는 작업 public class MyBroadcastReceiver extends BroadcastReceiver { // 방송 수신자 기능을 제공하는 부모 클래스 public void onReceive(Contextcontext, Intentintent) { ... // 방송이 수신되면 이 메소드 호출 → 필요한 코드를 넣음 } } 방송 수신자 등록 방법 매니페스트 파일에서 선언 : 8.0이상 버전 동작 안함 자바 코드에서 동적 등록 : 8.0 이상 버전에서 '방송 수신자' 등록 요구 암시적 방송 수신자의 경우 매니페스트 파일 선언 시 동작 안함 →registerReceiver 메서드 사용..

Android Programming

[Mobile Programming] 서비스

서비스 사용자 인터페이스 없이 백그라운드에서 실행되는 컴포넌트 배경음악 재생 웹 사이트에서 주기적으로 데이터를 읽음 주기적으로 폰의 사용량 계산 애플리케이션의 업데이트를 주기적으로 검사 서비스의 생애주기 시작타입의 서비스 액티비티와 무관하게 서비스 startService()메소드 호출에 의해 시작 연결타입의 서비스 클라이언트-서버 개념 bindService()메서도 호출로 동작 액티비티 종료시 함께 종료되는 성질 서비스의 기초 public class MyService extends Service { @Override public int onStartCommand(Intent intent, int flags, int stratld) { ... // 시작 타입 서비스 } @Override public Ibi..

Android Programming

[Mobile Programming] 멀티미디어 데이터

재생 : MediaPlayer 클래스 사용 녹화 : MediaRecoder 클래스 사용 오디오 재생 암시적 인텐트 사용 음악파일을 스마트폰의 SD카드 폴더에 복사 현실에서는 SD카드를 꽂으면 바로 작동 ( 안드로이드 스튜디오는 AVD를 이용 ) MediaPlayer 클래스 사용 [암시적 인텐트] 실습 mp3 음악 파일을 SD card에 복사 후 재생 [View] - [Tool Windows] - [Device File Explorer] - [sdcard] - [Upload] 하여 sdcard로 음악 파일 복사 외부 저장 장치로 permission을 얻음 콜백함수에서 'sdcard'에 있는 파일들을 재생 // menifast.xml 파일 ... // MainAcrivity.java public class ..

Android Programming

[Mobile Programming] 리소스

리소스 애플리케이션 제작 시 필요한 다양한 종류의 데이터(이미지, 문자열, 레이아웃, 동영상 등) 각종 리소스들은 그 종류에 따라 특별하게 이름 지어진 리소스 폴더에 모여 있음 리소스 종류 drawable 폴더 : 이미지 리소스 layout 폴더 : 레이아웃 values 폴더 : 각종 데이터 값 values/colors.xml : 자주 사용하는 컬러 이름 지정 anim : 트윈 애니메이션을 정의 raw : 시스템에 의하여 압축되지 않는 원본 파일 기본 리소스 : 장치에 상관없이 기본적으로 사용되는 리소스 대체 리소스 : 특정한 장치 구성을 위하여 설계된 리소스 (ex. 어느 나라에 있는지에 따라 그림이 달라지게 하는 것 ) 기본 리소스만 있는 경우, 같은 레이아웃 사용 대체 리소스가 있는 경우, 다른 레..

gangintheremark
갱ㅎr