1. 기본 타입 (Primitive type) 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하고 원시 타입이라고도 부른다. 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 논리형 : boolean 실제 데이터 값을 저장하는 타입이다. 2. 참조 타입 (Reference type) 간단하게 말하자면 기본 타입을 제외한 타입들을 말한다. 객체의 주소를 저장하는 타입이다. ex) 문자열, 배열, 열거, 클래스, 인터페이스 Java에서 실제 객체는 Heap 영역에 저장되며 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장하여 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와 사용하는 방식이다. Stack 영역 지역 변수, 파..
컴퓨터를 사용하는 사람이라면 서버라는 단어를 안 들어본 사람이 더 적을 것이다. 하지만, 정작 서버란 단어를 사용할 때는 애매하게 사용하는 사람이 많아서 간단하게 서버란 개념을 이해하고 덧붙여 클라이언트라는 개념도 익혀보도록 하자. 서버와 클라이언트 서버는 어떤 특별한 컴퓨터가 아니다. 정확히는 컴퓨터의 역할이다. 우리들의 노트북, 데스크톱도 얼마든지 서버가 될 수 있다. 쉽게 이해하기 위해 사람에 빗대어보자. 내가 편의점에서 일하게 되면 아르바이트 직원이지만 퇴근한 후에 우리 집 앞에 있는 다른 편의점을 가게 되면 그 편의점에서는 손님이 된다. 나(컴퓨터)라는 본질은 바뀌지 않은 채 나의 역할만 바뀌는 것이다. 컴퓨터도 동일하게 하는 행위에 따라 서버 혹은 클라이언트가 될 수 있다. 서버와 클라이언트를..
가비지 컬렉터란 무엇인가? 우리가 일을 할 때는 노트북, 책, 필기 도구등을 올려놓을 공간(책상)이 필요하다. 마찬가지로 컴퓨터도 일을 할 때 처리할 정보들을 올려놓을 공간이 필요하다. 책상이 넓으면 넓을 수록 더욱 다양한 일을 할 수 있다. (우리가 다다익램(램은 많으면 많을 수록 좋다)이라고 외치는 이유다.) 하지만 우리가 공부, 또 다른 공부, 또 다른 공부를 계속 하다 보면 새로운 책이 쌓이고 쌓여서 책상이 가득차게 되고 도무지 일을 할 수 없는 상태가 될 것이다. 그래서 가끔씩 책상을 치워줄 필요가 있다. 내가 어지른 책상은 내가 치우는게 당연하지만 나는 공부를 하느라 바쁘다고 가정하자. 그러다가 어지러운 책상을 보고 답답한 우리 엄마가 책상을 대신 치워줬다. 가비지 컬렉터는 이런 역할을 대신 ..
ConstraintLayout의 경우, RelativeLayout 등에 비해 레이아웃의 구조를 상대적으로 간단하게 표현하였지만 좀 더 다양한 레이아웃을 만들기 위해 Virtual Helper object(가상 오브젝트)를 이해할 필요가 있다. 이번 포스팅에서 알아볼 가상오브젝트의 종류에는 다음 4가지가 있다. Guideline Barrier Group Placeholder Guideline (가이드라인) ConstraintLayout 내에서 다른 뷰의 위치를 잡는데 도움을 주는 유틸리티 클래스이다.(기본적으로 visibility는 View.GONE 상태) 수평 또는 수직으로 배치가 가능하며 두께는 기본적으로 0이다. Guideline은 3가지 방법으로 배치가 가능하다. layout_constraintGu..
평소에 인텔리제이 계열 IDE(인텔리제이, 파이참, 안드로이드 스튜디오)를 많이 쓰는 편인데 갑자기 인텔리제이 계열 IDE를 시작하면 밑에 에러가 뜨면서 열리지가 않았다. 멘붕 그 자체... Internal error. Please report to http://jb.gg/ide/critical-startup-errors java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(Net.java:461) at java.base/sun.nio.ch.Net.bind(Net.java:453) at java.base/sun.nio...
ConstraintLayout이란? ConstraintLayout은 android.view.ViewGroup에 속한 레이아웃이며 위젯의 위치(postion)와 크기(size)를 지정할 수 있게 해준다. Constraint의 종류 Relative positioning Margins Centering piositioning Circular positioning Visibility behavior Dimension constraints Chains Virtual Helpers objects Optimizer Relative positioning Constraint 레이아웃에서 가장 기초적인 개념이다. 대상 위젯의 위치를 지정할 때, 다른 위젯으로부터 상대적인 위치에 지정한다. Margins 대상 위젯의 테두리..
이번에 좋은 기회를 얻어서 다른 사람들과 안드로이드 프로젝트를 진행하게 되었다. 그런데 만들어져 있는 소스파일을 보니 레이아웃이나 파일들 이름이 일정한 규칙으로 짜여져 있는 것은 확인했는데 뭐라고 적혀있는지 알아보기가 힘들었다;; 그 중에서도 특히 xml과 관련 된 파일의 이름이 생소하였다. 그러던 와중에 괜찮은 글을 발견하게 되어 한 번 정리해보려고 한다. jeroenmols.com/blog/2016/03/07/resourcenaming/ A successful XML naming convention Do you remember the last time you had to dig into strings.xml to find the right String to use? Or that you manuall..
최근에 웹 서버를 구현하고 있는데 종종 DB Schema도 바뀌고 우분투를 다루는데도 익숙치 않아서 자주 서버를 갈아 엎어서 기껏 만들어놓았던 더미 데이터들이 날라가서 너무 마음이 아파서 어떻게 할까 고민하다가 한 번 집어넣은 데이터를 엑셀 파일로 뽑아냈다가 이후에 DB Schema를 갈아 엎을 때 마다 엑셀 파일을 활용해서 넣어주면 좋겠다 싶었습니다. 그래서 찾아 본 결과 1. MySql Table에서 csv 파일로 Export SELECT * FROM Tablename INTO OUTFILE '[저장경로]/result.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' 그러나 뜻하지 않은 에러에 직면했으니.. The MySQL..