포스트464 [책] 가재가 노래하는 곳 - 델리아 오언스, 살림 이라는 책은 리디북스의 독서 뷔페 서비스인 '리디 셀렉트'의 주간 차트를 통해서 읽기 시작했다. 단순히 '소설을 읽어야지'라는 생각에 선택한 책인데, 2019년 가장 많이 팔린 책이고 뉴욕타임즈 40주 연속 베스트 셀러를 기록한 책이라는 것을 중간쯤 읽었을 때 알게되었다. 어쩐지 어마어마한 흡입력이라더니.... 특히 이 책의 내용이 영화화 된다고하니 개봉하거나 VOD로 나오면 꼭 봐야겠다. 개인적인 경험상 책을 기반으로 영화화 된 경우 책이 압도적으로 재미있었다. 가 그랬고 , 이 그랬다. 은 또 어떻게 습지의 아름다운 모습과 카야의 우울함이 녹아있는 판자집을 영상화 할지 기대된다. 의 주인공은 '카야'(본명은 캐서린 클라크)라는 여자 아이다. 미국 노스캐롤라이나 주 아우터 뱅크스 인근 습지가 주요 무대.. 2021. 1. 24. [Java] computeIfAbsent 예제 Map을 사용할 때 굉장히 빈번하게 사용하는 코드 패턴이 있다. Map map = new HashMap(); Value value = map.get(key); if (value == null) { value = getNewValue(key); map.put(key, value); } Map에서 특정 키에 해당하는 값이 존재하는지 확인한 후, 없으면 새로 만들어서 넣어주는 형태의 코드다. Key 값에 해당하는 Value가 존재하면 가져와서 사용하고 없으면 새로 만들어주는 패턴의 코드를 위해 Java 8에서는 computeIfAbsent()라는 메소드를 이용해서 짧게 구현할 수 있다. Map map = new HashMap(); Value value = map.computeIfAbsent(key, k -> .. 2021. 1. 19. [책] 구글이 목표를 달성하는 방식 OKR - 크리스티나 워드케, 한국경제신문 어느 유튜브 채널이었나 자기계발과 관련된 이야기를 하다가 구글이 "OKR"이라는 시스템을 사용하고 있다는 사실을 알게되었다. KPI는 많이 들어봤는데 OKR은 생소했다. 언젠간 OKR에 대한 책을 읽어봐야겠다는 생각을 하고 있었는데, 마침 리디셀렉트에 이라는 책이 있어서 읽어보게 되었다. 사실 아이디어를 지키는 것은 중요하지 않다. 아이디어를 현실로 만드는 데 걸리는 시간을 사수하는 일이 중요하다. 온갖 반짝이는 것들이 당신을 향해 쏟아져 들어오는 것 같을 때, 당신과 당신의 팀이 목표를 잃지 않게 잡아줄 시스템이 필요하다. 구글이 목표를 달성하는 방식 OKR - 프롤로그 우리가 소모할 수 있는 리소스는 한정적이다. 제한적인 리소스를 이용해서 무언가를 달성하려고 할 때, '선택과 집중'이 필요하다. 선택.. 2021. 1. 11. [Git] GitHub Draft Pull Request 기능 깃허브(Github)를 협업 도구로 사용하는 경우 'PR(Pull Request)'을 통해 컨트리뷰션을 하게 된다. 브랜치를 생성하고 새로운 기능이나 버그 수정을 위한 코드를 작성한 다음 수정사항을 반영해달라는 PR(Pull Request)를 요청하게 된다. 리뷰어는 수정 사항을 리뷰하고 승인을 하면, 수정사항이 반영된다. 깃허브에서는 PR 이슈를 초안(Draft) 모드로 오픈할 수 있는 기능을 제공하고 있다. 작업중인 코드가 아직 리뷰를 받을 준비가 되어 있지 않으며, 계속 작업이 이뤄지고 있는 상태라는 것을 의미한다. PR 생성을 할 때 "Create pull request" 버튼 옆에 드랍 다운 화살표를 클릭하면 "Create draft pull request" 항목이 나온다. 이 항목을 선택하면 .. 2021. 1. 10. Base64 인코딩이란? '인코딩(Encoding)'이란 데이터로 저장되어 있는 정보는 유지하면서 데이터의 형태를 바꾸는 과정을 의미한다. 데이터의 표현을 다른 형태로 변경하는 것을 인코딩이라고하며, 반대로 원상태로 되돌리는 것을 '디코딩(Decodning)'이라고 한다. 동영상을 특정 포맷으로 변환하는 것처럼 데이터의 표현 방식을 변환하는 것을 '인코딩'이라고 한다. Base64 인코딩 Base64는 바이너리 데이터를 텍스트 형태로 변환해주는 인코딩 알고리즘이다. Base64를 그대로 직역하면 64진법이라는 뜻이다. 바이너리 데이터를 64진법으로 변환한 다음 64개의 숫자에 64개의 문자(A-Z, a-z, 0-9 등)를 대응해서 텍스트로 만드는 인코딩 방식이다. Base64 인코딩은 다음과 같이 진행된다. 3바이트 바이너리를 .. 2021. 1. 8. [책] 직장인 공부법 - 이형채 지음, 21세기 북스 우리는 무한경쟁 시대에 살고 있다. 예전에는 취업을 하면 정년까지 회사를 다닐 수 있었다. 호봉제로 오래 다니기만하면 연봉도 알아서 오르고, 직급도 알아서 올랐다. 남들보다 빠르게 승진하려는 욕심이 아니면 공부는 취업때까지만이었다. 아니.. 공부를 안해도 취업이 가능했던 시절이 있었다고하니 공부는 대학 입시때까지였을 수도 있다. 많은 다큐에서 말하기를 IMF를 기점으로 평생 직장의 개념이 사라졌다고 한다. 정년의 개념은 없어지고 누구나 언제든지 회사를 그만둘 수 있다는 불안감을 가지게 되었다. 그 때부터였던 것 같다. 직장인들이 공부를 하고 자기계발을 한 것이.. 은 공부하는 직장인들을 위한 책이다. 공부하는 직장인을 '샐러더트'라고 하던가? 회사에서는 열심히 일하고 퇴근 후 혹은 아침시간을 쪼개서 영어.. 2021. 1. 7. Java NIO - Pipe 파이프(Pipe)는 두 스레드를 연결해주는 'One-way' 데이터 커넥션이다. 파이프(Pipe)에는 데이터를 쓸 수 있는 싱크채널(Sink Channel)과 데이터를 읽어가는 소스채널(Source Channel)이 있다. 싱크채널에 데이터를 써주면 파이프를 통해 소스채널로 전달되고, 다른 스레드가 소스채널을 통해 데이터를 읽을 수 있다. Pipe pipe = Pipe.open(); 우선 파이프 객체를 가져온다. Pipe.SinkChannel sinkChannel = pipe.sink(); String data = "Send message"; ByteBuffer buffer = ByteBuffer.allocate(64); buffer.clear(); buffer.put(data.getBytes()); b.. 2021. 1. 6. Java NIO - 네트워크 입출력 (SocketChannel, ServerSocketChannel, DatagramChannel) Java NIO를 이용해서 네트워크 입출력을 구현할 수도 있다. 파일 입출력과 함께 핵심적인 기능이다. Java NIO에서 제공하는 네트워크 관련 채널은 다음과 같다. SocketChannel (TCP 클라이언트) ServerSocketChannel (TCP 서버) DatagramChannel (UDP 통신) 1. SocketChannel Java NIO는 SocketChannel을 통해 TCP 연결을 지원한다. SocketChannel을 만드는 방법에는 두 가지가 있다. connect() 메소드로 서버 연결 accept() 로 클라이언트 연결 SocketChannel channel = SocketChannel.open(); channel.connect(new InetSocketAddress("local.. 2021. 1. 5. 미라클모닝 1~12일차 - 6시 기상의 습관화 아침시간을 확보하고 루틴을 만드는 '미라클 모닝 프로젝트'를 시작한지 벌써 12일이 지났다. 가장 중점적으로 생각했던 것은 기상시간과 명상이었다. 신기하게도 명상을 하고 나니 아침시간을 옥죄고 있었던 잠들이 스르르 물러났다. 하지만 명상 중간중간 드는 잡생각들은 아직 수련이 부족하다는 것을 의미하는 것 같다. 기상시간 지난 12일 동안 기상시간을 사진으로 남겼다. 평일 아침 6시 기상을 하고, 휴일에는 좀 더 휴식을 취하기 위해 1시간 더 자는 것으로 했었다. 때문에 12월 25, 26, 27 연휴에는 7시에 일어났다. 하지만 저날도 아침 5시, 6시에 잠깐잠깐 깼었고, 기상 시간을 맞추기 위해서 다시 잠을 청했었다. 1월 1, 2, 3 연휴에는 그냥 아침 6시에 일어나버렸다. 그래도 잘 일어나진다. 미.. 2021. 1. 4. 이전 1 ··· 44 45 46 47 48 49 50 ··· 52 다음