전체 글
-
테이블 레이아웃 (Table Layout) 기초앱개발/안드로이드 앱 개발 2016. 4. 9. 15:09
테이블 레이아웃 (Table Layout)이름에서 곧바로 알 수 있듯이 흔히 사용하는 표나 엑셀의 시트와 같은 형태로 화면을 구성하는 레이아웃이다. 격자 형태로 되어 있으므로 행과 열로 구성된다. 테이블 레이아웃의 안에 들어가는 TableRow는 한 로우 (행)을 의미하고, 하나의 TableRow에 들어가 있는 여러개의 뷰가 한 컬럼 (열)을 차지한다. 즉 컬럼 갯수는 TableRow안에 삽입되어있는 뷰의 갯수로 결정된다. TableRow의 크기를 조정하는 layout_height는 항상 wrap_content로 설정되어 있으며, layout_width는 항상 match_parent로 설정되어 있다. 직접 확인 결과 layout_height와 layout_width는 개발자가 원하는대로 지정 가능하다. ..
-
상대 레이아웃 (Relative Layout) 기초앱개발/안드로이드 앱 개발 2016. 4. 9. 02:40
목차[ Relative Rayout | 사용처 | 위치 지정자 ]Relative Rayout부모 컨테이너나 다른 뷰와의 상대적인 위치를 이용해 뷰의 위치를 결정할 수 있도록한다. 버튼의 아래쪽에 다른 버튼을 배치하고 싶을 때 이미 추가되어 있는 버튼의 아래쪽을 지정하는 속성을 XML 레이아웃에서 설정하는 방식으로 동작한다. 어떤 버튼의 아래쪽일지는 ID 값을 이용해 지정할 수 있다. 아이디값을 통해 대상 뷰나 컨테이너를 지정할때 @id/아이디를 이용해 지정을 할 경우, 먼저 선언 되어있는 뷰에서 그 아래 선언되어 있는 뷰를 선택하지 못하는 상황이 발생한다. 이를 방지하기 위해서는 @+id/아이디(리소스 추가 태그)를 아이디 참조시에 동일하게 사용하여 해결할 수 있다. 애플리케이션에서 XML 레이아웃을 해..
-
[MySQL / InnoDB] InnoDB스토리지 엔진 분석 - information schema프로그래밍/DBMS 2016. 4. 8. 02:28
MySQL/InnoDB 엔진 monitoring을 통한 I/O 분석내가 연구하는 분야인 데이터베이스 그 중 스토리지 엔진 최적화 분야에서는 I/O 최적화를 위한 많은 노력들이 이루어지고 있다. 자체 데이터베이스를 가지고 있거나 상용 데이터베이스를 판매하는 산업체가 아닌 이상은, 아이디어를 검증하기 위해 직접 시뮬레이터를 제작하거나 오픈소스 데이터베이스를 가져다 쓰는 수 밖에 없다. 당연히 직접 만든 시뮬레이터 보다는 널리 사용되는 오픈소스 데이터베이스를 사용하는 것이 훨씬 믿을만한 정보이다. 보통 I/O 상태 정보 및 그와 관련된 시스템 콜들에 대한 연구를 진행할 때, 데이터베이스의 종류에 상관없이 sysstat, blktrace 등의 패키지에 내장된 툴을 사용하거나 ftrace, perf와 같이 리눅스..
-
C/C++ 옵션 파싱하기 (Option parsing)프로그래밍/일반 2016. 4. 7. 16:26
C/C++ 옵션 파싱 (Option parsing) C/C++ getopt() 함수 사용하기 필요한 인자 getopt()의 동작 optind opterr optopt getopt()의 반환 값 getopt() 함수 리턴 값 (Return value) getopt() 함수 추가 변수 반환 getopt_long(), getopt_long_only() C/C++ 옵션 파싱 (Option parsing)C/C++를 이용하여 프로그램을 만들때 자주 사용하는 것 중 하나가, 실행시 옵션을 통해 원하는 옵션을 주거나 원하는 흐름제어를 하는 것이다. //...... int main(int argc, char* argv[]) { if (argc < 2) { return -1; } //.... for (int i = 0;..
-
[티스토리] Markdown Editor Haroopad를 사용하여 블로깅 하기프로그래밍/웹 2016. 4. 6. 19:51
Markdown마크다운(Markdown) 문법 간단 소개 페이지에서 설명했던 마크다운은 Github에서 사용하면서 알게되어 지금까지는 Github에서만 이용히 사용하고 있었다. 간단한 README.md 와 같은 마크다운 문서들을 작성할때 HTML 문법을 생각하지 않고 몇가지 기호들만 기억해서 사용하기 때문에 매우 편하다는 장점이 있었다. 마크다운 (Markdown)을 이용하기 전 블로깅티스토리 블로깅을 시작하면서 가장 귀찮았던 것이 바로 원하는 모양대로 글을 작성하는 것이었다. 글씨체나 글자 모양들을 설정할때 단축키로 외워서 사용하면 되긴 했지만 글 작성 하는 흐름에서 끊기는 경우가 많았다. 블로깅 글에 링크나 테이블 등을 삽입하면서부터는 귀찮은 점이 점점 증가하기 시작하였다. 테이블의 모양을 원하는대로..
-
마크다운 (Markdown) 문법 간단 소개프로그래밍/일반 2016. 4. 1. 19:50
마크다운은 일종의 마크업 언어로 쉬운 에디팅을 지향하는 에디팅 언어이다. 요즘 여러 사이트에서 마크다운을 사용하고 있으며, 특히 내가 주로 사용하는 GitHub에서 기본 언어로 지원을 하고 있다. 기본적으로 GitHub에서 간단히 README.md 파일등을 수정할 때 사용하므로 자세한 설명 없이 내가 실제로 사용할때 쓰는 것들만 정리하도록 한다. 자세한 내용은 잘 정리된 블로그, 위키피디아, 나무위키 등을 참고하자. 이 블로그는 나 편하려고 작성하는 곳이다. 아래에서 " " 로 묶여 있는 경우 " "는 무시한다. 보기 편하려고 구분해놓은 것이다. # 문법 제목 수준을 지정할 때 사용한다. # 한개를 쓰면 태그 수준을, 두개를 쓰면 태그 수준을 의미하고, 갯수가 늘어날 수록 제목 수준이 내려간다. (글씨체..
-
GitHub 원격 (remote) 브랜치 (branch) 생성/삭제하기프로그래밍/일반 2016. 3. 30. 20:41
GitHub 원격 (remote) 브랜치 (branch) 생성하기 1) 자신의 로컬 PC에서 원하는 브랜치를 생성하고 이동한다. git checkout -b test 2) 원격 저장소에 자신이 만든 브랜치와 동일한 브랜치를 생성한다. git push origin test 3) 다음 push/pull 사용시 원격 저장소의 test 브랜치를 자동 지정하도록 세팅한다. git branch --set-upstream-to=origin/test GitHub 원격 (remote) 브랜치 (branch) 삭제하기 1) 삭제하려는 브랜치 외의 다른 브랜치로 이동한다. git checkout master 2) 로컬 브랜치를 삭제한다.git branch -D test 3) 원격 브랜치를 삭제한다. git push orig..
-
리니어 레이아웃 (Linear Layout) 기초 2앱개발/안드로이드 앱 개발 2016. 3. 27. 15:00
여유 공간 설정하기부모 컨테이너(뷰/뷰그룹) 에 뷰를 배치할때 여유 공간에 딱 맞게 놓이는 것이 아니다. 그러므로 여유 공간에 대해 어떻게 사용할 것인지, 여유 공간의 어느 곳에 둘 것인가를 지정한다는 것도 중요하다. 뷰과 부모 컨테이너를 모두 가득 채우거나, 텍스트가 너무 크게 꽉 차 보이는 경우는 매우 답답한 느낌을 줄 수 있다. 이런 상황을 해결하기 위해 옵션을 통해 각 뷰 혹은 텍스트의 상하좌우에 여백을 줄 수 있다. layout_margin, paddingXML 코드 내에서 컨테이너의 여유 공간을 지정할 수 있는 옵션 들이다. layout_margin: 부모 컨테이너의 여유 공간과 추가할 뷰 사이의 여백을 줄 수 있는 속성padding: 뷰 안의 텍스트나 이미지와 뷰 외곽선 사이의 여백을 줄 수..