본문 바로가기

분류 전체보기110

[소설] 아몬드 아몬드 괴물인 내가 또 다른 괴물을 만났다!제10회 창비청소년문학상 수상작 『아몬드』. 타인의 감정에 무감각해진 공감 불능인 이 시대에 큰 울림을 주는 이 작품은 감정을 느끼지 못하는 한 소년의 book.naver.com 줄거리 엄마와 할머니 손에 자란 윤재는 감정 표현 불능증이다. 뇌의 감정 부분인 편도체 크기가 작아서 감정을 느끼거나 읽는데 어려움이 있다. 이런 윤재에게 엄마는 어렸을 때부터 감정을 교육한다. 윤재의 생일날 외식을 갔다가 묻지마 살인이 발생한다. 한 남자의 칼부림으로 할머니가 죽고 엄마는 식물인간이 된다. 윤재는 매일 병원에 들러 엄마에게 로션도 발라주고 욕창이 생기지 않도록 자세도 바꿔준다. 엄마가 운영하는 책방의 건물주인 심 박사가 나타나 윤재를 도와준다. 윤재 성격에 도움을 요청.. 2021. 9. 21.
[소설] 프리즘 프리즘 하나하나 다른 마음과 생각으로 살아가고 있는 사람들……나는 누구와 연결되어 있을까아름답고 날카롭게 산란하는 사랑의 빛깔들『프리즘』. 타인에 대한 몰이해와 공감하지 못하는 현실을 book.naver.com 줄거리 예진: 주인공들의 이야기를 엮으며 전개해가는 인물로 도원에게 호감을 가진다. 밝은 모습이지만 불면증에 고생한다. 도원: 결혼하고 2년 만에 아내를 암으로 떠나보냈다. 이때 홀가분함을 느껴서 죄책감을 가지지만 상대방의 비밀에는 냉정하게 대한다. 새로운 만남에서 행복한 상황에서도 끝을 생각한다. 재인: 빵집을 운영한다. 도원과 반대로 관계 끝는걸 못해서 이혼한 전 남편과 의미 없는 잠자리를 유지한다. 호계: 관심을 거부하는 무뚝뚝 인물로 재인의 빵집에서 알바한다. 이후 예진과 만나면서 이야기가.. 2021. 9. 18.
Vue - reactivity Vue에서 데이터 바인딩을 사용하다 보면 편리하면서도 이게 어떻게 가능한가 싶은 생각이 든다. text라는 변수를 여러 곳에서 사용하더라도 text를 변경하면 그 모든 곳들이 자동으로 변경되니 말이다. 보통 상식에는 text가 변경되어도 다른 값들은 이미 계산된 결과를 들고 있기 때문에 영향을 받지 않는다. 결국 어디선가 다시 계산을 유도시켜야 하는데 이를 reactivity(반응형)이라고 한다. 다행히 javascript에는 이를 깔끔히 해결해주는 Object.defineProperty라는 문법이 존재한다. defineProperty에서 특정 object의 getter와 setter를 override 시킬 수 있다. 그러면 관찰하고자 하는 변수와(x), 그 변수를 사용하는 다른 변수(y)들의 gette.. 2021. 5. 16.
Vue - 양방향 바인딩 vue js를 소개하는 가장 대표적인 기능이 양방향 데이터 바인딩이다. 공식 홈페이지 첫 화면에 대문짝만 하게 보여주는 progressive framework 취지에 맞게 낮은 진입장벽으로 일부분만 vue로 적용해 갈 수 있는데, vue로 바꿔나갈 때 당장 사용할 수 있는 기능이기 때문인 것 같다. 고수준의 양방향 데이터 바인딩을 하기 전에 html과 데이터 사이를 연결시키는 저수준의 문법부터 먼저 적용해보자. 단순히 vue 인스턴스의 데이터에 text라는 변수를 선언하면 html에서 사용할 수 있다. script에 있는 데이터를 html에서 사용하도록 바인딩한 것이다. {{ text }} 그럼 반대로 html에서 text라는 변수를 업데이트하기 위해 input 태그를 추가해보자. 아래 사용하는 v-bi.. 2021. 5. 15.
vim plugin 설치 방법 vim 세계에는 정말 많은 플러그인들이 존재한다. 최소한의 기능은 플러그인 없이도 .vimrc 파일에서 설정할 수 있지만, 그러기에는 너무 아까운 플러그인들이 많다. 당장 옆자리에서 사용하는 사람들만 봐도 모두 제각각으로 쓰고 있을 것이다. 원하는 기능이 있거나 인기있는 플러그인은 vimawesome.com 에서 한눈에 볼 수 있다. 내 로컬에 플러그인을 관리하는 매니저만 잘 사용하면 이 기능들을 손쉽게 사용할 수 있다. vim-plug 설치 가장 사용하기 쉬운 플러그인 매니저이다. github.com/junegunn/vim-plug 에서 확인할 수 있고 먼저 설치하라는 대로 따라 한다. $ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw... 2021. 3. 21.
Type Erasure와 ParameterizedTypeReference Generic으로 생성한 인스턴스에서 타입을 유추하는 방법과, Type erasure로 인한 문제점, 그리고 Generic에서 타입 추론을 해결하기 위한 ParameterizedTypeReference까지 알아보자. class GenericSample { T value; public GenericSample(T value) { this.value = value; } public T getValue() { return value; } } 위와 같이 Generic value 하나를 갖는 클래스를 선언한 뒤 인스턴스를 생성한다. 생성한 인스턴스를 reflection으로 타입을 가져와보면 결과는 다음과 같다. final GenericSample integerGeneric = new GenericSample(10.. 2021. 1. 2.