로컬 개발 환경에 HTTPS 세팅 방법 (apache)

최초 작성 시 동작하지 않던 문서를 보강했습니다.처음 이 방법을 따라 했을 때 HTTPS가 정상 동작하지 않았다.원인을 추적해보니 설정에 몇 가지 빠진 부분이 있었고, 아래 본문에 그 보강 내용을 반영했다.실패 원인 요약은 맨 아래 “실패 원인과 보강 포인트” 에 따로 정리해두었다...
로컬 개발 환경에 HTTPS 세팅 방법 (apache) 자세히 보기

앱 푸시 GCM -> FCM 적용하기 (FCM ADMIN) 버전 업데이트

FCM 공식 가이드 참고GCM/FCM type의 API가 2024년 6월 20일부로 서비스가 종료된다는 소식을 들었다. 당장 앱 푸시를 전송하기 위해서는 라이브러리를 교체해야 한다. 심지어 기존에 사용하던 GCM 라이브러리는 Maven에서 다운로드조차 되지 않는 상황이었다. 갑...
앱 푸시 GCM -> FCM 적용하기 (FCM ADMIN) 버전 업데이트 자세히 보기

로컬 임시 저장 파일 업로더 만들기

게시판 CMS 프로젝트를 하다가 게시판 생성을 하되 모든 데이터는 한꺼번에 업로드를 시켜야 한다는 기획 조건을 받았다. 사용자가 작성하는 다른 데이터는 복잡하긴 하지만 자바스크립트로 어떻게든 만들었는데파일을 임시저장하는 것은 구현해본 적이 없어서 정리 했다.(사실 이런 것도 프론트...
로컬 임시 저장 파일 업로더 만들기 자세히 보기

프로그래머스[2020 KAKAO BLIND RECRUITMENT] / 문자열 압축

프로그래머스 링크카카오 문제 답게 문제 해석이 어렵고 반례에 많은 함정이 숨겨저 있다.내가 해석한 풀이 과정은 다음과 같다. 문자열을 1개 이상의 단위로 잘라라 -> 단, 잘라지지 않을 경우 남은 부분은 버리지 말고 뒤에 붙여라 문자열을 자를때 무조건 같은 단위로 자를...
프로그래머스[2020 KAKAO BLIND RECRUITMENT] / 문자열 압축 자세히 보기

프로그래머스[PCCE 기출문제] 9번 / 이웃한 칸

프로그래머스 링크문제의 의도는 이차원 배열의 길이를 체크하면서 넘어가는 것이였을 것이라고 생각하지만 굳이 그렇게 할 필요는 없어보인다.예외 처리를 이용하여 Exception이 발생하면 결과를 무시하는 방식으로 수정하였다.문제 코드class Solution { public ...
프로그래머스[PCCE 기출문제] 9번 / 이웃한 칸 자세히 보기

자주 나오는 보안 검수 대응

프로젝트 오픈을 하면서 보안 검수를 받게 되었다.작업을 하다보니 비슷한 사례가 계속 나와서 어떻게 대응하였는지 리스트를 정리하려고 한다.1. 쿠키 속성 검사 - sameSite크롬 80 버전부터 새로운 쿠키 정책이 들어와서 쿠키에 samesite 설정이 권장되었다.쿠키를 만들때마다...
자주 나오는 보안 검수 대응 자세히 보기

URL 주소를 넣고 파일 다운로드 하기 (Spring, FileUtils)

프로젝트 중 파일의 경로를 직접 노출하면 안 된다고 하여 파일 다운로드 컨트롤러를 만들었다.당연히 고도화시킬 수 있을 것 같지만 일단은 간단하게 파일 경로를 찾아가서 다운로드하도록 구성했다.파일 타입 상관없이 내려준다.1. 소스코드 @GetMapping("/download/f...
URL 주소를 넣고 파일 다운로드 하기 (Spring, FileUtils) 자세히 보기

JPA에서 원하는 항목만 바로 뽑아 사용하기 (dto mapping, projection, transform)

JPA를 사용하면서 개발을 할 때 DB를 찾아보는 일이 줄어들었고 대부분의 경우 엔티티만 생각하면서 코딩을 할 수 있어 편리했지만MyBatis와 달리 엔티티에서 원하는 데이터만 뽑아서 표시할 수 없어 서비스 영역에서 DTO 매핑을 해줘야 하는 것이 귀찮았다. 조금 찾아 보니 JPA...
JPA에서 원하는 항목만 바로 뽑아 사용하기 (dto mapping, projection, transform) 자세히 보기

트러블슈팅 - 트래픽이 급격하게 늘어났을때 해결방법(JPA + MSSQL)

아이돌에 투표하는 이벤트 방송의 투표 시스템을 만들게 되었다. 기존에는 메인 프로젝트 안에서 컨트롤러를 추가해서 개발했는데 이번에는 작은 시스템이기도 하고 제작진에서 시스템분리를 적극적으로 원해서 아예 별도의 마이크로 시스템으로 시스템을 변경하게 되었다.간단한 거라고 생각했던 시스...
트러블슈팅 - 트래픽이 급격하게 늘어났을때 해결방법(JPA + MSSQL) 자세히 보기

단일 실행되는 jar maven 빌드 설정하기 (dependency 포함)

프로젝트에서 싱글 배치 기능을 만들게 되었다. 처음에는 스프링 프로젝트로 제작하다가 빌드된 프로그램을 다른 배치 프로그램에서 실행시키기 위해서 스프링 프로젝트가 아닌 일반 java 프로젝트로 혼자 실행가능한 jar 파일로 빌드하기로 하였다.우여곡절 끝에 빌드를 했는데 클래스가 없다...
단일 실행되는 jar maven 빌드 설정하기 (dependency 포함) 자세히 보기

JAVA에서 API로 전달 받은 zip binary 파싱(feat. DART API 고유번호)

토이 프로젝트로 증권 데이터를 받아서 분석하는 프로젝트를 만들고 있다. 증권정보는 증권사 API를 이용하거나 네이버 증권 등 페이지를 크롤링해도 되지만 증권사 API는 대부분 자바와 리눅스(맥) 환경에 적합하게 되어 있지 않아서 개발 환경 세팅이 힘들고 네이버 증권 페이지를 크롤링...
JAVA에서 API로 전달 받은 zip binary 파싱(feat. DART API 고유번호) 자세히 보기