본문 바로가기

Programming

(32)
[Linux] 명령어 사전 현재 작업중인 디렉토리의 경로 출력 $ pwd 더보기 Print Working Directory 디렉토리 변경 $ cd 더보기 Change Directory 현재 디렉토리 $ cd . 부모 디렉토리 $ cd .. 홈 디렉토리 $ cd ~ 이전 디렉토리 $ cd - $ ls $ cat $ mkdir $ rmdir $ cp $ mv $ rm $ vi $ ![command]
[Git] 원격 저장소 연결 끊기 (git remote remove) '원격 저장소 연결 끊기'는 매우 기본적인 것인데, 자주 사용하지 않기 때문에 기억에서 잊혀지는 경우가 많아. BUT 많은 개발자들도 이를 공감할 것이며, 에빙하우스의 망각연구를 간증할거야. 더보기 더보기 [TMI] 에빙하우스의 망각연구 https://terms.naver.com/entry.naver?docId=5673897&cid=62841&categoryId=62841 Git으로 열심히 개발 or 스터디를 진행하다가 원격저장소 연결이 잘못됐거나 연결을 끊어야하는 경우엔 다음과 같이 해보자. 원격 저장소 연결 끊기 Terminal에서 연결을 끊고 싶은 로컬 저장소의 폴더로 이동 후 아래 명령어를 입력하면, 로컬 저장소와 원격 저장소의 연결이 해제된다. (로컬 저장소의 Git 정보는 유지) $ git r..
[Git] 계정 확인 및 변경 (git config) Git 계정 확인 및 변경하는 방법을 알아보기에 앞서 git config에 대해서 알아보자. git config란? config란 configuration(설정)을 의미한다. 즉, git config란 Git의 설정을 추가/변경/삭제하는 명령어이다. git config 에는 System / Global / Local 3가지 레벨이 존재하며, 각 레벨의 적용 범위는 아래와 같다. Local : 하나의 저장소에 적용 Global : 한 사용자의 Git 저장소에 적용 System : 모든 사용자와 모든 Git 저장소에 적용 (!)만약 해당 저장소의 설정파일이 중복된다면, Local > Global > System 의 우선순위로 적용된다. Git 계정 확인 config 레벨 별로 계정확인 명령어는 다음과 같다...
[iOS] 이미지 푸시 적용 (Rich Push) - Notification Service Extension 오늘은 소셜커머스, 쇼핑 및 뉴스 등 앱들의 푸시 메세지에서 흔히 볼 수 있는 이미지 푸시(aka. Rich Push)에 대해서 알아보자. WWDC2016에서 iOS 10과 함께 소개된 케케묵은 기술을 왜 이제와서 알아보냐고? 그야 이제와서 이미지 푸시 적용을 하려고 하는 여러분을 위해서라는걸 알랑가 몰라.. 내가 설명하는 내용만 잘 따라오면 삽질하는 시간을 90%이상 줄일 수 있다는 것만 명심! 자자 거두절미하고 바로 들어갑시다. 샘플 프로젝트 IronK89/ios-objc-richpush This is sample project for richpush (iOS_OjbC). Contribute to IronK89/ios-objc-richpush development by creating an accou..
[Android] 해상도에 따른 비트맵 리사이즈 문제1어플을 처음 시작할 때 뜨는 로고 이미지를 배치하는데에 있어서 문제가 있었다. 다양한 해상도의 기기에서 뭉개지거나 깨지지 않은 이미지를 출력해 주는 것이 목표였는데 기본 XML기반의 레이아웃 설계로는 한계가 있었다. 1) 해결이러한 문제를 해결하기 위해 결국 프로그래밍으로 레이아웃을 구성하기로 하였다.프로그램이 시작할 시 기기의 해상도를 구해 이미지를 리사이즈 하여 출력한다. 2) 코드 Bitmap logo = null; int width = this.getResources().getDisplayMetrics().widthPixels; // 기기의 가로 크기 Bitmap temp = BitmapFactory.decodeResource(getResources(), R.drawable.back); in..
[안드로이드 Android] 사진 업로드 이번에 알아볼 내용은 앱을 통해서 사진을 업로는 하는 것이다. 필자는 앱으로 WCF를 호출하여 서버의 특정폴더에 이미지를 저장하고 이미지 파일명을 DB에 저장하는 방식을 썻다. 이를 간단한 구조도로 표현하면 다음과 같다. 그러면 Android의 코드를 살펴보도록 하겠다. Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.screenshot); //This code is to convert Image to String.ByteArrayOutputStream bao = new ByteArrayOutputStream();photo.compress(Bitmap.CompressFormat.JPEG, 90, bao);byte [] ba =..
[DataBase] 정규화 (Normalization) 정규화의 개념- 가장 작은 논리적 단위로 Table을 분리하고 중복을 제거하여 이상을 제거/ 공간의 효율적 활용하는 것. 정규화 과정아래의 테이블을 가지고 정규화 과정을 살펴보자. 테이블의 기본키(Primary Key)는 제품 번호 이다. 제 1 정규형- 반복된 속성 제거, 새로운 테이블 추가 (중복제거)- 테이블에 속한 모든 속성의 도메일이 원자값(Atomic Value)만으로 되어 있는 정규형이다. 즉, 테이블의 모든 속성 값이 원자 값으로만 되어 있는 정규형이다. ex)위의 고객번호, 주소, 주문수량 주문번호 -> 고객번호, 주소 고객번호 -> 주소부분 함수적 종속 문제 발생. 제 2정규형테이블이 제1정규형이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다. 다..
[DataBase] 함수적 종속 (Functional Dependency) 함수적 종속의 개념- 어떤 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라 하자. 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하고, X -> Y로 표기한다. - 함수적 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약조건이 되는 동시에 데이터 베이스에서 항상 유지되어야 할 조건이다. 다음의 테이블에서 함수적 종속을 살펴보자학번이름학년학과400이순신4컴공422유관순4물리과301강감찬3수학과320홍길동3체육과205장보고2컴공과240윤봉길2수학과104김구1체육과 테이블에서 이름, 학년, 학과는 각각 학번 속성에 함수적 종속이다. 이 것을 기호로 표시하면 다음과 같다...
[DataBase] 이상 (Anomaly) 이상이란 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복(Redundancy)으로 인해 테이블 조작 시 문제가 발생하는 현상을 의미 한다. 이상의 종류- 삽입이상 (Insertion Anomaly) : 삽입 이상은 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상이다. ex) 테이블에서 학번이 '600'인 학생의 학년이 '2'라는 사실만을 삽입하고자 하는 경우, 삽입 이상이 발생 테이블의 기본키는 학번과 과목번호이기 때문에 삽입할 때 반드시 과목번호가 있어야 한다. 즉, 데이터가 발생되는 시점에는 과목번호가 필요 없지만 테이블에 기록하고자 할 때 과목번호가 없어 등록할 수 없는 경우가 발생한다는 것이다. - 삭제이상 (Deleti..
[DataBase] 스토어드 프로시저 (Stored Procedure) 스토어드 프로시저의 개념- 스토어드 프로시저란 java에서 보면 일종의 내장 함수라고 보면 된다.ex) exp()과 같은 것을 말함. - 특정한 작업을 수행하는 SQL문을 논리적으로 그룹화한 것을 말한다. 프로시저는 그 자체 만으로도 완전한 프로그램의 축소판이라고 할 수 있다. - 연속된 SQL문들을 하나로 모아 SQL 서버에 미리 컴파일해서 저장해 놓은 것을 말하는데 클라이언트로부터 호출문을 통해 복잡한 SQL의 일괄 작업을 수행하는 데 적합하다. 스토어드 프로시저의 구성- 선언부 : 타입, 커서, 상수, 변수, 내포된 서브 프로그램을 선언하는 부분 - 실행부 : 코드 실행을 제어하고 데이터를 조작하는 문장들을 작성하는 부분 - 예외 처리부 : 스토어드 프로시저 실행중에 발생하는 예외를 처리하는 부분 ..
[안드로이드 Android] 어플리케이션 로딩화면(Splash) 구현하기 이번 포시팅은 앱의 로딩 화면을 몇초 동안 띄우고 그 후에 앱을 사용할 수 있는 것이다. 예를 들면 아래와 같이 국민앱인 카카오톡과 같이 카톡을 처음 실행하면 아래 이미지가 로딩된 후 카톡을 사용할 수 있다. 로딩의 장점이라면 로딩하는 시간동안 앱의 기본 설정을 셋팅 할 수 있고, 홍보(?) 효과도 있는것 같다. 자 이제 소스를 보자 레이아웃은 다른 activity 레이아웃과 같이 로딩하고 싶은 이미지로된 레이아웃을 하나 만든다. ?1234567891011121314151617181920212223242526import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;im..
[안드로이드 Android] Tab (TabHost) 탭을 통해 여러 화면(Activity)을 한 화면에서 보여지도록 하는 컨테이너 입니다. 구조는 다음과 같습니다 TabHost : 컨테이너LinearLayout : widget 과, frameLayout 를 구성하는 LayoutTabWidget : tab 선택버튼FrameLayout : tab 버튼을 선택했을때 나타나는 화면을 나타낼 Layout 1) 탭 호스트 얻어오기- findVIewById를 통해 탭호스트를 얻어옵니다.2) 하나의 탭을 구성하는 객체인 TabSpec객체 생성하기- 탭호스트의 newTabSpec 메소드를 이용하여 지정합니다3) 탭에 여러가지 정보 셋팅- 탭의 문자열 : setIndicator()- 탭에 View 연결 : setContent();4) 탭호스트에 탭스펙을 추가하기. ※ 주의..
[안드로이드 Android] f3 보이게 하는 방법(android.jar source 보이는 방법) android.jar source 보이는 방법 아래의 사이트에 들어가서 맞는 소스를 다운로드해서 http://en.newinstance.it/2010/05/18/androidjar-sources/ 나는 android-sdk-2.1_r1-src.jar 파일을 다운했다 압축풀어서 C:\androidsdk\platforms\android-7 에 옮겨 놓고 이클립스에서 프로젝트 properties-> Java BuildPath에서 오른쪽 탭 Libraries를 선택해서 Source attachment:android_sdk를 선택해서 Add Class Folder(?잘기억이 안나지만 여튼 .. 왼쪽에 어떤 버튼) 버튼눌러서 앞축푼 해당 폴더를 지정해주면 끝난다 그럼 요렇게 보인다는 말씀!!
내장 SQL 내장 SQL(Embedded SQL, 삽입 SQL) 개념- 내장 SQL은 데이터 베이스 내의 데이터를 정의하거나 접근하는 SQL문을 응용프로그램 내에 내포하여 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램 언어에 삽입한 SQL이다. 내장 SQL 특징- 응용 프로그램에 삽입되어 사용되는 SQL이다.- 내장 SQL 실행문은 호스트 실행문이 나타나는 곳이면 어디든 사용이 가능하다.- 일반 SQL문은 실행 결과로 여러 개의 튜플을 반환하는 반면, 내장 SQL문은 실행 결과가 여러개의 튜플이어도 맨 처음의 튜플 하나만을 반환한다.- 내장 SQL문에 의해 반환되는 튜플은 일반 변수를 사용하여 저장할 수 잇다.- 호스트 프로그램 변수와 데이터베이스 필드의 이름은 같아도 된다.- SQL 문장의 식별자로서 ‘EX..
SQL - DCL DCL의 개념 - 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어이다. - 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용한다 - DCL의 유형COMMIT : DB 조작 작업을 영구적으로 반영하여 완료ROLLBACK : DB 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구한다.GRANT : DB 사용자에게 사용 권한을 부여REVOKE : DB 사용자의 사용 권한을 취소 COMMIT- 트랜잭션이 성공적으로 끝나면 DB가 새로운 일관성(Consis-tency)상태를 가지기 위해 수행된 모든 변경을 DB에 반영하여 완료하여야한다. ROLLBACK- 트랜잭션의 일부를 성공적으로 끝내지 못하면 DB가 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에..
SQL - DML [DML]이란 무엇인가?- DML이란 SQL 문장 종류의 하나로서 Data Manipulation Language의 약자로 데이터 조작언어란 의미.- 모든 DML문장은 트랜젝션을 유발시킨다. [SQL 문장의 종류] [오라클 데이터 베이스 에서의 DML 정의]* DML문은다음과같은상황에실행된다.-테이블에새로운행을입력할경우(INSERT)-테이블에존재하는행의내용을변경할경우(UPDATE)-테이블에존재하는행을삭제할경우(DELETE) [DML 문법 정리]1. INSERT 문 ① INSERT 기본 문법 INSERT INTO table [(column [, column...])]VALUES (value [, value...]); SELECT문을 사용하여 다른 테이블의 검색 결과를 삽입할 수 있다. table : 테이블..
SQL - JOIN JOIN의 개념 - JOIN은 2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환한다. - JOIN은 크게 INNER JOIN과 OUTER JOIN으로 구분된다. - JOIN은 읿나적으로 FROM절에 기술하지만 릴레이션이 사용되는 어느 곳에서나 사용할 수 있다. INNER JOININNER JOIN 은 일반적으로 EQUI JOIN과 NON-EQUI JOIN으로 구분된다.EQUI JOIN- JOIN 대상 테이블에서 공통 속성을 기준으로 '='(Equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN방법이다. - JOIN 조건이 '='일 때 동일한 속성이 두 번 나타나게 되는데, 이 중 중복된 속성을 제거하여 같은 속성을 한 번만 표기하는 방법을 NATUR..
sql - select 문 SELECT문은 자료 기본검색시 사용되는 SQL 문이다. SELECT문 작성법 SELECT [DISTINCT] * or 열 이름 or 열 이름 as [ ALIAS] FROM 테이블 WHERE 조건 ORDER BY 열 expr [ASC 나 DESC] ; - 예약어를 이용하여 작성된 내용은 SQL 버퍼에 저장된다.- 산술식을 포함하여 검색 가능하다. ex) 열이름으로 검색시 열 이름 순서로 나타낸다. 열의 ALIAS 사용법 - 합성 연산자: (||) 로 열과 문자를 연결한다.ex) SELECT name || ',' || title as "staff" FROM staff ; - 중복행: distinct 를 쓰면 모든 열의 조합에 중복된 행을 제거한다.ex) SELECT distinct id, title FRO..
SQL - DDL(Data Define Language) DDL의 개념- DDL은 스키마, 도메인, 테이블 , 뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용하는 언어이다. - DDL로 정의된 내용은 메타데이터가 되며, 시스템 카탈로그에 저장한다. * 메타데이터 : 데이터 관리를 위한, 데이터에 대한 데이터를 의미함. 예를 들어 '학번은 숫자 1자리이며 1~4만 저장할 수 있다'라는 데이터는 실제 데이터가 아니고 데이터를 저장하기 위한 데이터 이므로 메타데이터라고 함. * 시스템 카탈로그 : 시스템 그 자체에 관련이 있는 다양한 객체들에 관한 정보를 포함하는 시스템 데이터 베이스 테이블임. * 서브 쿼리(SUB QUERY) : 서브쿼리는 조건절에 주어진 질의로서, 상위 질의에 앞서 실행되며 그 검색 결과는 상위 질의의 조건절의 피연산자로 사용된다. [Ÿ D..
관계대수(Relational Algebra) 기본연산 유도된 부가연산 위의 더보기를 누르시면 각 연산들의 특징 및 표기법 표가 나타납니다. 관계대수의 개념 - 관계대수는 관계형 데이터 베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어이다. - 관계대수는 하나 또는 두개의 릴레이션을 입력으로 받아들여 결과로서 새로운 릴레이션을 생성해내는 연산들의 집합이다. - 관계대수의 연산에는 기본 연산인 SELECT, PROJECT, JOIN, DIVISION 등과 집합 연산인 UNION, DIFFERENCE, INTERSECTION, CARTESIAN, PRODUCT 등이 있다. 순수 관계 연산자 SELECT- 릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만든다. - 릴에이션의 ..
뷰(View)의 개념 뷰의 개념- 뷰는 하나 이상의 기본 테이블에서 유도되는 가상(Virtual) 테이블이다. 즉, 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 보인다. - 뷰를 생성하면 뷰 정의가 시스템 내에 저장되었다가 생성된 뷰 이름을 질의어에서 사용할 경우 질의어가 실행될 때 뷰에 정의된 기본 테이블로 대체되어 기본 테이블에 대해 실행된다. 뷰의 특징- 보안에 이점이 있고 데이터 처리에 효율성이 증가됨.(필요한 데이터만 뷰로 정의하여 처리할 수 있으므로 불필요한 정보는 처리하지 않게됨.) - 뷰는 기본 테이블에서 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 가지며, 조작도 기본 테이블을 사용하는 것과 유사하다. - 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다. -..
무결성 (Integrity) 데이터베이스 - 무결성 : 무결성이란 데이터 베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다.다시말해, 저장된 DB에 잘못된 데이터가 없다는 것을 의미한다. 1. NULL무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정 2. 고유(Unique) 무결성 : 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 한다는 규정- 릴레이션의 기본 키인 학번 속성에는 동일한 값이 존재하지 않으므로 고유 무결성을 만족한다. 그러나 릴레이션에서 학번 속성은 중복될 수 있기 때문에 고유 무결성을 만족하지 않는다. 3. 도메인(Domain) 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정- 릴레이션의 과..
키(key)의 개념 및 종류 슈퍼키(Super Key)- 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합, 릴레이션의 모든 튜플 중 슈퍼키와 동일한 값은 나타나지 않음 - 유일성 O, 최소성 x - 릴레이션에서 학번, 주민등록번호, (학번, 주민등록번호), (학생, 성명), (주민등록번호, 성명), (학번, 주민등록번호, 성명)이 슈퍼키 후보키(Candidate Key)- 후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용 - 유일성 O, 최소성 O - 릴레이션에서 학번, 주민등록번호가 유일성과 최소성을 만족하므로 후보키, 릴레이션에서는 (학번, 과목명)이 유일성, 최소성을 만족하므로 후보키 - (학번, 과목명)과 같이 2개 이상의 속성을 조합하여 만든 키를 Composite Key라 한다. 기본키(Prim..
데이터베이스 설계(DataBase Design) DB 설계 데이터베이스 설계의 개념(1) 데이터베이스 설계란 데이터베이스의 구조(스키마)를 개발하는 과정이다. (2) 요구조건 분석, 개념적 설계, 논리적 설계, 물리적 설계, 데이터베이스 구현의 단계를 순서대로 반복하여 수행한다. (3) 데이터베이스의 구조에 치중하는 데이터 중심(Data-driven)설계와 데이터 처리 및 응용에 치중하는 처리 중심(Processing-driven) 설계를 병행한다. 요구조건 분석(Requirement Analysis)(1) 데이터베이스를 사용할 사람이 필요로 하는 용도를 파악하는 작업을 뜻한다. (2) 사용자의 요구조건을 수집하고 분석하여 공식적인 요구 조건 명세 (Requirement Specification)을 작성한다. (3) 요구조건 분석 단계에서 수집하고 분..