Builder.shin
Backend
426개의 게시물
Java
Java 8 Optional 실전 사용기
레거시 프로젝트에 Java 8을 도입하면서 Optional을 본격적으로 사용하기 시작했다. NPE를 줄이기 위해 적용한 패턴들과 주의할 점을 정리했다.
2017년 7월 28일
Java
Java 8 Stream API로 컬렉션 처리 리팩토링
레거시 코드베이스의 반복문을 Stream API로 전환하는 과정을 정리했다. 가독성은 좋아졌지만 성능 측면에서 주의할 점이 있었다.
2017년 7월 23일
Java
Java 8 Stream API에서 예외 처리 패턴
Stream API를 사용하다 보면 람다 내부에서 checked exception 처리가 까다롭다. 실무에서 사용하는 몇 가지 패턴을 정리했다.
2017년 7월 21일
Python
Django ORM N+1 쿼리 문제 해결
회사 대시보드 페이지 로딩 속도가 3초 이상 걸려 원인을 분석했다. Django ORM에서 발생한 N+1 쿼리 문제였고, select_related와 prefetch_related로 해결했다.
2017년 7월 19일
Python
Python 2에서 3으로 마이그레이션하며 겪은 문제들
레거시 Django 프로젝트를 Python 2.7에서 3.6으로 마이그레이션했다. unicode 처리와 라이브러리 호환성 문제가 주요 이슈였다.
2017년 7월 5일
Node.js
Node.js 비동기 에러 핸들링과 Promise 체이닝
Express 미들웨어에서 비동기 에러가 제대로 잡히지 않아 서버가 종료되는 문제가 발생했다. Promise 체이닝과 에러 핸들링 패턴을 정리하며 해결했다.
2017년 7월 2일
Python
Python 3.6 f-string으로 문자열 포매팅 개선하기
기존 프로젝트의 % 포매팅과 .format()을 f-string으로 전환했다. 가독성과 성능 모두 개선되었고, 특히 로깅 코드가 훨씬 간결해졌다.
2017년 6월 25일
Java
Java 8 Optional 제대로 사용하기
프로젝트에서 NullPointerException을 줄이기 위해 Optional을 도입했다. 하지만 팀원들이 잘못된 방식으로 사용하는 경우가 많아 정리가 필요했다.
2017년 6월 17일
Node.js
Node.js 8에서 util.promisify로 콜백 함수 Promise화하기
Node.js 8에 새로 추가된 util.promisify를 업무에 적용해봤다. 콜백 기반 API를 Promise로 변환하면서 코드 가독성이 크게 개선되었다.
2017년 6월 6일
Node.js
Node.js 8 LTS 릴리스와 async/await 도입
Node.js 8이 LTS로 릴리스되면서 async/await을 프로덕션에서 사용할 수 있게 되었다. 콜백 지옥에서 벗어나 비동기 코드를 동기 코드처럼 작성하는 방법을 정리했다.
2017년 5월 27일
Previous
1
More pages
39
40
41
42
43
Next
카테고리
Builder.shin