전체 글

전체 글

    [한.권.컴.구] Ch1. 컴퓨터 내부의 언어 체계

    0. 들어가며 P34 자바는 부분적으로 당시 널리 쓰였던 C 프로그래밍 언어를 본떠 만들어졌다. C에는 메모리 자동 관리가 없었고, 메모리 관리 오류는 당시 프로그래머에게 자주 두통을 일으키게 하는 오류였다. 자바는 언어 설계를 통해 이러한 종류의 오류(메모리 관리 관련 오류)를 없앴다. 이것이 자바가 초보자에게 좋은 언어가 된 이유 중 하나다. 하지만 좋은 프로그래머와 좋은 프로그램을 탄생시키려면 좋은 프로그래밍 언어 이상의 것이 필요하다. 그리고 자바로 인해, 디버깅하기 더 어려운 새로운 버그 종류가 생겨났음이 드러났다. 이런 버그 중에는 감춰진 메모리 관리 시스템으로 인해 생긴 형편없는 성능이 포함된다. P36 요즘 프로그래밍은 미디를 사용하는 것처럼 되고 있다. 더 이상 프로그램을 작성하기 위해 ..

    [동시성 프로그래밍] Ch3. 동기 처리 1 (하)

    3.5 조건 변수 어떤 조건을 만족하지 않는 동안에는 프로세스를 대기 상태로 두고 조건이 만족되면 대기 중인 프로세스를 실행하고 싶을 때가 있다. 예를 들면 교차로의 신호등을 떠올릴 수 있는데, 이와 같은 신호등을 동시성 프로그래밍 세계에서는 조건 변수라고 부르며, 조건 변수를 기반으로 프로세스의 대기를 수행한다. 다음 코드는 Pthreads를 이용한 조건 변수의 예다. Pthreads에서는 pthread_cond 계열 타입과 함수를 이용해 조건 변수를 구현한다. 이 코드에는 어떤 데이터를 생성하는 프로세스와 생성된 데이터를 소비하는 프로세스가 있으며, 데이터를 소비하는 프로세스는 데이터가 생성될 때까지 대기한다. #include #include #include #include pthread_mutex ..

    Junction Asia 2022 해커톤 후기

    지난 8월 중순, 부산에서 열린 정션 아시아 2022 해커톤을 다녀왔다. 개인적으로 오프라인 해커톤을 3년만에 다녀왔는데, 너무 즐겁고 인상적이었다. 비록 코로나가 아직 완전히 종식된 것은 아니지만.. 이런 행사가 앞으로도 자주자주 생기길 바라는 마음을 담아서 해커톤 후기를 작성해 본다. 서막 때는 2022년 6월 말, 페이스북을 보다가 우연하게 정션 아시아를 한다는 광고를 처음 보게 되었던 것 같다. 대회를 나가고 싶었고 사전에 팀을 꾸려서 나가고 싶어서 보자마자 페북, 링크드인, 슬랙 채널 등등에 팀을 구한다는 글을 바로 올렸다 감사하게도 내가 참여하고 있는 글또 커뮤니티 분들이 빠르게 응답을 주셨고, 넥스터즈라는 IT 연합 동아리 분도 연락을 주셔서 다섯 명 팀 빌딩은 완료되었다. 나는 이런 팀빌딩..

    [로지텍] 인체공학 버티컬 마우스 LIFT 내돈내산 후기

    오늘은 로지텍 버티컬 마우스 LIFT에 대한 내돈내산 후기를 적어보려 한다. 회사에서 트랙패드를 쓰고 있었는데, 집에서 재택 근무를 할 일이 많고 매번 트랙패드를 들고 왔다갔다 하기가 힘들어서 집에서 쓸 마우스를 하나 구매하기로 마음을 먹었다. 로지텍 마우스는 이전에 MX Anywhere 2S 를 처음 써봤는데 너무 좋았고 그래서 고민을 많이 하지 않고 로지텍에서 다시 구매를 하기로 했다. 그리고 일반 마우스는 오래 썼을 때 손목이 아프고 손가락도 무리가 가는 것 같아서 버티컬 마우스를 알아보기 시작했다. 가장 먼저 본 모델은 MX Vertical 모델이었다. 정가 기준 129,000원이고 벌크 모델은 9만원 대로도 구매를 할 수 있는 제품이다. 그리고 원래는 버티컬 마우스 라인업이 이 모델만 있는 줄 ..

    [Ringle] 튜터 피드백 정리 (December 2021)

    December/01/2021 (8.75) It is responsible for government -> It is the responsibility of the government Responsible - the quality of a person Responsibility - thing Disposable income: income remaining after deduction of taxes and social security charges, available to be spent or saved as one wishes. With the advent of the pandemic, the economy has taken a hard hit. Employment rates have dropped a..

    Next.js의 SSR, SSG, Dynamic Routing 알아보기

    Next.js 프레임워크는 Data Fetching 시에 SSR(Server-side Rendering), SSG(Static-site Generation), 그리고 Dynamic Routing 등의 세 가지 방법을 제공한다. 각각의 방법에 대해서 하나씩 깊게 알아보고 언제 어떻게 써야 하는지 사용법을 공부해 보고자 한다. SSR(Server-side Rendering) 만약 어떤 페이지에서 getServerSideProps 함수를 호출하면, Next.js는 getServerSideProps에서 데이터를 반환받을 때 마다 이 페이지를 pre-rendering 할 것 이다. export async function getServerSideProps(context) { return { props: {}, //..

    Reflow와 Repaint에 대하여

    내가 자주 헷갈리는 개념인 reflow와 repaint에 대해서 공부한 내용을 정리해 보려고 한다. 브라우저 렌더링 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다. 여기서 자원은 일반적으로 HTML 문서이지만, 다른 형태의 파일(e. g. 이미지, PDF 등)일 수도 있다. 브라우저는 HTML과 CSS 명세에 따라 HTML 파일을 해석하여 표시하는데 이 명세는 웹 표준화 기구인 W3C에서 정한다. 브라우저의 주요 구성 요소는 다음과 같다. 사용자 인터페이스 : 요청한 페이지를 보여주는 창 제외한 나머지 모든 부분 (e.g. 북마크, 주소 표시줄 등) 브라우저 엔진 : 사용자 인터페이스와 렌더링 엔진 사이의 동작 제어 렌더링 엔진 : 요청한 콘텐츠 표시. 예를 들..

    [웹 프론트엔드 인터뷰] #4. useCallback과 useMemo는 언제 어떻게 사용하나요?

    오늘은 많은 분들이 사용은 하지만 헷갈리기 쉬운 useCallback과 useMemo에 대해서 이야기를 해볼까 합니다. 실제로 웹 프론트엔드 개발자 면접 질문에서 신입/경력 구분없이 단골로 나오는 인터뷰 주제 중 하나이기도 해요. 먼저 React 공식 문서에는 useCallback과 useMemo가 다음과 같이 설명이 나와 있어요. useCallback : Returns a memoized callback. 메모이제이션된 콜백을 반환한다. useMemo : Returns a memoized value. 메모이제이션된 값을 반환한다. 이 문장만 읽어서는 이해가 쉽지가 않습니다. 조금 더 살펴보도록 하겠습니다. useCallback과 useMemo 둘 다 공통적으로 가지고 있는 속성은 메모이제이션(Memoi..