4.1 데드락 식사하는 철학자 문제(dining philosophers problem)는 데드락을 설명하는 유명한 예제이다. 여기서 설명하는 데드락의 원리는 다음과 같다. 왼쪽 포크가 비기를 기다렸다가 왼쪽 포크를 사용할 수 있는 상태가 되면 포크를 든다. 오른쪽 포크가 비기를 기다렸다가 오른쪽 포크를 사용할 수 있는 상태가 되면 포크를 든다. 식사를 한다. 포크를 테이블에 놓는다. 단계 1로 돌아간다. 데드락(deadlock) : 서로 자원(포크)이 비는 것을 기다리며 더 이상 처리가 진행되지 않는 상태 철학자 2명일 때 데드락 동시에 2명의 철학자가 왼쪽 포크를 들어 올린 뒤 오른쪽 포크를 계속 기다리게 되므로 더이상 처리가 진행 X 식사하는 철학자 문제는 스테이트 머신(state machine)에서..
지난 Part 1. 에 이어서 호치민 여행일기를 작성해 본다. DAY 2 (9/28) 호치민을 여행하면서 쌀국수를 참 많이 먹었다. 베트남어로 포(Phở) 라고 부르는데, 거의 하루에 한 번 씩은 쌀국수를 먹었다. 점심 : 포 헝 (Pho Hung) 사이공 우체국까지 보고 점심은 여기서 먹었다. 부이비엔 거리까지 그랩을 타고 가서 간 포 헝(Pho Hung) 이라는 식당이었다. 식당은 관광객들이 많이 다녀간 곳 답게 빠른 회전률과 분주함이 가득했다. 조용한 곳에서 천천히 식사를 하길 원하는 사람들에게는 추천하지 않는다. 테이블마다 라임, 야채 등이 손님이 없을 때에도 기본으로 깔려 있는 점이 신기했다. 우리는 기본적인 쌀국수 메뉴들을 시켰다. 사이즈는 스몰(S), 라지(L)가 있는데 10,000동 정도 ..
나는 지난 9월 추석 연휴 기간을 이용해서 4박 6일 베트남 호치민과 달랏 여행을 다녀왔다. 조금 늦었지만 여행을 다녀온 기록을 블로그에 정리해 보려고 한다. DAY 1 (9/27) 추석 연휴에 가는 여행이라 비행기 표는 2월 설날 즈음에 예약을 했었다. 베트남 항공의 이코노미 석을 예약했고, 그 때 기준으로도 왕복 기준 인당 60만원 대 정도가 나왔다. (여행 직전으로 가면서는 가격이 점점 올라서 우리가 지불한 비용의 2배 정도까지 올라갔던 것으로 알고 있다.) 여담으로 이 때 비슷한 기간, 가격대의 여행지로 몽골 울란바토르, 태국 방콕, 인도네시아 발리 등을 고려했었다. 결국 항공 일정과 여행 프로그램 등을 고려해서 30대 초반 남자 넷이 즐겁게 가성비 있게 갔다올 수 있는 곳이 베트남이라고 판단해서..
나는 평소에 개발 관련 서적을 많이 읽는 편이다. 서점에 가서 보기도 하고 지인들에게 추천을 받아 읽기도 한다. 그러던 중 최근에 눈길을 끄는 제목의 프론트엔드 개발 서적 한 권을 우연히 만나게 되었다. 바로 이 책이다. 나는 현재 회사에서 타입스크립트와 리액트로 웹 프론트엔드 개발을 하고 있다. 사실 이 스택은 나 뿐만 아니라, 굉장히 많은 회사에서 이미 표준으로 자리잡고 있는 스택이라 웹 프론트엔드 개발자로 취업을 하길 희망하는 취준생에게는 필수적이라고 보아도 과언이 아닐 것이다. 하지만 시중에 많은 리액트, 타입스크립트 책을 봐온 나로서는 아쉬운 점이 있었다. 크게 두 가지인데 첫 번째는 책이 너무 두꺼웠고, 두 번째는 책이 너무 어려웠다. 대부분 아쉬운 점은 1번 아니면 2번, 아니면 둘 다였다...
지난 10월 28일 나는 테오콘(TEOConf)이라는 주니어 웹 프론트엔드 개발자 컨퍼런스에서 발표를 했었다. 라는 주제로 내가 올 해 상반기에 회사에서 개발을 했었던 프로젝트 관련된 이야기를 가지고 테크 세션 발표를 진행했다. 프론트엔드 주제의 기술 발표는 처음이었어서 많이 긴장되고 떨렸는데, 다 끝나고 나서는 참 하길 잘했다는 생각이 들었다. 이번 글에서는 내가 첫 기술 주제의 발표를 어떻게 시작하게 되었고, 어떤 과정을 통해 준비했는지, 그리고 그 가운데서 느낀 점들을 솔직하게 풀어 가 보고자 한다. 기술 컨퍼런스 발표에 대한 갈망 내가 개발을 처음 공부하기 시작했던 2018년, 처음으로 개발 컨퍼런스란 곳을 가 보았다. 당시 코엑스에서 했었던 DEVIEW 라는 네이버 개발자 컨퍼런스였다. 솔직히 ..
이 블로그 포스팅은 마이크로소프트 기술블로그에 나온 타입스크립트 5.0 버전 변경사항 글을 참고하여 작성했습니다. 데코레이터(Decorators) 데코레이터는 클래스와 클래스 요소(메서드, 프로퍼티 등)들을 재사용 가능한 방법으로 사용자 지정할 수 있도록 지원하는 곧 출시될 ECMA스크립트 기능이다. class Person { name: string; constructor(name: string) { this.name = name; } greet() { console.log(`Hello, my name is ${this.name}.`); } } const p = new Person("Ray"); p.greet(); greet 메서드는 간단하지만, 더 복잡해질 수 있다고 가정한다. 아마 비동기 로직이 있을..
3~5월에는 이전보다 일정이 많아져서 책을 읽을 수 있는 시간과 여유가 부족해졌다. 합쳐서 6권 정도의 책을 읽었다. 5권은 개인적으로, 1권은 회사에서 읽었다. 1. 피로 사회 ⭐️⭐️⭐️⭐️한병철 저 / 인문, 사회 분야 독일에서 오랫동안 철학을 하셨던 한병철 철학자님의 성과주의 사회에 대한 깊은 통찰이 담긴 책. 자신의 능력과 성과를 통해서 주체로서의 존재감을 확인하려는 자아는 피로해지고, 스스로 설정한 요구에 부응하지 못하는 좌절감은 우울증을 낳는다는 주장이 특히 공감되었다.발터 벤야민은 깊은 심심함을 "경험의 알을 품고 있는 꿈의 새"라고 부른 바 있다. ... 이완의 소멸과 더불어 "귀 기울여 듣는 재능"이 소실되고 "귀 기울여 듣는 자의 공동체"도 사라진다. "귀 기울여 듣는 재능"은 깊은 ..
이 글의 목적 여러 뎁스로 중첩된 오브젝트 형태로 구성된 상태를 불변하게 유지하는 방법에 대해 고민이 있는 웹 프론트엔드 개발자가 참고할 수 있는 사례를 공유하기 위함 로직이 복잡하고 사이드 이펙트가 많이 발생할 수 있는 코드를 적절한 도구로 간결하고 명확하게 작성하는 방법에 고민이 많은 웹 프론트엔드 개발자에게 인사이트를 주기 위함 이 글의 예상 독자 react와 typescript로 웹 프론트엔드 개발을 하는 엔지니어 기본적인 react, typescript에 대한 선수 지식이 있다고 가정하고 설명 인트로 내가 속한 팀에서 담당하고 있는 웹 프로덕트는 현재 context로 상태를 관리하고 있으며, form 형태의 페이지는 react-hook-form 이라는 라이브러리를 사용하고 있다. 그리고 유효성 ..