전체보기 35

[소설] 동급생

어느날 뉴스를 보니까 요즘 청소년의 숏폼 중독이 늘어난댄다. 근데 나 역시 유튜브를 보는 시간이 점점 늘어나고 심지어 어떨때는 보면서 재밌지 않아도 계속 보게된다. 그래서 다시 책을 읽기로 했다. 이 책을 읽기전에 '거짓말, 딱 한 개만 더' 라는 소설을 읽었다. 한 100페이지까지 읽었는데 여러개 에피소드를 합쳐놓은 단편집이어서 딱 2 에피소드까지만 읽었다. 에피소드당 50페이지 정도 밖에 안되니까 흐름이 끊겨서 아쉬웠다. 그래서 다시 고른 책이 '동급생'이다. 나는 히가시노 게이고의 추리물을 좋아한다. 구성은 추리소설인데 청소년 성장, 공포, 감동, 미스테리 처럼 다양한 분야가 섞여있다. 그래서 난 분명 추리소설을 읽었는데 다 읽고나면 왠지 재밌게 속았다는 느낌이 든다. 이번 책도 그랬다. 주인공 소..

독서 2024.04.08

GC는 어떻게 이루어지는가?

GC? GC는 Garbage Collector다. garbage = 참조되지 않는 객체 garbage를 청소함으로써 메모리 누수를 막고 메모리를 효율적으로 관리. Garbage Collector는 Garbage Collection을 수행하는것이다. Java는 C와 달리 메모리 관리를 직접하지 않는다. JVM의 GC에서 대신 필요하지 않는 메모리를 정리해준다. 어떻게 설계되었는가? 간단히 생각해서 중간에 사용되지 않는 메모리를 체크해서 해제해주면 될것이다. 그러나 이 과정은 굉장히 자원을 많이 사용하는 비싼 작업이다. 그래서 GC는 최대한 적게하는것이 가장 중요하다. 객체들의 생명주기를 조사해보니 대부분의 객체들은 생명주기가 짧았다. 즉 대부분의 객체들이 금방 생성되고 사라지는것이다. 오래 살아남는 객체들..

Java 2024.01.29

객체 지향이란?

객체 지향?객체란 현실 세계의 유무형의 사물들을 표현하기 위한 자료형입니다.이때 객체는 3가지 요소를 갖습니다.속성값, 액션(메서드), 관계. 자동차를 객체로 따지면 다음과 같을것입니다.속성값 : 모델명, 색상, 연비, 마력 등메서드 : 시동걸기, 전진하기, 후진하기, 방향 전환하기 등관계 : 다른 브랜드 자동차, 오토바이 등 여기서 가장 눈여겨 보아야할점은 관계입니다.객체는 다른 객체들과의 긴밀한 연결성을 갖고 있습니다. 예를들어 현대에서 여러가지 자동차, 오토바이를 생산한다고 했을때여러 객체들관의 관계를 명확히 설계해야고도화된 설비와 생산이 가능해질 것입니다.그리고 우리는 이러한 객체들을 이용한 설계를 객체 지향이라고합니다. 객체 지향을 왜 써야할까?간단하게 비유를 통해 객체 지향을 알아봤지만 뭔가 ..

Java 2024.01.17

[소설] 방황하는 칼날

법은 왜 존재할까? 소설에서는 이 화두에 끊임없이 의문을 던진다. 한 마을에 어떤 사람이 살인을 저질렀다. 우리는 그 사람을 어떻게 해야할까? 당연히 처벌해야할것이다. (처벌하지 않으면 살인을 막을 수 없다.) 그리고 그 처벌은 일관성을 가지고 있어야한다. 누구는 더 처벌하고 누구는 덜 처벌하면 안되기 때문이다. 우리는 그 일관성을 법이라고 한다. 법전에 이렇게 쓸것이다. '살인을 저지른자 처벌한다.' 그리고 추가적인 디테일에 따라 어떻게 처벌할건지 상세한 부분을 기술한다. (계획살인인지, 얼마나 잔혹했는지, 가해자가 몇살인지, 동기가 무엇이었는지, 가해자의 태도가 어땠는지 등등) 처벌을 결정할 단계다. 시대에 따라 다르겠지만 대부분의 사람들은 폭력은 안된다고 한다. 그래서 우리는 그 처벌을 사회로부터의..

독서 2024.01.12

[소설] 백야행 1,2

히가시노 게이고의 무수히 많은 작품중 가장 수작이라는 평을 듣는 소설이다. 소설의 전체적인 느낌은 굉장히 어둡다. 기리하라 료지와 가라사와 유키호라는 두 사람이 어린시절부터 엮이며 시간순서에 따라 소설이 진행된다. 사실 처음에는 많이 당황스러웠다. 일단 등장인물이 굉장히 많다. 이름도 일본어이고(일본소설이니까) 심지어 비슷비슷한 느낌도 줬다. 책도 1천 페이지에 달해서 꼼꼼히 읽으면 완독하지 못할거같았다. 그래서 내 선택은 외우며 꼼꼼히 보기보단 훑어보면서 읽었다. 대략적으로 6개의 챕터가 있었던거같다. 초등학생 시절 / 고등학생 시절 / 대학생 시절 / 20대~30대 (소프트웨어 회사, 전자제품 회사, 유키호의 첫 결혼) / 탐정사무소 / 형사의 추격 충격적인건 챕터마다 새로운 등장인물이 나와 헷갈리는..

독서 2024.01.09

[운영체제와 정보기술의 원리] 10장 웹캐싱

웹캐싱 웹캐싱은 웹서버의 캐시서버로 웹서버의 부하를 줄여주기위해 사용한다. 웹서버에 요청이 많아질수록 네트워크의 병목현상이 발생한다. 이러한 병목현상을 없애주기 위해 웹캐싱을 활용해 웹서버의 요청을 미리 캐싱해뒀다가 사용자에게 전달해주는 개념이다. 포워드 프록시 VS 리버스 프록시 위 그림에서 보면 웹캐싱을 위해 웹 브라우저는 프록시(proxy) 서버에 요청을 보낸다. 근데 이러한 프록시 서버의 책임은 사용자, 기업 어디에 있을까? 포워드 프록시 서버 : 클라이언트측이 프록시. 리버스 포록시 서버 : 서버측의 프록시. 포워드 프록시 클라이언트측에서 사용하는 프록시 서버다. (일반적인 프록시 서버라면 포워드 프록시.) 클라이언트가 서버에게 요청을 보낼때 포워드 프록시 서버에 요청을 먼저 보낸다. 그러면 프..

OS 2023.12.17

[운영체제와 정보기술의 원리] 9장 디스크 관리

디스크 구조 먼저 디스크가 어떻게 생겼는지 먼저 살펴보자. 디스크에 데이터를 저장할때는 최소 저장 단위인 논리블록(logical block) 단위로 저장한다. 이러한 논리블록은 1개의 섹터에 저장이 된다. 즉 논리블록과 섹터는 1:1 관계다. 디스크는 여러개의 마그네틱 원판이 겹쳐진 형태로 되어있다. 마그네틱 원판위에는 여러개의 트랙으로 구성되어있다. 트랙은 섹터들이 이름 그대로 섹터들이 일열로 구성되어있는것이다. 여러개의 원판에 같은 z 좌표가 같은 집합을 실린더라고 한다. 디스크에서 데이터를 읽고 쓸때는 암(arm)이 해당 실린더로 이동하고, 원판이 돌아가 트랙위에 섹터를 헤드가 읽는다. 디스크 스케줄링✅ 디스크에서 데이터를 일겅오려면 여러개의 섹터들을 접근해야한다. 그렇다면 접근해야할 섹터들이 여러..

OS 2023.12.13

[운영체제와 정보기술의 원리] 8장 가상 메모리

현대의 시분할 시스템에서는 여러 프로세스가 동시에 메모리에 올라와있다. 다만 프로세스의 모든 주소영역을 올리는것이 아닌 실제로 수행에 필요한 부분만 메모리에 올라와있다. (그렇지 않은 부분은 백킹 스토어에 저장) 이로인해 프로세스는 메모리 공간의 제약없이 0번부터 시작하는 메모리 공간을 홀로 사용한다고 느낀다. 실제 물리적 공간과 달리 0번 부터 시작하는 프로세스의 독자적인 메모리 공간을 가상 메모리(논리적 메모리)라고 한다. 그렇다면 프로세스의 주소공간을 메모리에 어떤 단위로 적재할것인지를 결정해야한다. 요구 페이징(demand paging) : 대부분 이 방식을 사용. 요구 세그멘테이션(demand segmentation) : 사용하더라도 하나의 세그먼트를 여러개의 페이지로 나누는, 페이지드 세그먼테..

OS 2023.12.12