본문 바로가기

General

[번역] 성급한 추상화에 관하여 - AHA Programming (Kent C. Dodds) 번역 안내 이 글은 원본 영상을 @ysm0622 님의 추천으로 알게된 후, 발표자 Kent C. Dodds 님의 허락을 받고 번역하였습니다. AHA Programming 오늘은 당신이 이미 알고 있는 DRY 프로그래밍 원칙, WET 프로그래밍 원칙은 제쳐두고 AHA 프로그래밍에 대해서 얘기해보려고 합니다. 주) DRY: Don't Repeat Yourself WET: Write Everything Twice AHA: Avoid Hasty Abastraction 우리는 추상화(Abstractions)가 어떻게 시작되고 어떻게 끝나는지 라이프사이클을 살펴보고, 추상화를 신중하게 하는 것이 왜 중요한지에 대해 생각해볼 것입니다. 만들어진 예시이지만 그래도 충분히 공감하실 수 있을 거라 생각됩니다. 또, San.. 더보기
엑셀 자동화 - 구글 스프레드시트 매크로로 데일리 플래너 만들기 + 2022.07.30. 글 하단에 시트제작 강의안내 및 쿠폰코드 추가해두었습니다. 일정관리 플랫폼 유랑자로서 작년에도 이리저리 떠돌다 하반기에는 구글 스프레드시트를 위클리 플래너로 활용했었다. 월요일부터 일요일까지 한눈에 볼 수 있고 스크롤해서 전주랑 다음 주 일정을 볼 수 있어서 좋았다. 역시 뭔가 아쉬웠지만 나름대로 쓸 만했다. 이따금씩 반복적인 복붙이 필요했지만 신경 쓰일 정도는 아니었다. 올해 초, 우연히 이지영 스타강사님의 '30분 시간관리법'에 대해 듣고 흥미를 갖게 되었다. 사전기록은 최대한 러프하게 하고, 30분 단위로 시간을 어디에 썼는지 사후기록을 해서 낭비되는 시간을 점검하고 또 최소화할 수 있는 시간관리법이다. 내 일상에는 30분보다 호흡이 짧은 일들이 많아서 20분으로 적용해보고.. 더보기
VS Code 필수 초기 설정 - 기본설정부터 익스텐션까지 새 컴퓨터를 장만했거나 이직을 해서 새 노트북을 지급받았거나 혹은 어느 천사가 미래를 응원하며 노트북을 선물해줄 경우(Thank you, Steve🙏) 에도 컴퓨터를 새로 세팅하는 과정이 필요하다. 이 글에서는 그중에서도 VS Code의 초기 세팅에 대해서 정리해보려고 한다. 1. 기본 설정 Settings에서는 자동 저장 설정, 인덴트 설정, 서체 설정 외 다양한 설정을 할 수 있다. [Code-Preferences-Settings]로 들어가거나 cmd + , 를 누른다. 우선, Auto Save옵션을 onFocusChange로 바꾸어 에디터에서 포커스가 벗어나는 순간 작성내용이 자동으로 저장되도록 했다. 이렇게 해두면 매번 cmd + S 를 누르지 않아도 터미널에서 바로 변경된 내용으로 컴파일을 할 .. 더보기
맥북 자동화 - 키보드 마에스트로(Keyboard Maestro) 시작하기 키보드 마에스트로는 다양한 작업을 자동화해주는 맥OS 기반의 응용프로그램이다. Automator 보다 배우기도 더 쉽고, 더 다양한 기능을 지원한다고 한다. 한 쪽에 작성된 문서 다른 쪽에 자동으로 옮겨주기, 원하는 자료를 정기적으로 인쇄하기, 지정된 태그 일괄 입력해주기, 선택한 문장에 대해 구글 번역기 돌려서 붙여넣어주기, 참고문헌의 제목 저자 페이지 등을 자동으로 적어주기, 파일 이름 일관성 있게 변경하기 등... 이 모든 것이 단축키 하나로 가능해진다. 30일 동안 체험판을 사용할 수 있고 이후에는 구매해서 사용해야 한다. 구매가는 $36이고 한화로는 부가세 포함해서 약 4.6만원이다. 체험판은 이곳에서 다운로드할 수 있다. 초기 설정 키보드마에스트로 '에디터'는 말 그대로 우리가 매크로를 생성하.. 더보기
오픈소스 제대로 알고 쓰자 "이 코드... 그냥 갖다 써도 될까요?" 오픈소스는 그냥 갖다 써도 되는걸까? 결론부터 말하면 그럴 수도 있고, 아닐 수도 있다고 한다. 모든 프리웨어가 공짜로 사용이 가능한 것과 달리, 오픈소스는 마다 조건이 다르기 때문에 확인이 필요하다. 프리웨어 vs 오픈소스 프리웨어와 오픈소스의 차이점을 아이스크림을 먹는 것에 비유하면 다음과 같다. 프리웨어(freeware) 오픈소스(open source) 아이스크림 먹는거는 무조건 공짜 아이스크림 껍질에 '공짜로 먹어도 된다'거나 '토핑을 추가할 경우에만 돈을 내야한다'거나, '무조건 돈내고 먹어야 한다'는 등의 조건이 써있음 지금이야 일상적으로 오픈소스를 접하지만, 사실 오픈소스가 세상에 등장한 건 90년대 후반의 이야기이다. 1980년대 GNU의 창립자 '리처드 스톨먼'은 소스코드를 공개해서 누구.. 더보기
레이캐스팅 튜토리얼 5. Wolfenstein 3D 텍스처 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) (→이동) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) (→이동) 5. 보충 Wolfenstein 3D 텍스처 Wolfenstein의 3D 텍스처 텍스처를 생성해서 사용하는 대신 이미지를 가져와 봅시다! 다음 8 개의 텍스처는 실제 Wolfenstein 3D에서 가져온 것으로, ID Software에 저작권이 있습니다. 여기에서 텍스처를 다운로드 할 수 있습니다. 텍스처 패턴을 생성하는 코드만 다음과 같이 바꿔주면 사용할 수 있습니다. 사용 시 텍스처 파일의 경로가 올바르게 설정되었는지 체크하세요. //generate some tex.. 더보기
레이캐스팅 튜토리얼 4. 예제코드로 이해하는 레이캐스터 구현 (textured) 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) (→이동) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) 5. 보충 Wolfenstein 3D 텍스처 (→이동) 예제코드로 이해하는 레이캐스터 구현 (textured) 예제코드 전체보기 : raycaster_textured.cpp 텍스처를 표현한 레이캐스터 는 텍스처 없이 색상만 표현한 레이캐스터와 그 핵심은 거의 같습니다. 마지막 즈음에 텍스처와 관련된 계산을 좀 더해주는 것과 각 픽셀이 어떤 텍셀(texel, texture pixel) 값을 갖는지 결정해주기 위해 모든 픽셀을 통과하는 y방향 반복문 이 추가됩니다. 이번에는 verL.. 더보기
레이캐스팅 튜토리얼 3. 예제코드로 이해하는 레이캐스터 구현 (untextured) 1. 입문 레이캐스팅이 뭐야? (→이동) 2. 기초 아주 기본적인 원리 (→이동) 3. 중급 예제코드로 이해하는 레이캐스터 구현 (untextured) 4. 고급 예제코드로 이해하는 레이캐스터 구현 (textured) (→이동) 5. 보충 Wolfenstein 3D 텍스처 (→이동) 예제코드로 이해하는 레이캐스터 구현 (untextured) 예제코드 전체보기 : raycaster_flat.cpp 레이캐스터의 기본이 되는 텍스쳐 없이 색상만 표현한 레이캐스터 (Untextured Raycaster) 부터 시작하겠습니다. FPS 카운터 (fps : frames per second, 초당 프레임)도, 이동/회전을 위한 충돌감지 기능이 있는 입력키 (input key)도 다룹니다. #define mapWidth.. 더보기