전체 글

개발과 함께하는 일상을 그리는 블로그입니다.
들어가기 전에 엑셀 관련 추가적인 내용은 아래 포스팅에서 확인하실 수 있습니다. https://hojun-dev.tistory.com/entry/JAVA-POI-엑셀-오류 [JAVA] poi에서 엑셀을 다룰 때 발생하는 여러가지 오류 개요 사내 프로젝트를 개발할 때, 서식과 통계를 주로 다루는 시스템이다 보니 엑셀로 데이터를 다운로드하는 프로그램을 개발하는 경우가 많았다. 지금까지 Java poi 환경에서 엑셀을 다루며 오 hojun-dev.tistory.com 개요 대용량 데이터를 엑셀로 내보낼 때 Java POI에서는 XSSFWorkbook 대신에 SXSSFWorkbook을 사용한다. XSSFWorkbook은 메모리 상에 전체 엑셀 파일을 로딩하기 때문에 파일 크기가 큰 경우 OutOfMemoryEr..
· 일상
세상에는 열심히 사는 사람들이 참 많다. 백엔드 개발자로서 업무를 하다 보니 인력을 충원하기 위해 이력서를 검토할 일이 많이 생기는데, 신입 개발자의 이력서를 보다 보면 정말 다양한 이력들이 존재해서 새삼 놀라웠다. 리포터 일을 하던 사람, 군대 부사관이었던 사람, 큰 수술을 마치며 삶에 대한 고민을 하다가 개발자가 되기로 한 사람 등등.. 개발자는 수요가 많고 연봉이 높은 직업이라는 인식이 강해서 국비지원이나 부트캠프 광고도 정말 많이 하고 수강생들도 정말 많다. 개인적으로 개발자는 계속 코드만 보고 머리를 써야 하는 직업이기 때문에 일이 잘 맞지 않으면 오래 버티지 못할 거라고 생각하는데, 취업 시장 상황 때문에 개발 학원에 다니고 개발자가 되려는 사람이 많아지는 현실이 조금은 안타깝다. 나와 가까운..
· Javascript
들어가기 전에 맨 아래 '마치며' 섹션에 주소 검색 기능을 통해 바로 위도 및 경도를 확인할 수 있는 사이트를 만들어 링크를 걸어두었습니다. 필요하신 분은 아래 링크로 들어가서 자유롭게 이용해 주세요 :) 개요 개발을 하다 보면 지도를 만들고 주소를 지도에 표현해야 할 일이 자주 생긴다. 그러기 위해서는 주소 정보를 통해 위도 및 경도를 구해서 그 값들을 통해 지도 라이브러리와 연동을 해야 한다. 구하고자 하는 주소가 우편번호 서비스에서 가져오는 등 명확한 주소일 때에는 문제가 되지 않겠지만, 명확하지 않은 주소인 경우 위도 및 경도를 제대로 구할 수 없는 경우가 발생할 수 있다. 필자도 프로젝트에 참여하는 각 기관의 명단을 시스템에 업로드할 때, 명단 내의 주소가 오타가 있거나 광역 자치단체명을 생략하..
· 일상
면접 준비 연차가 3년차로 접어들면서 지금까지 첫 회사에서만 계속 개발을 하고 있다 보니 다양한 경험을 쌓고 싶다는 생각을 자주 했는데, 우연히 좋은 기회가 생겨 한 중견기업 회사에 면접을 보게 되었다. 면접을 본 회사에서는 신규 프로젝트를 위한 인력을 채용하고 있었고, 그래서 제로에서 서버 구축 및 세팅, 신규 개발을 해본 경험이 있고 잘할 수 있는 사람을 주로 원하는 분위기였다. 필자도 새로운 프로젝트를 구축하고 생성해 본 경험이 꽤 있었기 때문에 그런 내용에 맞춰서 이력서를 작성했고, 서류 합격을 하게 되어 면접까지 진행된 케이스였다. 필자는 첫 회사에 학교 연계형 인턴으로 입사하여 정규직 전환 이후 개발자가 되었기 때문에 제대로 된 개발 면접은 처음이었다. 그래서인지 더 긴장이 많이 됐지만 좋은 ..
개요 내가 개발하는 프로젝트가 서식과 통계를 주로 다루는 시스템이다 보니 엑셀로 데이터를 다운로드하는 프로그램을 개발하는 경우가 많았다. 지금까지 Java poi 환경에서 엑셀을 다루며 오류 해결에 시간을 많이 쏟았다 보니 다시는 동일한 문제로 시간을 소비하고 싶지 않아 겪었던 오류들 중 자주 마주칠 수 있는 내용이거나 알아두면 좋은 내용들을 정리하고자 포스팅을 남기게 되었다. 먼저 엑셀을 다루기 위해 poi를 설치한다. 필자는 5.0.0 버전을 사용하였다. 참고로 2007년 이후의 엑셀을 대응하기 위해서는 poi-ooxml도 필수로 설치해주어야 한다. /* build.gradle */ // https://mvnrepository.com/artifact/org.apache.poi/poi implement..
개요 사용자가 작성한 서식을 엑셀로 다운로드하는 부분을 개발하는데, 기존 프로젝트에는 QueryDsl에서 읽어 들일 때 JSON의 각 필드에 JSON_EXTRACT만 사용하여 나온 결과를 String 형식으로 저장 후 해당 문자열에 값이 있는지를 판별하는 식으로 작업되어 있었다. 중복 선택이 가능한 필드의 경우 배열에서 1 값을 찾을 때, "[1, 2]"라는 문자열 내에 "1"이라는 문자가 있는지 확인하는 방식이다. 해당 방식의 가장 큰 단점은 저장해야 할 값이 10 이상일 때 발생하는데, 0~9 내에서는 문자가 중복되지 않아 기능 상으로는 문제가 없으나 10 이상의 값이 생기면 1을 찾을 때 10이라는 값이 있어도 true를 반환하게 되는 등의 이슈가 발생한다. 프로젝트를 개발하는 과정에서 해당 경우가..
· 일상
시작 회사 내에서 개발자 동료들과 같이 협업을 할 때, 각자 공부한 지식들을 공유하면서 업무를 진행해야 하는 경우가 많이 생기는데, 그럴 때마다 동료들이 자신의 개발 블로그 포스팅을 공유하는 경우가 잦았다. 또한 나도 개인적으로 공부한 내용이나 얻은 지식들을 notion으로만 정리하는 데에 불편함을 많이 느끼고 있었고, 공유하기에도 어려움이 많았다. 그러한 이유로 큰맘 먹고 개발 블로그를 시작하게 되었다. 플랫폼 고민 개발자가 아닌 나의 지인들은 일상 공유하는 플랫폼으로 naver를 주로 사용하는데, 개발자인 나로서는 구글에서 잘 검색이 되지 않고, 개발 관련 내용을 정리하기에 한계가 크다는 점 등 단점이 너무 명확하기 때문에 후보군에도 들지 못했다. 나의 기준에 개발 관련 내용을 잘 정리할 수 있고 대..
hojun-dev
개발 일상