가비지 컬렉터란 무엇인가? 우리가 일을 할 때는 노트북, 책, 필기 도구등을 올려놓을 공간(책상)이 필요하다. 마찬가지로 컴퓨터도 일을 할 때 처리할 정보들을 올려놓을 공간이 필요하다. 책상이 넓으면 넓을 수록 더욱 다양한 일을 할 수 있다. (우리가 다다익램(램은 많으면 많을 수록 좋다)이라고 외치는 이유다.) 하지만 우리가 공부, 또 다른 공부, 또 다른 공부를 계속 하다 보면 새로운 책이 쌓이고 쌓여서 책상이 가득차게 되고 도무지 일을 할 수 없는 상태가 될 것이다. 그래서 가끔씩 책상을 치워줄 필요가 있다. 내가 어지른 책상은 내가 치우는게 당연하지만 나는 공부를 하느라 바쁘다고 가정하자. 그러다가 어지러운 책상을 보고 답답한 우리 엄마가 책상을 대신 치워줬다. 가비지 컬렉터는 이런 역할을 대신 ..
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 대상 위젯의 테두리..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JE2gG/btqYuslFY9I/ysLxdMkBopkZS88waOGbq1/img.png)
이번에 좋은 기회를 얻어서 다른 사람들과 안드로이드 프로젝트를 진행하게 되었다. 그런데 만들어져 있는 소스파일을 보니 레이아웃이나 파일들 이름이 일정한 규칙으로 짜여져 있는 것은 확인했는데 뭐라고 적혀있는지 알아보기가 힘들었다;; 그 중에서도 특히 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..
한국어에도 경상도 사투리, 전라도 사투리가 있듯이, 프로그래밍 언어도 회사마다 그 회사의 사투리(컨벤션)이 있을 것이다. 나중에 회사에 들어가면 그 회사의 컨벤션에 따르면 되겠지만, 문득 든 생각이 나는 나만의 컨벤션이 없다는 것을 느꼈다. 그냥 마구잡이로 그 때 그 때 좋다고 생각하는 식으로 프로그래밍을 하고 있을 뿐이다. 그래서 앞으로는 특정 컨벤션을 스스로 정하고 지키면서 코딩을 해보기로 했다. 그래야 나중에 새로운 컨벤션을 만나더라도 지킬 수 있는 요령이 생길테니! 아직은 스프링에 좋은 컨벤션을 잘 알지 못하여 아래 블로그에서 컨벤션을 기준으로 나만의 규칙으로 수정해나갈 예정이다! 나만의 코딩컨벤션 작성하기(Spring, Java, Naming, 구조, 코드 작성법 등) 현재(2020. 04) 나..
깃 커밋 메시지 컨벤션과 마찬가지로 자바 명명 규칙도 처음 보는 사람들이 읽기 쉽게끔 모두가 공유하기 쉬운 컨벤션을 가지고 이름을 지어야 한다. 명명규칙 표준 1. 클래스 이름 반드시 대문자로 시작한다. 생성자 이름은 클래스 이름과 같이 반드시 대문자로 시작한다. 클래스 이름을 만들 때는 해당 클래스가 어떤 목적으로 만들어졌는지 유추 가능하도록 만든다. public class Profile public class UserProfile public class Button 2. 메서드 이름 소문자로 시작한다. 여러 단어로 조합되면 첫 단어를 제외하고 다음 단어의 첫 글자는 대문자로 시작한다. 보통 메서드는 클래스 기능을 담당하므로 동사로 시작한다. public void println() private voi..