개인 프로젝트 진행시 참고하기 위한 스프링 부트 프로젝트 생성 및 빌드, 실행까지 순서 정리 프로젝트 생성하기 1. https://start.spring.io/ 접속 2. 설정 1) Project - maven, gradle 상관은 없지만 우선 gradle 2) Language - Java로 선택(Kotlin 언젠가는 하겠지..) 3) Spring Boot - SNAPSHOT, M1, M2 등이 붙지 않은 가장 큰 숫자의 버전 4) Project Metadata - Group, Artifact 를 입력 (이미지 처럼 만드는 경우 com > example > demo 로 폴더 생성) 5) Packaging - Jar로 선택 6) Java - 11 버전 선택 7) Dependencies 추후에 추가 8) G..
자바 jdk가 이미 설치되어 있고 버전을 변경하려 할 때 적용하는 방법 자바 jdk 버전별로 다운받는 링크 블로그(감사합니다!) https://nhj12311.tistory.com/37 자바 11 설치 - https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html 자바 버전 변경하기 1) sudo vi ~/.bash_profile 입력하고 비번 입력 2) JAVA_HOME 경로 변경 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home 3) source ~/.bash_profile 입력 4) java -version 해서 변경된 버전 확..
프로그래머스에서 진행한 네이버 파이낸셜 개발자 채용 챌린지 코딩테스트 후기를 남겨보려 한다 이번 챌린지는 경력 1년 이상의 개발자를 대상으로 진행되었으며, FE의 경우 1,2차 과제테스트, BE의 경우 1차는 코딩테스트, 2차는 과제테스트로 진행되었다. 시험을 치던 당시 다른 준비로 알고리즘 공부를 많이 못하기도 했고 검색이 가능한 시험이라 검색을 잘 해보자는 마음으로 임했던 시험이었다. 시험은 토요일 오후 2시부터 4시까지 2시간동안 진행되었으며, 알고리즘 문제 4문제가 출제 되었다. 1번은 일자 별 고객의 방문 정보와 고객별 최대 쿠폰수 정보를 받아서 해당 기간동안 발급된 쿠폰 수를 리턴하는 문제였는데 map과 containsKey를 사용해서 10분만에 풀었다. 2번은 행렬의 정보가 주어지고 특정 규..
사이트 개발을 진행하다 보면 가끔 한번씩 등장하게 되는 기능이 바로 "엑셀 다운로드" 기능이다. 엑셀 다운로드의 셀 병합 기능과 관련된 속도 이슈와 이를 개선했던 경험을 써보려고 한다. EXCEL 라이브러리? 엑셀 업로드/다운로드 기능을 자바에서 사용하기 위해서는 대부분 POI 라이브러리를 사용하게 된다. POI에서 제공하는 엑셀 라이브러리는 대표적으로 HSSF, XSSF, SXSSF가 있다(매번 발음하기 너무 어렵다) 사용방법이나 예제의 경우 인터넷에 많으니 구글 검색을 추천.. 속도 이슈 발생기 기존에 회사 설문조사 결과를 엑셀로 다운로드 할 수 있는 기능이 있었는데 응답자 정보를 추가로 넣어 출력해주는 기능의 작업을 진행했었다. 그런데 기능 개선 이후 약 10달이 지난 시점, 설문 결과 다운로드를 ..
테이블마다 인덱싱을 잘 걸어주면 속도가 빠름~ 빠름~ 쿼리 속도가 늦어지는 이유는 뭘까? 컬럼수가 많거나 조인을 많이 하거나(테이블이 추가될 때마다 컬럼수가 +가 아니라 X로 적용됨) view를 사용하거나(테이블의 집합. 이미 많다..) 회사에서는 사용자가 많고 오래될 수록 테이블에 데이터가 쌓일 수 밖에 없다. 게다가 테이블이 엄청 많고 필요한 정보가 다 다른 테이블에 있어 조인이 필요하다면? 데이터가 적을 때는 primary key만으로도 인덱싱이 가능해서 문제가 되지 않겠지만, 데이터가 많아지게 되면 primary key만으로 인덱싱이 안된다. 또한 조회하는 테이블의 where 조건에 인덱스 값도 없고 primary key 값조차 존재하지 않는 경우 full scan이 발생하게 되므로 조회 속도에 ..