분류 전체보기(24)
-
레이아웃 인플레이션 이해하기
지금까지 하나의 화면을 만들기 위해 XML 레이아웃을 정의했습니다. XML레이아웃은 단순히 XML로 정의된 파일이며 화면을 어떻게 배치하는지 정의할 뿐입니다. 따라서 XML 레이아웃만 만들었다고 해서 화면을 띄우고 동작시킬수 있는 것은 아닙니다.안드로이드는 화면 배치를 알려주는 XML 레이아웃 파일과 화면의 기능을 담당하는 소스 코드 파일로 분리되어 있습니다. 이렇게 화면 레이아웃과 화면 기능이 분리되어 있기 때문에 항상 하나의 화면을 만들 때는 XML 레이아웃 파일 하나와 자바소스 파일 하나를 쌍으로 만들어야 한다고 생각하자.그런데 두개의 XML 레이아웃 파일을 만들고 자바 소스 파일은 하나만 만들었다면 그중 어떤 XML 레이아웃 파일이 자바 소스파일과 매칭되는 것인지 알 수 있을까 ? 즉, 새로만든 ..
2018.11.22 -
gradle 설정
다른 사람이 만든 프로젝트를 안드로이드 스튜디오에서 열다 보면 소스파일에 에러가 없는데도 gradle의 설정 때문에 빌드 되지 않는 경우가 있다.이것은 gradle Scripts 폴더 안에 있는 build.gradle 파일의 설정 정보 때문이다.밑줄친 순서대로 설명해 보면compileSdkVersion 28 : 컴파일 할 때에 사용할 SDK 버전을 지정한다. 값이 28으로 되어있다면 API버전이 28인 SDK를 이용해 컴파일 한다는 것을 의미한다. minSdkVersion 15 : 프로젝트가 지원하는 최소 SDK 버전을 지정한다. 값이 15로 되어있다면 API 버전이 15이전의 단말에서는 앱이 동작하지 않는다. targerSdkVersion 28 : 실행을 위해 검증한 SDK가 어떤것인지를 지정한다. 값..
2018.11.21 -
소스파일이 프로젝트로 묶여 빌드되기까지
소스코드, xml로 정의한 리소스 파일은 어떻게 빌드될까 ? 일단 안드로이드 스튜디오는 그레이들(Gradle)이라는 것을 이용하여 빌드 과정을 자동으로 진행.코드나 리소스 정보가 바뀔 때마다 자동으로 빌드 결과를 만들어 낸다. 자바코드, 리소스, 매니페스트가 빌드되어 하나의 앱으로 만들어 진다. 자바 소스파일은 표준 자바와 마찬가지로 클래스 파일로 빌드된후 하나의 앱으로 만들어지는데 이렇게 만들어진 파일들은 안드로이드의 런타임에서 실행될 수 있는 포맷으로 변환된다. manifest 파일. Java 파일: javac 컴파일러 이용해 클래스파일로 컴파일( *.class ) 개발 도구중 하나인 dx 이용해 dex 파일로 만든다. Resource 파일: 필요한 경우 바이너리 파일로 빌드. 이렇게 마들어진 dex..
2018.11.21 -
셰익스피어의 피보나치수열
윌리엄 셰익스피어W I L L I A MS H A K E S P E A R E1564-1616 그토록 불쾌하면서도 아름다운 언어는 일찍이 본 적이 없다. 감정에 대해서 직접 기술하지 않는 헤밍웨이의 방식과는 매우 다르게, 윌리엄 셰익스피어는 인간의 마음을 최대한 철저히 파고든다. 경이로울 정도로 표현력이 풍부한 운문을 통해, 셰익스피어는 주인공의 마음에 생긴 균열을 보여주고 영혼을 까발린다. 셰익스피어는 희곡과 소네트(10개의 음절로 구성되는 시행 14개가 일정한 운율로 이어지는 14행시)에서 약강5보격을 매우 많이 사용한다. 이는 셰익스피어가 활동하던 엘리자베스 시대에 인기가 많았던 서정시의 형식이다. 다음은 셰익스피어의 [18번 소네트]에서 약강5보격으로 쓴 2행 연구 (두개의 시행이 연달아오며, 이..
2018.09.12 -
헤밍웨이의 피보나치수열
어니스트 헤밍웨이E R N E S TH E M I N G W A Y1899-1961 내 평생 자바스크립트 보기를 난생처음 보듯 했다. 헤밍웨이 작품의 특징은 단도직입적이고 복잡하지 않은 산문이라는 점이다.그리고 그의 작품에는 깔렸는 술책 같은 것이 없다.소설에서 헤밍웨이는 눈으로 볼 수 있는 사실에 대해서만 기술한다.즉 인물 간에 오가는 대화나 인물의 행위, 표면에 드러나는 특징 등에 대해서만 기술한다.문장에서 사용하는 구조나 문법도 지극히 평볌하다.문장은 짧고 쉬우며 어려운 단어가 나오지 않는다. -피보나치 수열 ( javaScript )function fibonacci(size) {var first = 0, second = 1, next, count = 2, result = [first, second..
2018.09.12 -
Request 기본 객체
Request 기본 객체가 제공하는 기능.클라이언트(웹 브라우저)와 관련된 정보 읽기 기능 서버와 관련된 정보 읽기 기능클라이언트가 전송한 요청 파라미터 읽기 기능클라이언트가 전송한 요청 헤더 읽기 기능클라이언트가 전송한 쿠키 읽기 기능속성 처리 기능 Request 기본 객체의 클라리언트 및 서버 정보 관련 메서드 메서드 리턴 타입 설명 getRemoteAddr( ) String 웹서버에 연결한 클라이언트의 IP 주소를 구한다. 게시판이나 방명록 등에서 글 작성자의 IP 주소가 자동으로 입력되기도 하는데, 이때 입력 되는 IP 주소가 바로 이 메서드를 사용하여 구한 것이다. getContentLength( ) long 클라이언트가 전송한 요청 정보의 길이를 구한다. 전송된 데이터의 길이를알수 없는 경우 ..
2018.09.02