inhibitor.log development log

inhibitor.log

development log

WebGPU와 Compute Shader - Image Blur 알고리즘 살펴보기

WebGPU는 WebGL을 이을 차세대 웹 그래픽스 기술입니다. 특히 기본 렌더링 파이프라인에 대한 shader 프로그래밍만 지원하는 WebGL과 달리, compute shader API를 지원하여 GPU에서 다양한 작업을 수행할 수 있습니다.

리팩터링 2판 - 인상깊은 부분 요약

리팩터링 2판 - 마틴 파울러에서 인상깊은 부분을 발췌했습니다.

클린 코드 - Case Study: 모듈 리팩토링

Clean code

PPP - Clean Code 라는 책을 읽고, 책에서 다루는 case study에서 기술하는 대로 직접 모듈 리팩토링을 진행한 후기를 전해드립니다.

Clean code는 너무 좋은 책이고 배울 것이 많습니다. 책을 읽으면서 진행하던 사이드 프로젝트의 코드가 떠올랐습니다. 책을 한 챕터씩 읽어나갈 때마다 프로젝트를 다 날리고 처음부터 작성하고 싶은 마음이 커져만 갔습니다. 하지만 이 책의 저자인 로버트 C. 마틴이 설명하는 것처럼, 깔끔한 코드는 규모가 어느 정도 있는 프로젝트에서는 한 번에 만들어지는 것도 아니며, 한 번 청소했다고 절대 깨끗하게 유지되지 않습니다. 새로운 코드를 작성하고, 기존 코드를 수정할 때마다 항상 작성한 코드를 리팩토링하고, 읽기 쉬운 코드로 만들어야 합니다. (보이스카우트 원칙) 이러한 마음가짐으로 만들던 사이드 프로젝트에서 모듈 하나를 가져와, clean code에서 지적하는 점들을 고치며 리팩토링을 해보았습니다.

내리막길 (downhill)

문제

당신은 세로 M, 가로 N 크기 격자판의 맨 왼쪽 위에 공을 올려놓았다. 공은 당연하게도 높은 곳에서 더 낮은 곳으로 굴러 떨어진다. 격자판의 높이가 아래 그림처럼 주어졌을 때, 공이 맨 왼쪽 위에서 맨 오른쪽 아래로 굴러갈 수 있는 경우의 수를 구하시오.

전깃줄 II (wire)

이전 글: 전깃줄 I

전깃줄 I 문제에서 제시한 재귀함수 풀이는 글로 읽었을 때는 그럴듯해 보이지만, 실제로 구현해 보면 풀이에서 제시한 시간복잡도 O(N2)보다 더 오랜 시간이 소요됩니다. 이 글에서는 재귀함수 구현의 문제점을 알아보고 풀이를 개선할 수 있는 방법에 대해 다룹니다.