Java 8 Bye PermGem, Hi Metaspace 자바 8 이후로는 JVM에서 PermGen 영역이 완전히 사라지고 Metaspace란 영역으로 대체되었다. Permanent Generation PermGem은 Permanent Generation의 약자로 클래스의 메타 데이터(클래스 명, 필드 정보, 메서드 정보)들을 별도의 Heap 공간에 저장하는 영역이다. Java는 이 곳에서 클래스의 메타 데이터를 읽어 객체를 생성할 수 있었다. PermGem은 OS, JVM에 따라 각기 다른 default 크기를 가지고 있었으며, 이는 매우 적은 크기였다. 클래스 로딩이 잦다보면 PermGem이 부족하여 java.lang.OutOfMemoryError: PermGen space 에러가 발생하곤 했었다...
MongoDB의 데이터를 페이징 하기 위해 skip, limit을 사용하고 있었는데, 어느새부터 데이터를 가져오는데 수 초이상의 지연이 발생하였습니다. 문제점: skip, limit collection.find().skip(pageSize*(pageNum-1)).limit(pageSize);위 방법은 MongoDB에서 지원하는 일반적인 페이징 방식이지만, 컬렉션 내에 도큐멘트 수가 방대하다면 효율적이지 못한 방법입니다. MongoDB에서 skip과 limit을 이용한 페이징 방식의 원리는 전체 데이터를 읽은 뒤, 처음부터 지정된 오프셋까지 찾아 떠납니다. 만약 도큐멘트 수가 1억 건이고 skip이 2천만이면, 첫 번째 문서부터 2천만번째까지 탐색을 하는 것이지요. 따라서 문서가 많아질 수록 성능 저하가 ..
글또를 알게 된 계기 종종 다른 사람들의 깃허브를 탐험하기를 즐기는데, 어디선가 글또 아이콘을 보고 굉장히 독특하게 생겼다고 생각해 기억에 남았었다. 그 후, 블로그를 탐험하다 어쩌다 글또 회고 글을 보았고, 인상 깊게 남았었기에 더 자세히 찾아보다 마침 페이스북에서 7기를 모집 글을 보고 좋은 기회인 것이 분명하기에 바로 신청하였다. 글또에 신청한 동기 내가 가진 생각과 경험을 글로 논리정연하게 풀어내는 능력은 회사, 사회에서 영향력을 더 넓게 행사할 수 있는 발판이 된다고 생각한다. 그리고 최근들어 많은 아티클과 책들을 보면서 술술 읽히는 글들을 보면 그냥 멋있다. 나도 저렇게 글을 잘 써보고 싶다.. 라는 생각을 갖고 있었다. 그래서 글또에 왜 신청했는지 동기부여, 커뮤니티, 글 쓰는 습관 형성 등..
액세스 회선을 통해 인터넷의 내부로! ADSL 기술을 이용한 액세스 회선의 구조와 동작 ADSL은 전화선을 이용하여 컴퓨터가 데이터 통신을 할 수 있는 통신 수단이다. 인터넷 접속용 라우터에서 새로운 MAC주소와 PPPoE, PPP 헤더를 추가해서 ADSL모뎀으로 전송한다. ADSL 모뎀은 패킷을 ATM을 이용해 셀로 분할하고 전기 신호로 변환하여 스프리터로 송출한다. 스플리터는 전화용 주파수, 데이터용 주파수를 분할 후 각각에 전송한다. DSLAN에 전기 신호를 수신한 뒤 ATM 셀로 되돌려 송신 이 때 전기 신호를 ATM 셀로 변환한 뒤 BAS에 전달한다. 액세스 회선으로 이용하는 PPP와 터널링 액세스 회선이 ADSL이나 FTTH로 진화한 것이고, 이에 맞게 액세스 회선을 연결하는 라우터도 진화했는..