[Java] 당신이 SimpleDateFormat 을 쓰지 말아야 할 이유

Why need to not use SimpleDateFormat? 들어가기에 앞서 제목이 좀 자극적이었나요? 전혀 자극적이지 않습니다. 엄밀하게는, production 에 SimpleDateFormat 을 쓰면 안되는 이유입니다. 더 엄밀하게는, multi-thread 환경에서 사용하면 안되는 이유입니다.   SimpleDateFormat 이란? Java7 에서 제공하는 (locale sensitive 한) SimpleDateFormat 클래스는 더보기…

[Chrome] 시스템의 hosts 정보를 변경했는데 즉각 반영되지 않을때

들어가기에 앞서 프론트엔드 개발자분들이 주로 겪을 법한 상황입니다.   /etc/hosts 혹은 drivers/etc/hosts 파일로 host 정보를 바꾸었는데, 크롬에서 아무리 새로고침해도 해당사항이 반영되지 않을 때의 조치사항입니다. 이럴 때 대부분 개발자 분들이 secret 창을 띄우거나 다른 브라우저를 사용하는데, context 를 유지해야하는 경우 해당 더보기…

[Spring] Excel Download 구현 – AbstractXlsxView 커스터마이징 하기

들어가기에 앞서 관리자 혹은 유지보수 툴에서는, 화면에 보여지는 데이터를 Excel 파일 형식으로 다운받을 일이 많다. 흔히 Excel Controller (API Gateway의 일종으로 이름은 그냥 관용적인 표현인 듯)에서 요청을 받으면, 주어진 조건에 맞는 데이터를 xlsx 파일로 만들어 응답해주는 형태로 구성된다. 현재 진행하는 더보기…

[MySQL] Transaction Isolation Level

들어가며 JPA로 비즈니스 로직을 작성하던 중, 동시성 문제를 해결하기 위해 Transaction Isolation 에 대해 좀 더 찾아보게 되었습니다. 다양한 DBMS가 있지만 접근하기 쉬운 MySQL의 Transaction Isolation Level 에 대해 정리하고, 이를 JPA 에서 어떻게 활용할 수 있는지 알아보겠습니다.   Transaction 더보기…

[VCS] Git Branching Strategy – Git flow

들어가기에 앞서 학생 시절 VCS에 무덤덤했고, 단순히 master 브랜치에서 반복되는 커밋으로 체계적이지 못한 버전관리를 하고 있었습니다. 어느 순간 현업에서 일을하며 자연스럽게 Git-flow를 적용하고 있었고, 오늘은 Git Branching Strategy 중 하나인 Git flow에 대해 나누고자 합니다. 조금 더 정확하게는, 개념과 workflow를 더보기…

[JPA] JPQL사용중 LAZY fetch 가 안될 때

발단 복잡한 관계 매핑이나 Native SQL에 가까운 쿼리를 유도해야할때에, JPA Repository 만으로 해결이 힘든 경우가 있다. (보통 가능은 하나, 코드가 지저분해진다) 위와 같은 상황에서 비즈니스 로직을 작성하던 중 있던 일이다.  ORM에서 1:M의 OneToMany 관계를 매핑할때는 보통 지연 가져오기를 Fetch 전략으로 더보기…

스크린 고장난 스마트폰(안드로이드 기기) 백업하기

1. 배경 액정유리를 비롯한 디스플레이부는 생각보다 튼튼하지만 우리가 사용하는 시간과 들고다니는 정도를 감안하면, 액정 고장이 흔한일임을 알 수 있습니다. 출처: http://goodluckboss.com/what-to-do-with-a-broken-iphone-6s6s-plus-screen-your-options-for-replacing-or-not-replacing-a-shattered-iphone-screen/ 위 정도만 고장났어도 복구하는데 어려움은 없습니다. 오늘의 주제는 아예 보이지도 않는, 액정이 나가버린 스마트폰(안드로이드 기기)을 백업하는 방법에 대해서 알아보겠습니다. (정확하게는 더보기…