분류 전체보기
비행기에서 적은 짧은 근황...
벌써 길고도 짧았던 3개월간의 두번째 인턴십을 거쳐 전환, 정식으로 입사한지도 3개월이나 되었다.(반년간 글이 없었던이유ㅎㅎ) 이 회사에 들어온지도 벌써 6개월이라니 믿기진 않지만,, 하여튼 좌충우돌 바빴던 신입 파일럿 프로젝트 종료 후 일주일간 회사에서 여행을 보내줘서 호주에서 동기들과 즐거운 시간을 갖고 왔다. (돈많은회사 최고^^7) 이제 수습도 떼고 다음주부터 본격적으로 부서배치를 받아 진짜 현업에 뛰어들게 되는데.. 이제 진짜 시작이니만큼 다시 열심히 달려봐야겠다! 🏃♂️🏃♂️다행히 그동안 관심있었던 기술과 도메인을 가진 부서로 배치돼서 기대반 설렘반으로 새로운 시작을 하게 되었다. 공부와 포스팅도 슬슬 다시 시작해야지,, 작년-올해까지 해서 새로운 환경에서 다시 시작부터 출발하는게 벌써 네..
본격 JVM 해부하기
🤓 새로운 정보를 찾으면 계속 업데이트 될 글입니다! 자바의 실행 과정 자바는 JVM이 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받는다. 자바 파일이 자바 컴파일러에 의해 자바 바이트 코드(.class)로 변환된다. 클래스 로더를 통해 자바 바이트 코드를 JVM으로 로딩한다. 해석된 바이트 코드는 런타임 데이터 영역에 배치된다. 실행 엔진을 통해 실행된다. JVM은 필요에 따라 GC와 같은 작업을 수행한다. JVM의 구조 클래스 로더 자바는 동적 로드, 즉 런타임에 클래스를 로드하고 링크하는 특징이 있다. 이 동적 로드를 담당하는 부분이 JVM의 클래스로더이다. 로드 우선 클래스 로더는 .class 파일을 읽고, 그 내용에 따라 적절한 바이너리 데이터를 만들고, 메소드 영역에 저장하는 동작을 수..
클린 코드 2장 - 의미 있는 이름
의미 있는 이름 의도를 명확히 밝혀라 변수, 함수, 클래스 이름은 변수의 존재 이유, 수행 기능, 사용 방법 같은 내용을 모두 담고 있어야 한다. 코드가 하는 일을 짐작하기 어려워선 안되며, 코드의 맥락이 코드 자체에 명시적으로 드러나야 한다. 지뢰찾기 게임을 만든다고 가정했을 때, 해당 코드들을 비교해보자. 단순히 이름만 고쳤을 뿐인데 함수가 하는 일을 이해하기 쉬워졌다. public List getThem(){ List list1= new ArrayList(); for(int[] x: theList){ if(x[0]==4) list1.add(x); } return list1; } public List getFlaggedCells() { List flaggedCells = new ArrayList();..