if1live space
archive
tags
GitHub
about
RSS
2023
12. 25
SQS 비용 지불하지 않고 AWS Lambda의 SQS 핸들러 호출하기
핸들러당 월400원 아끼겠다고 18개월 삽질하기
serverless
sqs
redis
12. 24
프리티어 서비스가 잠들지 않게 하기, 그리고 discord의 가능성
ayane 개발 포스트모템
serverless
free tier
discord
12. 23
localhost를 위한 serverless-standalone
localhost에서 AWS Lambda 흉내내기
serverless
08. 01
isEmpty(null)의 리턴 값은?
true, false, 그리고 제3의 선택
typescript
lodash
just
ramda
remeda
07. 30
순수 타입스크립트 라이브러리를 사용해야되는 이유, 그리고 ioredis
prototype의 함정
typescript
javascript
ioredis
prototype
07. 17
2023-07-17 일기: 응...시로코...내꺼
AWS Lambda와 도메인 충동 구매
diary
serverless
07. 10
방송대 포스트모템 - 전공
전공과 관련된 아무말
postmortem
knou
방통대
방송대
07. 09
방송대 포스트모템 - 비용
학사 학위 얻는 저렴한 길
postmortem
knou
방통대
방송대
07. 08
방송대 포스트모템 - 타임라인
스매시 레전드, 이제는 말할 수 있다
postmortem
knou
방통대
방송대
07. 08
방송대 포스트모템 - 동기
어쩌다 방송대 경제학과를 지원했나
postmortem
knou
방통대
방송대
06. 17
lodash 탈출기 - remeda의 틈을 막아라
just - dependency-free JavaScript utilities
typescript
lodash
just
06. 17
lodash 탈출기 - lodash의 대안과 결정
fp-ts vs ramda vs rambda vs FxTS vs radash vs remeda
typescript
lodash
remeda
06. 17
lodash 탈출기 - 왜 lodash에서 벗어나는가?
lodash를 탈출하는 이유, 그리고 가고 싶은 방향
typescript
lodash
03. 30
serverless-offline 없이 AWS Lambda 함수를 로컬에서 실행하는 방법
나만의 serverless-offline 만들기
serverless
02. 16
타입스크립트 interface에 정적 함수, 타입 끼워넣기
ESM 시대에 잊혀질 namespace, declaration merging 응용
typescript
interface
namespace
02. 07
타입스크립트의 배신 - property와 spread syntax
class + property + spread = FAIL
typescript
javascript
class
property
spread syntax
02. 02
2016년 hugo를 2023년 hugo로 마이그레이션 하기
v0.15에서 v0.110.0까지 hugo의 발전과 내 삽질
hugo
migration
post-mortem
01. 08
shiroko-kfcc 개발 포스트모템
새마을금고를 털!자
shiroko
kfcc
postmortem
2022
09. 25
TypeORM과 Knex 같이 쓰기
하나의 Mysql 연결을 TypeORM과 Knex에서 공유하기
typeorm
knex
mysql
08. 22
JWT를 사용해서 server-to-server API 없애는 안티패턴
인증, 로그인과 관계없는 JWT 이야기
anti-pattern
jwt
08. 20
serverless 배포하기 (5) 최소한의 설정파일로 타입스크립트 함수 배포하기
serverless
08. 20
serverless 배포하기 (4) 플러그인 안쓰고 타입스크립트 함수 배포하기
serverless
01. 15
타입스크립트 + Promise + async/await + Error = ???
컴파일은 되지만 런타임 동작을 보장하는건 아니라구요
typescript
javascript
promise
exception
error
2021
08. 12
serverless 배포하기 (3) serverless-webpack의 결함
serverless
08. 01
serverless 배포하기 (2) serverless-webpack 기반으로 배포 패키지 크기 줄이기
serverless
08. 01
serverless 배포하기 (1) serverless-webpack 초급
serverless-webpack으로 타입스크립트 프로젝트를 쉽게 배포하기
serverless
01. 02
2021년에 하는 2020년 회고
2020
2020
11. 14
2020년식으로 블로그 빌드 고치기
dep -> Go Modules, travis-ci -> GitHub Actions
migration
blog
11. 09
DBML: Database Markup Language
Entity-relation diagram as Code
diagram
11. 05
mermaid: diagram as code
텍스트로 그림 그리기
uml
diagram
10. 30
callbackWaitsForEmptyEventLoop와 AWS Lambda의 함정
즐거운 serverless의 세계
aws lambda
serverless
10. 29
타입스크립트로 API 명세 작성하고 서버/클라 stub 생성하기
Mapped Types와 Type inference in conditional types
typescript
api specification
07. 11
express에서 콘솔로 찍은 로그를 HTTP 응답에 붙이기
continuation local storage
express
logging
monkey patch
cls-hooked
07. 10
typeorm에서 repository.save() 호출할때 UPDATE 쿼리만 사용하기
custom repository + proxy
typeorm
07. 09
ioredis에 로깅 끼워넣기
라이브러리 코드 수정 없이 라이브러리 개조하기
ioredis
monkey patch
01. 02
타입스크립트와 호이스팅
오늘의 멍청한 코드
typescript
hoisting
01. 02
나의 백엔드 배포 환경 정책
어쩌다 이렇게 되었는가?
staging
stage
deployment
01. 01
serverless framework plugins
내가 쓰는 플러그인과 이유
serverless
2019
12. 29
2019년 마무리
아무것도 안했는데 벌써 2019년이 끝났어
2019
12. 28
타입스크립트와 순환 의존성
TypeError: class_X is not a constructor
typescript
circular dependency
circular reference
09. 21
NetFUNNEL 우회하기
대기없이 서민형 안심전환대출 신청하기
hack
netfunnel
08. 12
express에서 에러로 HTTP status code 통제하기
throw new createError.BadRequest()
express
javascript
http
web
07. 28
GraphQL에서는 어떤 HTTP status code를 사용할까?
아무도 관심갖지 않는 GraphQL 이야기 - part 1
graphql
07. 03
Jest 탈출기 - 타입스크립트 + Mocha
ts-node, tsc
testing
jest
mocha
07. 02
Jest 탈출기 - Mocha를 쓰자
Jest/Mocha 동시에 지원하기
testing
jest
07. 01
Jest 탈출기 - Jest는 느리다
jest는 왜 mocha보다 느린가?
testing
jest
mocha
06. 30
타입 안전한 express 앱 구현하기
타입스크립트를 쓰면 타입스크립트 사용법을 따르라
typescript
express
06. 29
월요일의 버그 - webpack-cli
오픈소스 뒤에 있는 것은 사람이다.
bug
webpack
javascript
02. 12
10년이면 강산도 변한다. 그리고 자바스크립트도
a.if 는 올바른 자바스크립트 코드인가?
02. 11
관대한 코드는 쉽게 망가진다
신기한 IE 구버전의 세계
design
specification
javascript
ie
02. 10
타입스크립트에서 절대경로 쓰기
typescript, absolute path, webpack, ts-node, jest
typescript
ts-node
jest
webpack
alias
02. 09
HTTP 요청에 body를 붙여서 보내면 어떤 일이 벌어질까? part 2
Java HttpURLConnection의 경우
http
design
01. 30
사람 생각하는건 비슷하다
나만 틀린건 아니었나보다
thinking
01. 19
yup로 입력 검증을 덜 귀찮게 처리하자
선언형 입력 검증 라이브러리
library
javascript
typescript
01. 15
HTTP GET 요청에 body를 붙여서 보내면 어떤 일이 벌어질까?
다양한 결정, 그리고 꽝
http
design
01. 13
django를 관리툴로 쓰자
서버를 둘로 나누자
django
design
01. 12
나는 글을 쓰는게 어렵다
글 쓰는게 어려운 것과 글 쓰는게 어려운 것은 다르다
article
01. 06
로그는 무죄
결제 로그를 남긴게 문제일까?
log file
01. 06
로그 파일은 좋다
log file
2018
12. 09
자바스크립트에서 expect(-3 % 3).toEqual(3 % 3)가 실패하는 이유
함정과 함정과 그리고 함정
javascript
jest
12. 07
OMR카드와 2진법
binary number system
10. 13
타입스크립트에서 if문 안에 promise가 들어가는 문제 피하기
lint + naming convention
typescript
lint
10. 09
실제 사례로 보는 warning.or.kr part 2
warning
censorship
08. 26
최상위 비트의 위치 찾는 방법
low-level을 이용해서 O(logN)으로 구현하기
c++
union
endian
08. 20
나머지 연산자 없이 x % (2의 거듭제곱) 계산하기
modulo operator
08. 18
나머지 연산자 없이 x % 256 계산하기
modulo operator
08. 16
-4 % 3 = ?
2 vs -1
mod
08. 15
윈도우에서 심볼릭 링크 만들기
NTFS의 함정
ntfs
symbolic link
08. 06
오늘은 3, 1, 4, 2로 10을 만들어 봅시다!
오버플로우는 버그가 아닙니다. 기능입니다
overflow
black magic
08. 05
나눗셈 연산을 곱셈으로 프로그래밍 할 수 있음?
즐거운 부동소수의 세계
floating-point
08. 04
나도 해보는 Fizz Buzz Test
printf의 리턴값은?
fizz-buzz
07. 30
12 ≦ x ≦ 0, 12 ≦ x ≦ 7
즐거운 C언어
c
useless
07. 10
실제 사례로 보는 warning.or.kr
warning
censorship
03. 10
Jupyter를 블로그에 적용하기
jupyter + maya + hugo
jupyter
blog
postmortem
03. 10
go get {command-line-tool} FAILED
dep가 나와도 해결되지 않는 golang의 문제
golang
package management
02. 23
크롬OS에서 같은 앱을 2개 이상 여는 방법
window.open()
chrome os
02. 11
한글 입력을 지원하는 크롬OS 터미널을 찾아서
발상의 전환, 생각보다 가까운 답
hangul
chrome os
2017
11. 24
100 * 0.7 = ?
남들과는 조금 다른 부동소수점 이야기
floating-point
11. 12
유니티 프로젝트 빌드 시스템 구축하기
크로스 플랫폼을 지탱하는 빌드 시스템 만들기
unity
build
10. 15
유니티 로그 뷰어, Sagiri
Web browser based Realtime Untiy3D Log viewer
unity
log
08. 20
GC없이 C# Dictionary에서 enum을 key로 쓰기
csharp
unity
c#
08. 17
C#에서 GC없이 enum을 int로 변환하기
csharp
unity
c#
optimize
08. 06
유니티에서 Switch Platform 안쓰고 크로스 플랫폼 지원하기
unity
technique
07. 29
Unity Launcher 소개
유니티 프로젝트에 대응하는 버전의 유니티를 실행하는 런처
05. 11
NDC 2017 <로보리콜> 포스트모템 정리
ndc
05. 02
Project Fumika, 중고책 처분 프로세스 개발기
중고책 팔아요
development note
04. 29
나의 warning.or.kr 검열기
No.1 온라인 개인정보거래소 Trade My Info, 검열당하다
trade my info
warning.or.kr
02. 20
유니티에서 에셋을 파일이름 기반으로 관리하는 편법
C# Attribute와 Reflection을 써서 노가다 줄이기
02. 13
[#if UNITY_EDITOR] 줄이는 편법
01. 30
int main() { #include "data.txt" return 0; }
다시 보는 include와 define, 그리고 X-Macro
black magic
x-macro
define
include
c
preprocessor
01. 22
유니티 게임객체, 프리팹에 주석 붙이는 편법
01. 22
MonoBehaviour를 더 좋게 만들어주는 라이브러리, VFW
MonoBehaviour -> BaseBehaviour
unity
library
2016
08. 28
Unity Scene Web Exporter 개발 포스트모템
WebVR로 가는 또 다른길
webvr
postmortem
08. 20
블로그를 Pelican에서 Hugo로 이사하기
파이썬 탈주 포스트모템
pelican
hugo
static site generator
postmortem
06. 05
윈도우에서 길고 아름다운 경로명을 사용하는 방법
prefix를 이용한 기법
techinque
prefix
05. 29
gksrmfdldkscuwudy 포스트모템
한글이 안쳐져요 (알파벳-두벌식 변환기)
postmortem
05. 16
고정소수점에서 2차원 벡터의 크기, 정규화된 벡터 계산하는 방법
DOOM에서 배우는 vector.length(), vector.normalize()
fixed point
vector
vector length
normalized vector
05. 16
Noto Sans Thai 올바르게 렌더링하는 방법
Mission: 크롬하고 똑같이 보이게 하라!
noto sans
noto sans thai
font
harfbuzz
freetype2
05. 15
DOOM에서 배우는 atan2(y, x) 구현
386, 486 에서도 돌아가는 atan2
fixed point
atan2
05. 14
golang 패키지 관리의 약점과 대응책
left-pad, 그것의 npm만의 문제인가? 그리고 golang의 해결법
golang
package management
05. 06
Maya (Markdown 전처리기) 포스트모템
Template -> Markdown Preprocessor -> Markdown
markdown
postmortem
05. 06
DOOM에서 배우는 각도 표현하는 방법과 sin, cos 구현법
386, 486 에서도 돌아가는 sin, cos
fixed point
sine
angle
05. 05
고정소수점 관련 자료
Fixed point related Links, References, etc
fixed point
03. 21
반복문, 재귀없이 터미널에 다이아 그리기
배열을 이용한 흑마법
black magic
array
loop
03. 19
delete this 이용해서 터미널에 삼각형 그리기
delete this + operator delete => recursion
black magic
destructor
delete
recursion
03. 17
Twitter Image Archive 개발 포스트모템
트위터 계정 폭파시키기 전에 짤 백업하기
twitter
postmortem
03. 06
printf("%s\n", NULL)의 출력 결과는?
undefined behavior과 compiler
c
c++
printf
undefined behavior
gcc
postmortem
03. 01
버그 삽질기 - 파이썬으로 구현한 API 서버 루비로 포팅하기
HTTP 요청 parameters를 이용하다 밟을수 있는 함정
python
ruby
bug
02. 25
존재하지 않는 키로 테이블에 접근하면?
파이썬 vs 루비 vs C++
python
ruby
cpp
hash
dictionary
map
table
key
02. 24
올바르지 않은 값을 정수로 변환하기 - 파이썬 vs 루비
같은 목적, 다른 언어, 다른 결과
python
ruby
integer
int
exception
02. 18
삽질로 알아보는 파이썬과 루비의 기본 매개변수
Default Argument X (Python, Ruby)
ruby
python
default argument
default parameter value
optional parameter
02. 14
예제로 보는 Python과 Ruby의 문법 차이 - Multiple Assignment
Multiple Assignment with (Python 2.x, Python 3.x, Ruby)
python
ruby
multiple assignment
01. 17
디버깅 포스트모템 - 박살난 소멸자
LLDB를 이용해서 버퍼 오버플로우 찾기
lldb
buffer overflow
buffer overrun
memory bug
debug
debugging
destructor
postmortem
2015
12. 20
Go language 첫인상
Go language 입갤
go
golang
11. 27
매크로 상수를 변경하기 쉽게 바꾸는 편법
globals.h 고쳐도 전체 빌드 안하기
define
constant
macro
refactoring
11. 08
아름다운 PHP array_search()
잘못된 API 설계를 통해 알아보는 여러가지 대안
array_search
api
api-design
11. 01
bit mask로 사람 낚기. (flags & MASK == MASK)
연산자 우선순위로 낚시하기. 그리고 회피법
bitmask
비트마스트
낚시
10. 25
HTML textarea의 개행문자는 무엇일까?
LF vs CRLF vs 상황에 따라 다르다 vs 충격과 공포
bug
html
textarea
newline
10. 07
스택 지역 변수의 주소값을 이용한 버그
Off-By-One Error를 이용한 무한루프 구현(?)
cpp
stack allocation
bug
local variable
voodoo magic
off-by-one
09. 17
Doge Math 개발 포스트모템
You do the math! You do the code!
postmortem
doge math
04. 27
코드에 반각/전각문자 넣어서 낚시하기
반각/전각 문자로 알아보는 고난도 낚시
전각
반각
halfwidth
fullwidth
낚시
04. 21
사람 낚는 strcmp()의 리턴타입 재설계하기
연산자 오버로딩의 입문
strcmp
04. 20
"foo" "bar" == "foobar"
String literal concatenation을 이용한 기법
string literal
04. 13
C++ TMP를 이용해서 2015년의 13일의 금요일 계산하기
흑마법의 세계에 어서오세요!
template metaprogramming
c++
cpp
TMP
템플릿 메타프로그래밍
2014
12. 08
Process Address Space
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
memory
12. 04
나는 unsigned가 싫어요
Youtube 강남스타일 MV 조회수가 32bit signed integer를 넘어간 시점에 다시 보는 unsigned의 가치
unsigned
overflow
12. 04
Linux File System
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
filesystem
12. 03
Ext2 File System
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
filesystem
ext2
12. 01
Memory Management
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
memory
11. 26
Memory Addressing
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
memory
memory address
11. 24
Kernel Synchronization
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
synchronization
11. 23
Signals
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
signal
11. 22
System Calls
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
system call
11. 21
Timing Measurements
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
timing
11. 10
C++에서 Python의 with statment 구현하기
cpp
10. 17
Linux Processes
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
process
study
10. 17
Linux Process Scheduling
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
schdeuling
scheduler
study
10. 17
Interrupt and Exceptions
2014년 2학기 시스템 프로그래밍 시험 공부
linux
system programming
interrupt
exception
study
08. 11
importd - Django as a micro-framework
d is for django
importd
django
web
08. 10
Django용 적절한 라이브러리 소개
쉽게 붙일 수 있는 적절한 라이브러리
django
library
05. 06
EZ430-Chronos 개발 후기
EZ430-Chronos 펌웨어 손보면서 배운것
ez430
03. 22
Awesome 3.5 install Guide for Ubuntu 13.10
awesome
02. 23
파이썬 엑셀 쓰기 라이브러리 비교
python
library
excel
xlsx
02. 05
한국형 반응형웹 프레임웍을 찾아서
왜 우리는 IE 7,8때문에 고통받아야 하는가?
ie7
ie8
ie
responsive web
02. 02
Trade My Info의 GA 통계
통계로 알아보는 국내 웹
web
fucking ie
trade my info
ga
02. 01
GitHub Pages와 travis-ci를 엮은 정적 블로그 자동화
github pages + travis-ci + etc
blog
static html generator
travis-ci
2013
12. 12
Wireless Latency Benchmark
Socket/Bluetooth의 지연시간 비교
latency
wireless
10. 27
2014년 오큘러스 트렌트 예측
내 멋대로 생각한 OculusRift 2014년 트렌드
oculus
10. 14
LibOVR에서 찾은 적절한 assert macro
어지간한 플랫폼에서 잘 굴러가는 assert macro
assert
macro
10. 12
OculusRift + 3D GUI 개발기록 part 1
OculusRift 지원하는 3D GUI 테스트로 만들어본 기록
ogre
oculus
gorilla
3d
gui
ui
10. 09
Build CEGUI 0.8.2 on Windows + OGRE
CEGUI 윈도우에서 컴파일하기
cegui
ogre
build
windows
09. 30
KGC 2013 오큘러스 세션 구경 소감
oculus
kgc
08. 26
irrlicht engine 사용기
irrlicht
08. 21
Oculus Rift 개발하면서 구경한 이상현상
gl
cg
oculus
07. 28
irrlicht-console sample
irrlicht
console
07. 20
Controller for Raspberry Pi + MPD
rpi
mpd
raspberry pi
06. 18
완벽한 싱글턴을 찾아서 - 테스트
singleton
unittest
test
testing
05. 25
eZ430-Chronos Google OTP 삽질기
otp
ez430
chronos
05. 19
나는 싱글턴이 싫어요
singleton
04. 27
셰이더 프로그래밍 입문 for GLSL
glsl
cg
shader
04. 21
3차원 공간에 2차원 객체 렌더링
opengl
gl
cg
text
billboard
04. 20
Simple Mesh Library
opengl
gl
cg
mesh
04. 19
Vincent Font Library
opengl
gl
cg
text
library
04. 17
OpenGL Text Library
opengl
gl
cg
text
library
04. 09
Raspberry Pi를 무선공유기로 쓰기
raspberry pi
access point
hostapd
raspbian
wireless
02. 12
C#에서 C++ DLL 사용하기
csharp
cpp
dll
pinvoke
02. 12
Box2D Common Module
box2d
02. 03
Python 2.x 한글 인코딩 관련 정리
python
hangul
encoding
01. 31
Flask Project 구조 예제
flask
project
python
01. 30
Django Project 구조 예제
django
project
python
01. 27
Uber Shader
cg
shader
01. 25
게임 좌표계에 대한 고찰
axis
gamedev
01. 25
memset로 클래스 초기화 쉽게 하기
cpp
01. 25
cocos2d-x 메모리 관리에 대한 간단한 정리
cpp
cocos2dx
01. 25
C#의 프로퍼티 C++에서 쓰기
cpp
property
01. 25
Box2d Stack Allocator
box2d
allocator
cpp
01. 25
Box2d Block Allocator
box2d
allocator
01. 25
auto_ptr을 썻는데 소멸자가 불리지 않는다?
cpp
2012
12. 31
이맥스 내장 한글입력기 사용하기 + 기본한글설정
emacs
12. 31
윈도우 환경에서 emacs HOME 디렉토리 변경하기
윈도우 환경에서 emacs HOME 디렉토리 변경하기
emacs
12. 18
집합 기반 태그 시스템 설계
set
tag
12. 08
윈도/ios/안드로이드를 커버할수 있는 PCH 구조 잡기
cpp
pch
12. 04
cocos2d-x 1.x->2.0으로 변하면서 바뀐 부분 :: CCPoint
cpp
cocos2dx
11. 30
플랫폼 매크로 추가 선언 없이 윈도/iOS/안드로이드 구분하는 매크로
cpp
cross platform
11. 28
C++ namespace 들여쓰기 방지하는 편법
cpp
namespace
indent
11. 27
C++ 다중상속(interface) 관련 삽질 자료
cpp
interface
casting
11. 26
생성자,소멸자 강제호출
C++에서 생성자/소멸자 강제로 호출하는 방법
cpp
2010
03. 11
Markdown Syntax Guide
markdown
css
html
03. 10
Rich Content
shortcodes
privacy
03. 09
Placeholder Text
markdown
text
03. 08
Math Typesetting
03. 05
Emoji Support
emoji
01. 03
Maya Test Page
Simple Maya Test
maya
sample-article
01. 02
Jupyter Test Page
Simple Jupyter Test
jupyter
sample-article
01. 01
Markdown Test Page
Simple Markdown Test
markdown
sample-article