From 376ab466b4d218a5ce093de2314c3eae9e14232f Mon Sep 17 00:00:00 2001 From: Daeram Chung Date: Fri, 3 Nov 2023 01:00:33 +0900 Subject: [PATCH] =?UTF-8?q?[merge]=20LandingPage=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EB=B0=8F=20=EB=B0=B0=ED=8F=AC=20=EC=9C=84=ED=95=9C=20=EC=9E=94?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95=20(#133)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs #1: README 작성 * docs #1: Issue, PR 템플릿 추가 * docs: Design docs 추가 * vault backup: 2023-10-10 15:52:14 * vault backup: 2023-10-10 16:53:21 * vault backup: 2023-10-10 19:11:15 * chore: docs repo로 이동 및 gitignore 추가 * chore: Git commit template 추가 * #1 fix: 멤버 소개 테이블 오타 수정 * [feat] 소셜 로그인 기능 구현 (#31) * #2 feat: 프로젝트 초기화 (#12) * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 한국 투자증권 open api 연결 (#29) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * [feat] 포트폴리오 목록 조회 구현 (#38) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * [feat] 포트폴리오 목록 조회 구현 (#37) * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * [fix] 포스트맨 변경 사항 반영 (#57) * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [fix] 포트폴리오 목록 조회 응답 수정 (#64) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#67) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [fix] 포트폴리오 상세 조회시 손익 공식 개선 (#70) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * [feat] 웹소켓 연결 및 포트폴리오의 실시간 데이터 응답 구현 (#80) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#82) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * FE 기능 개발 merge (#84) * chore: Dependency 설치 및 프로젝트 초기화 * chore: Mock 초기화 * chore: vscode settings unignore * chore: React query 설치 및 설정 * feat: Router 설정 * feat: API response 및 status 타입 정의 * feat: SignUpPage 세팅 * chore: README 초기화 * docs: FE 브랜치 전략 수정 * [feat] Home/Dashboard 구현 (#13) * #5 feat: Nav Compound Component로 구현 * #5 feat: TickerTape 위젯 컴포넌트화 * #5 feat: Search 컴포넌트 구현 * #5 feat: UserControls 컴포넌트 구현 * #5 feat: Header 컴포넌트 구현 * #5 feat: Footer 컴포넌트 구현 * #5 feat: Dashboard UI 구현 * #5 feat: DateRange 추가 * #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정 * #5 refactor: a태그 url 상수 사용 * #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정 * #5 feat: Dropdown 컴포넌트 Compound Component 구현 * #5 refactor: PR 피드백 반영한 수정 * #5 refactor: NavBar,Dropdown 수정 * [feat] SignUpPage 구현 (#26) * #4 fix: ProtectedRoute, PublicOnlyRoute 수정 * #4 chore: vite-tsconfig-paths 설치 * #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가 * #4 chore: Path alias 추가 * #4 design: GlobalStyles 및 기본 css 적용 * #4 chore: Utils path alias 추가 * #4 feat: BasePage 구현 * #4 design: BasePage 구현 * #4 design: Sign up SubPage 구현 * #4 feat: NicknameSubPage 구현 * #4 feat: EmailSubPage 구현 * #4 feat: PasswordSubPage 구현 * #4 feat: VerificationCodeInput 컴포넌트 구현 * #4 feat: VerificationSubPage 구현 * #4 feat: Sign up MainSubPage 구현 * #4 feat: SignUpPage 구현 * [feat] my profile page 구현 (#27) * #11 refactor : route 관련 임시 작성 * #11 feat : 콤마 추가하는 유틸함수 구현 * #11 feat : MyProfilePage 구현 - App.tsx에 path 문제 수정 - PortfoliosPage 구현 - ProfileEditPage 구현 * #11 rename : profile 관련 파일 구조 변경 * #11 refactor : 변수, 함수 네이밍 피드백 반영 * merge dev-fe into fe/feat/#11-myProfile-page * #11 refactor : MyProfilePage 리팩토링 - 불필요한 state 제거 - MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트 --------- Co-authored-by: Daeram Chung * [feat] WatchlistPage 구현 (#28) * #24 refactor: TVTickerTape function 형식으로 수정 * #24 feat: WatchlistPage 구현 * #24 refactor: NavBar props 형식 수정 * #24 comment: 주석 삭제 * #24 refactor: 심볼 구성 변겅 * #24 chore: 드래그앤드롭 라이브러리 설치 * #24 refactor: PR 리뷰 피드백 반영 * [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34) * #30 refactor: currentValue 컴포넌트로 분리 * #30 feat: Portfolio Pie Chart 구현 * #30 feat: 총 자산 형황 추이 Line Chart 구현 * #30 style: 불필요한 console log 삭제 * #30 chore: 의존성 추가 및 주석처리 * #30 refactor: PR 피드백 반영한 수정 * [feat] OAuth SignIn 구현 (#42) * #4 feat: Sign up data에 passwordConfirm field 추가 * #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가 * #4 fix: useText 초기값 validate 적용 * #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용 * #4 feat: Email verification code api 및 mock 추가 * #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가 * #4 feat: Signup nickname 중복 체크 기능 추가 * #4 feat: Signup email 중복 체크 기능 추가 * #4 feat: Signup password confirm mismatch 에러 메시지 추가 * #4 feat: Signup email verification code 요청 추가 * #4 feat: Google SignIn 추가 * #4 feat: Popup window 구현 * #4 feat: Kakao 로그인 버튼 구현 * #4 feat: Naver 로그인 버튼 구현 * #4 style: console.log 제거 * #4 fix: Window.naver doesn't exist type error * #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용 * #4 refactor: Env variables 상수화 * PortfolioPage API 공유를 위한 PR (#53) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * Dependencies 공유를 위한 PR (#59) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * [feat] 포트폴리오 페이지 차트 영역 구현 (#60) * #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정 * #52 feat: 포트폴리오 종목별 파이차트 구현 * #52 feat: 월 배당금 막대 그래프 구현 * #52 feat: 섹터 Bar 구현 * #52 refactor: 데이터 받는 구조 수정 * #52 feat: 포트폴리오 페이지에 완성된 차트 조합 * #52 refactor: PR 피드백 반영한 수정 * #52 refactor: PR 피드백 반영한 수정 * [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * #44 rename: textValidators -> authInputValidators 파일명 변경 * #44 feat: validateDateFormat util 함수 추가 * #44 fix: import path 수정 * #44 feat: Portfolio 매입이력 수정 컴포넌트 구현 * #44 fix: Auth query key import 수정 * #44 chore: package.json 수정 * #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경 * #44 feat: Portfolio holding purchase add api 및 mutation 추가 * #44 feat: Portoflio holding purchase add 틀 구현 * #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정 * #44 feat: Portfolio holding purchase edit api 및 mutation 추가 * #44 fix: Portfolio holding purchase edit mutation key 수정 * #44 feat: Portfolio holding purchase delete api 및 mutation 추가 * #44 feat: Portfolio holding add api 및 mutation 추가 * #44 feat: Portfolio holding delete api 및 mutation 추가 * #44 style: 종목 삭제 버튼 todo 주석 추가 * [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72) * #39 feat : Portfolio base Page 구현 * #40 refactor : MUI 문제 해결 - @emotion/react, @emotion/styled 패키지 추가 - tsconfig resolve 삭제 - main에 StyledEngineProvider 추가 * #40 feat : 모달 관련 공용 컴포넌트 구현 - Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현 - Confirm, PortfolioModal 구현 * #40 feat : MUI를 활용한 ToggleSwitch 구현 * #40 refactor : 포트폴리오 data에 securitiesFirm 추가 * #40 feat : PortfolioOverview 컴포넌트 구현 * #40 rename : Confirm -> ConfirmAlert으로 변경 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : 불필요한 useEffect 제거 --------- Co-authored-by: Daeram Chung * style: Package.json 쉼표 제거 * chore: 누락된 dependencies 설치 및 기타 수정 * [chore] Husky 및 lint-staged setup (#78) * #76 chore: Husky, lint-staged 설치 및 설정 * #76 chore: Fix invalid husky pre-commit hook name * #76 fix: Type error 처리 * fix: ESLint unnamed export default 수정 * feat: 차트 분류 퍼센티지 표기 --------- Co-authored-by: bakhacode Co-authored-by: Jay * [Fix] Build error 수정 (#86) * chore: Dependency 설치 및 프로젝트 초기화 * chore: Mock 초기화 * chore: vscode settings unignore * chore: React query 설치 및 설정 * feat: Router 설정 * feat: API response 및 status 타입 정의 * feat: SignUpPage 세팅 * chore: README 초기화 * docs: FE 브랜치 전략 수정 * [feat] Home/Dashboard 구현 (#13) * #5 feat: Nav Compound Component로 구현 * #5 feat: TickerTape 위젯 컴포넌트화 * #5 feat: Search 컴포넌트 구현 * #5 feat: UserControls 컴포넌트 구현 * #5 feat: Header 컴포넌트 구현 * #5 feat: Footer 컴포넌트 구현 * #5 feat: Dashboard UI 구현 * #5 feat: DateRange 추가 * #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정 * #5 refactor: a태그 url 상수 사용 * #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정 * #5 feat: Dropdown 컴포넌트 Compound Component 구현 * #5 refactor: PR 피드백 반영한 수정 * #5 refactor: NavBar,Dropdown 수정 * [feat] SignUpPage 구현 (#26) * #4 fix: ProtectedRoute, PublicOnlyRoute 수정 * #4 chore: vite-tsconfig-paths 설치 * #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가 * #4 chore: Path alias 추가 * #4 design: GlobalStyles 및 기본 css 적용 * #4 chore: Utils path alias 추가 * #4 feat: BasePage 구현 * #4 design: BasePage 구현 * #4 design: Sign up SubPage 구현 * #4 feat: NicknameSubPage 구현 * #4 feat: EmailSubPage 구현 * #4 feat: PasswordSubPage 구현 * #4 feat: VerificationCodeInput 컴포넌트 구현 * #4 feat: VerificationSubPage 구현 * #4 feat: Sign up MainSubPage 구현 * #4 feat: SignUpPage 구현 * [feat] my profile page 구현 (#27) * #11 refactor : route 관련 임시 작성 * #11 feat : 콤마 추가하는 유틸함수 구현 * #11 feat : MyProfilePage 구현 - App.tsx에 path 문제 수정 - PortfoliosPage 구현 - ProfileEditPage 구현 * #11 rename : profile 관련 파일 구조 변경 * #11 refactor : 변수, 함수 네이밍 피드백 반영 * merge dev-fe into fe/feat/#11-myProfile-page * #11 refactor : MyProfilePage 리팩토링 - 불필요한 state 제거 - MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트 --------- Co-authored-by: Daeram Chung * [feat] WatchlistPage 구현 (#28) * #24 refactor: TVTickerTape function 형식으로 수정 * #24 feat: WatchlistPage 구현 * #24 refactor: NavBar props 형식 수정 * #24 comment: 주석 삭제 * #24 refactor: 심볼 구성 변겅 * #24 chore: 드래그앤드롭 라이브러리 설치 * #24 refactor: PR 리뷰 피드백 반영 * [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34) * #30 refactor: currentValue 컴포넌트로 분리 * #30 feat: Portfolio Pie Chart 구현 * #30 feat: 총 자산 형황 추이 Line Chart 구현 * #30 style: 불필요한 console log 삭제 * #30 chore: 의존성 추가 및 주석처리 * #30 refactor: PR 피드백 반영한 수정 * [feat] OAuth SignIn 구현 (#42) * #4 feat: Sign up data에 passwordConfirm field 추가 * #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가 * #4 fix: useText 초기값 validate 적용 * #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용 * #4 feat: Email verification code api 및 mock 추가 * #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가 * #4 feat: Signup nickname 중복 체크 기능 추가 * #4 feat: Signup email 중복 체크 기능 추가 * #4 feat: Signup password confirm mismatch 에러 메시지 추가 * #4 feat: Signup email verification code 요청 추가 * #4 feat: Google SignIn 추가 * #4 feat: Popup window 구현 * #4 feat: Kakao 로그인 버튼 구현 * #4 feat: Naver 로그인 버튼 구현 * #4 style: console.log 제거 * #4 fix: Window.naver doesn't exist type error * #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용 * #4 refactor: Env variables 상수화 * PortfolioPage API 공유를 위한 PR (#53) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * Dependencies 공유를 위한 PR (#59) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * [feat] 포트폴리오 페이지 차트 영역 구현 (#60) * #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정 * #52 feat: 포트폴리오 종목별 파이차트 구현 * #52 feat: 월 배당금 막대 그래프 구현 * #52 feat: 섹터 Bar 구현 * #52 refactor: 데이터 받는 구조 수정 * #52 feat: 포트폴리오 페이지에 완성된 차트 조합 * #52 refactor: PR 피드백 반영한 수정 * #52 refactor: PR 피드백 반영한 수정 * [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * #44 rename: textValidators -> authInputValidators 파일명 변경 * #44 feat: validateDateFormat util 함수 추가 * #44 fix: import path 수정 * #44 feat: Portfolio 매입이력 수정 컴포넌트 구현 * #44 fix: Auth query key import 수정 * #44 chore: package.json 수정 * #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경 * #44 feat: Portfolio holding purchase add api 및 mutation 추가 * #44 feat: Portoflio holding purchase add 틀 구현 * #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정 * #44 feat: Portfolio holding purchase edit api 및 mutation 추가 * #44 fix: Portfolio holding purchase edit mutation key 수정 * #44 feat: Portfolio holding purchase delete api 및 mutation 추가 * #44 feat: Portfolio holding add api 및 mutation 추가 * #44 feat: Portfolio holding delete api 및 mutation 추가 * #44 style: 종목 삭제 버튼 todo 주석 추가 * [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72) * #39 feat : Portfolio base Page 구현 * #40 refactor : MUI 문제 해결 - @emotion/react, @emotion/styled 패키지 추가 - tsconfig resolve 삭제 - main에 StyledEngineProvider 추가 * #40 feat : 모달 관련 공용 컴포넌트 구현 - Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현 - Confirm, PortfolioModal 구현 * #40 feat : MUI를 활용한 ToggleSwitch 구현 * #40 refactor : 포트폴리오 data에 securitiesFirm 추가 * #40 feat : PortfolioOverview 컴포넌트 구현 * #40 rename : Confirm -> ConfirmAlert으로 변경 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : 불필요한 useEffect 제거 --------- Co-authored-by: Daeram Chung * style: Package.json 쉼표 제거 * chore: 누락된 dependencies 설치 및 기타 수정 * [chore] Husky 및 lint-staged setup (#78) * #76 chore: Husky, lint-staged 설치 및 설정 * #76 chore: Fix invalid husky pre-commit hook name * #76 fix: Type error 처리 * fix: ESLint unnamed export default 수정 * feat: 차트 분류 퍼센티지 표기 * style: 아직 안쓰는 변수 주석 및 기타 처리 --------- Co-authored-by: bakhacode Co-authored-by: Jay * [fix] 포트폴리오 목록 조회 및 상세 조회 수정 (#88) (#89) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: cors 설정 (#90) * [fix] 로그인 응답 결과 변경 (#92) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [fix] 중복된 리스너 제거 (#97) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * [feat] 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#100) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#111) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [fix] 코드 충돌 해결 (#112) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [fix] cors 설정 (#114) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * [fix] webMvc 애노테이션 제거 (#115) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * [fix] @EnableWebMvc 제거 (#116) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * [fix] @EnableWebMvc 제거 (#117) * [fix] corsFilter 추가 (#118) * [feat] 포트폴리오 실시간 데이터 조회 변경 (#119) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * #22 fix: @EnableWebMvc 제거 * #22 fix: corsFilter 추가 * #22 refactor: 주식 현재가 구독-발행 변경 - 기존 각각의 currentPrice 구독이 아닌 포트폴리오 단위로 변경 * [feat] 웹소켓 연결 엔드포인트 변경 (#120) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * #22 fix: @EnableWebMvc 제거 * #22 fix: corsFilter 추가 * #22 refactor: 주식 현재가 구독-발행 변경 - 기존 각각의 currentPrice 구독이 아닌 포트폴리오 단위로 변경 * #22 feat: 웹소켓 엔드포인트 연결 url 변경 - stock -> portfolio * [fix] 브로드캐스팅 문제 해결 (#122) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * #22 fix: @EnableWebMvc 제거 * #22 fix: corsFilter 추가 * #22 refactor: 주식 현재가 구독-발행 변경 - 기존 각각의 currentPrice 구독이 아닌 포트폴리오 단위로 변경 * #22 feat: 웹소켓 엔드포인트 연결 url 변경 - stock -> portfolio * #121 fix: 브로드캐스팅 오타 수정 * [feat] (#125) * chore: Dependency 설치 및 프로젝트 초기화 * chore: Mock 초기화 * chore: vscode settings unignore * chore: React query 설치 및 설정 * feat: Router 설정 * feat: API response 및 status 타입 정의 * feat: SignUpPage 세팅 * chore: README 초기화 * docs: FE 브랜치 전략 수정 * [feat] Home/Dashboard 구현 (#13) * #5 feat: Nav Compound Component로 구현 * #5 feat: TickerTape 위젯 컴포넌트화 * #5 feat: Search 컴포넌트 구현 * #5 feat: UserControls 컴포넌트 구현 * #5 feat: Header 컴포넌트 구현 * #5 feat: Footer 컴포넌트 구현 * #5 feat: Dashboard UI 구현 * #5 feat: DateRange 추가 * #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정 * #5 refactor: a태그 url 상수 사용 * #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정 * #5 feat: Dropdown 컴포넌트 Compound Component 구현 * #5 refactor: PR 피드백 반영한 수정 * #5 refactor: NavBar,Dropdown 수정 * [feat] SignUpPage 구현 (#26) * #4 fix: ProtectedRoute, PublicOnlyRoute 수정 * #4 chore: vite-tsconfig-paths 설치 * #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가 * #4 chore: Path alias 추가 * #4 design: GlobalStyles 및 기본 css 적용 * #4 chore: Utils path alias 추가 * #4 feat: BasePage 구현 * #4 design: BasePage 구현 * #4 design: Sign up SubPage 구현 * #4 feat: NicknameSubPage 구현 * #4 feat: EmailSubPage 구현 * #4 feat: PasswordSubPage 구현 * #4 feat: VerificationCodeInput 컴포넌트 구현 * #4 feat: VerificationSubPage 구현 * #4 feat: Sign up MainSubPage 구현 * #4 feat: SignUpPage 구현 * [feat] my profile page 구현 (#27) * #11 refactor : route 관련 임시 작성 * #11 feat : 콤마 추가하는 유틸함수 구현 * #11 feat : MyProfilePage 구현 - App.tsx에 path 문제 수정 - PortfoliosPage 구현 - ProfileEditPage 구현 * #11 rename : profile 관련 파일 구조 변경 * #11 refactor : 변수, 함수 네이밍 피드백 반영 * merge dev-fe into fe/feat/#11-myProfile-page * #11 refactor : MyProfilePage 리팩토링 - 불필요한 state 제거 - MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트 --------- Co-authored-by: Daeram Chung * [feat] WatchlistPage 구현 (#28) * #24 refactor: TVTickerTape function 형식으로 수정 * #24 feat: WatchlistPage 구현 * #24 refactor: NavBar props 형식 수정 * #24 comment: 주석 삭제 * #24 refactor: 심볼 구성 변겅 * #24 chore: 드래그앤드롭 라이브러리 설치 * #24 refactor: PR 리뷰 피드백 반영 * [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34) * #30 refactor: currentValue 컴포넌트로 분리 * #30 feat: Portfolio Pie Chart 구현 * #30 feat: 총 자산 형황 추이 Line Chart 구현 * #30 style: 불필요한 console log 삭제 * #30 chore: 의존성 추가 및 주석처리 * #30 refactor: PR 피드백 반영한 수정 * [feat] OAuth SignIn 구현 (#42) * #4 feat: Sign up data에 passwordConfirm field 추가 * #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가 * #4 fix: useText 초기값 validate 적용 * #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용 * #4 feat: Email verification code api 및 mock 추가 * #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가 * #4 feat: Signup nickname 중복 체크 기능 추가 * #4 feat: Signup email 중복 체크 기능 추가 * #4 feat: Signup password confirm mismatch 에러 메시지 추가 * #4 feat: Signup email verification code 요청 추가 * #4 feat: Google SignIn 추가 * #4 feat: Popup window 구현 * #4 feat: Kakao 로그인 버튼 구현 * #4 feat: Naver 로그인 버튼 구현 * #4 style: console.log 제거 * #4 fix: Window.naver doesn't exist type error * #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용 * #4 refactor: Env variables 상수화 * PortfolioPage API 공유를 위한 PR (#53) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * Dependencies 공유를 위한 PR (#59) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * [feat] 포트폴리오 페이지 차트 영역 구현 (#60) * #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정 * #52 feat: 포트폴리오 종목별 파이차트 구현 * #52 feat: 월 배당금 막대 그래프 구현 * #52 feat: 섹터 Bar 구현 * #52 refactor: 데이터 받는 구조 수정 * #52 feat: 포트폴리오 페이지에 완성된 차트 조합 * #52 refactor: PR 피드백 반영한 수정 * #52 refactor: PR 피드백 반영한 수정 * [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * #44 rename: textValidators -> authInputValidators 파일명 변경 * #44 feat: validateDateFormat util 함수 추가 * #44 fix: import path 수정 * #44 feat: Portfolio 매입이력 수정 컴포넌트 구현 * #44 fix: Auth query key import 수정 * #44 chore: package.json 수정 * #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경 * #44 feat: Portfolio holding purchase add api 및 mutation 추가 * #44 feat: Portoflio holding purchase add 틀 구현 * #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정 * #44 feat: Portfolio holding purchase edit api 및 mutation 추가 * #44 fix: Portfolio holding purchase edit mutation key 수정 * #44 feat: Portfolio holding purchase delete api 및 mutation 추가 * #44 feat: Portfolio holding add api 및 mutation 추가 * #44 feat: Portfolio holding delete api 및 mutation 추가 * #44 style: 종목 삭제 버튼 todo 주석 추가 * [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72) * #39 feat : Portfolio base Page 구현 * #40 refactor : MUI 문제 해결 - @emotion/react, @emotion/styled 패키지 추가 - tsconfig resolve 삭제 - main에 StyledEngineProvider 추가 * #40 feat : 모달 관련 공용 컴포넌트 구현 - Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현 - Confirm, PortfolioModal 구현 * #40 feat : MUI를 활용한 ToggleSwitch 구현 * #40 refactor : 포트폴리오 data에 securitiesFirm 추가 * #40 feat : PortfolioOverview 컴포넌트 구현 * #40 rename : Confirm -> ConfirmAlert으로 변경 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : 불필요한 useEffect 제거 --------- Co-authored-by: Daeram Chung * style: Package.json 쉼표 제거 * chore: 누락된 dependencies 설치 및 기타 수정 * [chore] Husky 및 lint-staged setup (#78) * #76 chore: Husky, lint-staged 설치 및 설정 * #76 chore: Fix invalid husky pre-commit hook name * #76 fix: Type error 처리 * fix: ESLint unnamed export default 수정 * feat: 차트 분류 퍼센티지 표기 * style: 아직 안쓰는 변수 주석 및 기타 처리 * [feat] Portfolio holding purchase history 삭제 기능 (#91) * #44: React query devtools 설치 * #44 fix: Portfolio 관련 invalidateQueries query key 수정 * #44 feat: Portfolio holding purchase history delete mock 추가 * #44 feat: Portfolio holding purchase history 삭제 기능 추가 * [feat] 검색바 UI에 검색 API 연동 (#96) * #93 feat: 검색바 UI에 검색 API 연동 * design: 자잘한 디자인 수정 * chore: 개발 환경 수정 * chore: eslint console.log error 처리 * refactor: search 쿼리 설정 수정 * refactor: PR 리뷰 피드백 수정 * [refactor] portfolioOverView 리팩토링 (#102) * #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리 * #77 refactor : ToggleSwitch 불필요한 margin 제거 * #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현 * #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용 * #77 refactor : api에 맞게 구현 및 수정 - purchaseHistory에 memo api에 맞게 string | null로 수정 - msw에서 포트폴리오 추가, 삭제, 수정 기능 * #77 refactor : 불필요한 useEffect cleanup 삭제 * #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정 * #77 refactor : 불필요한 invalidate 제거 * #77 refactor : mutate 명확한 이름으로 재정의 * #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용 * #77 refactor : pr 피드백 반영 - boolean 값 네이밍 is가 접두사로 오게 수정 - 함수명 더 명확하게 재정의 * #77 rename : calculate -> calculations * #77 refactor : 잘못 수정한 로직 변경 * #77 refactor : portfolioDetails 형태 변경 * [fix] Auth API 수정 및 User Context 구현 (#107) * fix: 로그인 상태 유지 안되는 버그 해결 - 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정 * feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가 * [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109) * #44 rename: Portfolio holdings 관련 파일 정리 * #44 chore: MUI date picker 및 Dayjs 설치 * #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현 * #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가 * [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123) * #108 feat: 검색결과와 StockPage 연결 구현 * rename: 포트폴리오 쿼리 이름 변경 * design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가 * feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw * design: 포트폴리오 오버뷰 UI 디자인 적용 * rename: 포트폴리오 쿼리 이름 변경 * refactor: mutation onSuccess 위치 수정 * refactor: 함수명 컨벤션에 맞게 수정 * refactor: PR 리뷰 피드백 수정 * rename: PR 리뷰 피드백 수정 * [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124) * fix: Sign out API 수정 * #113 chore: Stompjs 설치 * #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현 * refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정 --------- Co-authored-by: bakhacode Co-authored-by: Jay * [merge] 잔버그 수정 (#127) * chore: Dependency 설치 및 프로젝트 초기화 * chore: Mock 초기화 * chore: vscode settings unignore * chore: React query 설치 및 설정 * feat: Router 설정 * feat: API response 및 status 타입 정의 * feat: SignUpPage 세팅 * chore: README 초기화 * docs: FE 브랜치 전략 수정 * [feat] Home/Dashboard 구현 (#13) * #5 feat: Nav Compound Component로 구현 * #5 feat: TickerTape 위젯 컴포넌트화 * #5 feat: Search 컴포넌트 구현 * #5 feat: UserControls 컴포넌트 구현 * #5 feat: Header 컴포넌트 구현 * #5 feat: Footer 컴포넌트 구현 * #5 feat: Dashboard UI 구현 * #5 feat: DateRange 추가 * #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정 * #5 refactor: a태그 url 상수 사용 * #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정 * #5 feat: Dropdown 컴포넌트 Compound Component 구현 * #5 refactor: PR 피드백 반영한 수정 * #5 refactor: NavBar,Dropdown 수정 * [feat] SignUpPage 구현 (#26) * #4 fix: ProtectedRoute, PublicOnlyRoute 수정 * #4 chore: vite-tsconfig-paths 설치 * #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가 * #4 chore: Path alias 추가 * #4 design: GlobalStyles 및 기본 css 적용 * #4 chore: Utils path alias 추가 * #4 feat: BasePage 구현 * #4 design: BasePage 구현 * #4 design: Sign up SubPage 구현 * #4 feat: NicknameSubPage 구현 * #4 feat: EmailSubPage 구현 * #4 feat: PasswordSubPage 구현 * #4 feat: VerificationCodeInput 컴포넌트 구현 * #4 feat: VerificationSubPage 구현 * #4 feat: Sign up MainSubPage 구현 * #4 feat: SignUpPage 구현 * [feat] my profile page 구현 (#27) * #11 refactor : route 관련 임시 작성 * #11 feat : 콤마 추가하는 유틸함수 구현 * #11 feat : MyProfilePage 구현 - App.tsx에 path 문제 수정 - PortfoliosPage 구현 - ProfileEditPage 구현 * #11 rename : profile 관련 파일 구조 변경 * #11 refactor : 변수, 함수 네이밍 피드백 반영 * merge dev-fe into fe/feat/#11-myProfile-page * #11 refactor : MyProfilePage 리팩토링 - 불필요한 state 제거 - MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트 --------- Co-authored-by: Daeram Chung * [feat] WatchlistPage 구현 (#28) * #24 refactor: TVTickerTape function 형식으로 수정 * #24 feat: WatchlistPage 구현 * #24 refactor: NavBar props 형식 수정 * #24 comment: 주석 삭제 * #24 refactor: 심볼 구성 변겅 * #24 chore: 드래그앤드롭 라이브러리 설치 * #24 refactor: PR 리뷰 피드백 반영 * [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34) * #30 refactor: currentValue 컴포넌트로 분리 * #30 feat: Portfolio Pie Chart 구현 * #30 feat: 총 자산 형황 추이 Line Chart 구현 * #30 style: 불필요한 console log 삭제 * #30 chore: 의존성 추가 및 주석처리 * #30 refactor: PR 피드백 반영한 수정 * [feat] OAuth SignIn 구현 (#42) * #4 feat: Sign up data에 passwordConfirm field 추가 * #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가 * #4 fix: useText 초기값 validate 적용 * #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용 * #4 feat: Email verification code api 및 mock 추가 * #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가 * #4 feat: Signup nickname 중복 체크 기능 추가 * #4 feat: Signup email 중복 체크 기능 추가 * #4 feat: Signup password confirm mismatch 에러 메시지 추가 * #4 feat: Signup email verification code 요청 추가 * #4 feat: Google SignIn 추가 * #4 feat: Popup window 구현 * #4 feat: Kakao 로그인 버튼 구현 * #4 feat: Naver 로그인 버튼 구현 * #4 style: console.log 제거 * #4 fix: Window.naver doesn't exist type error * #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용 * #4 refactor: Env variables 상수화 * PortfolioPage API 공유를 위한 PR (#53) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * Dependencies 공유를 위한 PR (#59) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * [feat] 포트폴리오 페이지 차트 영역 구현 (#60) * #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정 * #52 feat: 포트폴리오 종목별 파이차트 구현 * #52 feat: 월 배당금 막대 그래프 구현 * #52 feat: 섹터 Bar 구현 * #52 refactor: 데이터 받는 구조 수정 * #52 feat: 포트폴리오 페이지에 완성된 차트 조합 * #52 refactor: PR 피드백 반영한 수정 * #52 refactor: PR 피드백 반영한 수정 * [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * #44 rename: textValidators -> authInputValidators 파일명 변경 * #44 feat: validateDateFormat util 함수 추가 * #44 fix: import path 수정 * #44 feat: Portfolio 매입이력 수정 컴포넌트 구현 * #44 fix: Auth query key import 수정 * #44 chore: package.json 수정 * #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경 * #44 feat: Portfolio holding purchase add api 및 mutation 추가 * #44 feat: Portoflio holding purchase add 틀 구현 * #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정 * #44 feat: Portfolio holding purchase edit api 및 mutation 추가 * #44 fix: Portfolio holding purchase edit mutation key 수정 * #44 feat: Portfolio holding purchase delete api 및 mutation 추가 * #44 feat: Portfolio holding add api 및 mutation 추가 * #44 feat: Portfolio holding delete api 및 mutation 추가 * #44 style: 종목 삭제 버튼 todo 주석 추가 * [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72) * #39 feat : Portfolio base Page 구현 * #40 refactor : MUI 문제 해결 - @emotion/react, @emotion/styled 패키지 추가 - tsconfig resolve 삭제 - main에 StyledEngineProvider 추가 * #40 feat : 모달 관련 공용 컴포넌트 구현 - Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현 - Confirm, PortfolioModal 구현 * #40 feat : MUI를 활용한 ToggleSwitch 구현 * #40 refactor : 포트폴리오 data에 securitiesFirm 추가 * #40 feat : PortfolioOverview 컴포넌트 구현 * #40 rename : Confirm -> ConfirmAlert으로 변경 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : 불필요한 useEffect 제거 --------- Co-authored-by: Daeram Chung * style: Package.json 쉼표 제거 * chore: 누락된 dependencies 설치 및 기타 수정 * [chore] Husky 및 lint-staged setup (#78) * #76 chore: Husky, lint-staged 설치 및 설정 * #76 chore: Fix invalid husky pre-commit hook name * #76 fix: Type error 처리 * fix: ESLint unnamed export default 수정 * feat: 차트 분류 퍼센티지 표기 * style: 아직 안쓰는 변수 주석 및 기타 처리 * [feat] Portfolio holding purchase history 삭제 기능 (#91) * #44: React query devtools 설치 * #44 fix: Portfolio 관련 invalidateQueries query key 수정 * #44 feat: Portfolio holding purchase history delete mock 추가 * #44 feat: Portfolio holding purchase history 삭제 기능 추가 * [feat] 검색바 UI에 검색 API 연동 (#96) * #93 feat: 검색바 UI에 검색 API 연동 * design: 자잘한 디자인 수정 * chore: 개발 환경 수정 * chore: eslint console.log error 처리 * refactor: search 쿼리 설정 수정 * refactor: PR 리뷰 피드백 수정 * [refactor] portfolioOverView 리팩토링 (#102) * #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리 * #77 refactor : ToggleSwitch 불필요한 margin 제거 * #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현 * #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용 * #77 refactor : api에 맞게 구현 및 수정 - purchaseHistory에 memo api에 맞게 string | null로 수정 - msw에서 포트폴리오 추가, 삭제, 수정 기능 * #77 refactor : 불필요한 useEffect cleanup 삭제 * #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정 * #77 refactor : 불필요한 invalidate 제거 * #77 refactor : mutate 명확한 이름으로 재정의 * #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용 * #77 refactor : pr 피드백 반영 - boolean 값 네이밍 is가 접두사로 오게 수정 - 함수명 더 명확하게 재정의 * #77 rename : calculate -> calculations * #77 refactor : 잘못 수정한 로직 변경 * #77 refactor : portfolioDetails 형태 변경 * [fix] Auth API 수정 및 User Context 구현 (#107) * fix: 로그인 상태 유지 안되는 버그 해결 - 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정 * feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가 * [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109) * #44 rename: Portfolio holdings 관련 파일 정리 * #44 chore: MUI date picker 및 Dayjs 설치 * #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현 * #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가 * [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123) * #108 feat: 검색결과와 StockPage 연결 구현 * rename: 포트폴리오 쿼리 이름 변경 * design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가 * feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw * design: 포트폴리오 오버뷰 UI 디자인 적용 * rename: 포트폴리오 쿼리 이름 변경 * refactor: mutation onSuccess 위치 수정 * refactor: 함수명 컨벤션에 맞게 수정 * refactor: PR 리뷰 피드백 수정 * rename: PR 리뷰 피드백 수정 * [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124) * fix: Sign out API 수정 * #113 chore: Stompjs 설치 * #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현 * refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정 * fix: import 누락 및 기타 잔버그 수정 --------- Co-authored-by: bakhacode Co-authored-by: Jay * [refactor] 포트폴리오 실시간 주식 시세 개선 (#129) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * #22 fix: @EnableWebMvc 제거 * #22 fix: corsFilter 추가 * #22 refactor: 주식 현재가 구독-발행 변경 - 기존 각각의 currentPrice 구독이 아닌 포트폴리오 단위로 변경 * #22 feat: 웹소켓 엔드포인트 연결 url 변경 - stock -> portfolio * #121 fix: 브로드캐스팅 오타 수정 * #121 refactor: PortfolioSubscriptionManager 추가 * #121 refactor: publishPortfolioDetail 일반 메소드 개선 - CompleteFuture를 이용하여 비동기로 개선 * #121 refactor: publishPortfolioDetail 스케줄링 메소드 개선 - CompleteFuture를 이용하여 비동기적으로 수행하게 함 * [refactor] 비동기 예외 설정 (#130) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * #22 fix: @EnableWebMvc 제거 * #22 fix: corsFilter 추가 * #22 refactor: 주식 현재가 구독-발행 변경 - 기존 각각의 currentPrice 구독이 아닌 포트폴리오 단위로 변경 * #22 feat: 웹소켓 엔드포인트 연결 url 변경 - stock -> portfolio * #121 fix: 브로드캐스팅 오타 수정 * #121 refactor: PortfolioSubscriptionManager 추가 * #121 refactor: publishPortfolioDetail 일반 메소드 개선 - CompleteFuture를 이용하여 비동기로 개선 * #121 refactor: publishPortfolioDetail 스케줄링 메소드 개선 - CompleteFuture를 이용하여 비동기적으로 수행하게 함 * #121 refactor: 주식 현재가 개선 - 비동기로 진행하도록 함 * #121 feat: 비동기에 예외 설정 * #121 test: 테스트 코드 실패 해결 * [docs] ssl 인증서 추가 (#131) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * #101 feat: 배당금 데이터 초기화 구현 * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 목표수익금액/최대손실금액 알림 서비스 구현 (#110) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 feat: 포트폴리오 알림 활성화/비활성화 설정 서비스 구현 * #22 test: 포트폴리오 활성화/비활성화 테스트 코드 작성 * #22 fix: 포트폴리오 손익 내역 문제 해결 - 갱신화된 현재 주식 가격을 받아서 손익 내역 추가에 사용되도록 개선하였습니다. * #22 feat: 포트폴리오의 최대손실금액 활성화/비활성화 서비스 구현 * #22 refacotor: 포트폴리오 현재 주식 시세 스케줄러 개선 * #22 fix: 포트폴리오 최대손실금액 메일 알림 문제 해결 * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#95) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * [feat] 포트폴리오 상세 조회 및 종목 조회시 배당금 데이터 응답 구현 (#105) * #75 fix: cors 설정 * #75 fix: 로그인 응답 결과 변경 - member -> user * [feat] 클라이언트 스톰프 연결 종료시 포트폴리오 구독 제거 구현 (#94) * [feat] 웹소켓 주식 현재가 시세 연결 (#74) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] 포트폴리오 종목 추가 및 삭제 서비스 구현 (#43) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * [feat] 종목 검색 구현 (#45) * [feat] 포트폴리오 추가 서비스 구현 (#32) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * [feat] 포트폴리오 수정 및 삭제 서비스 구현 (#33) * #2 feat: 프로젝트 초기화 (#12) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * [feat] 소셜 로그인 및 로그아웃 서비스 구현 (#14) * #6 chore: jwt 관련 라이브러리 추가 * #6 docs: gitignore에 푸시하지 말아야할 파일들 추가 * #6 docs: 로컬 환경 docker-compose.yml 추가 * #2 docs: applicatoin.yml 파일 설정 및 로그백 파일 추가 * #6 feat: 회원 엔티티 구현 * #6 feat: 에러관련 코드, 예외, 핸들러 추가 * #6 feat: 소셜 로그인 서비스 구현 * #6 rename: oauth 파일 이동 * #6 feat: Oauth 로그인 서비스 구현 * #6 feat: 로그아웃 및 액세스 토큰 갱신 구현 * #9 feat: 한국투자 증권 open api 연결 * #9 test: 한국투자 증권 open api 연결 테스트 작성 * #9 feat: 실시간 체결가 웹소켓 연결 구현 * #9 feat: stomp 추가 * #10 feat: 종목 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 엔티티 구현 * #15 feat: 포트폴리오 추가 서비스 구현 * #15 test: 포트롤리오 추가 서비스 테스트 추가 * #15 test: 포트폴리오 추가 컨트롤러 테스트 코드 작성 * #15 test: 포트폴리오 추가 입력형식 테스트 코드 추가 * #15 feat: 포트폴리오 추가시 동일한 이름 중복 검증 처리 * #15 test: 포트폴리오 추가시 동일한 이름 중복 검증 처리 테스트 코드 작성 * #17 feat: 포트폴리오 수정 및 삭제 서비스 구현 * #17 test: 포트폴리오 수정 및 삭제에 대한 테스트 코드 작성 * #17 style: 코드 정리 * [feat] CI/CD 설정 (#35) * #7 docs: cicd 워크플로우 설정 - 빌드 설정 및 s3 업로드 설정 * #7 docs: cicd 설정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: appspec.yml 파일 오타 수정 * #7 fix: 버킷 이름 수정 * #7 fix: deploy 이름 삭제 - 버킷 이름에 /를 지정할 수 없음 * #16 feat: 포트폴리오 목록 조회 구현 * #16 feat: 포트폴리오 목록 조회 페이징 구현 * #16 feat: 포트폴리오 목록 조회시 hasNext를 응답하도록 구현 - nextCursor가 null인 경우 hasNext는 false로 응답하도록 구현하였습니다. * #18 feat: 포트폴리오 종목 추가 서비스 구현 * #18 feat: 포트폴리오 종목 삭제 서비스 구현 * #18 style: 코드 정리 * #21 feat: 엘라스틱 서치 환경 구현 * #21 feat: 종목 검색 구현 * [feat] 포스트맨 변경 사항 반영 (#48) * #48 fix: 포스트맨에 맞추어 응답 형식 변경 * #48 style: 코드 정리 * [feat] 포트폴리오 종목 조회 구현 (#49) * #10 feat: 포트폴리오 종목 목록 조회 구현 * #10 feat: @JsonUnWraaped 적용 * [feat] ci/cd 파이프라인 개선 (#55) * #51 fix: cicd 개선 - docker 추가 * #51 fix: cicd 테스트 브랜치 추가 * #10 feat: getFile -> getInputStream으로 변경 * #10 feat: 엘라스틱 서치 코드 제거 및 REST API 검색 구현 * #10 feat: 엘라스틱 서치 컨테이너 제거 * #10 chore: 엘라스틱 서치 의존성 제거 * #51 fix: 경로 변경 * [fix] 포스트맨 변경 사항 반영 (#56) * #54 fix: postman 변경사항 반영 * #54 fix: postman 변경사항 반영 * [feat] 매입 이력 추가 서비스 구현 (#58) * #19 feat: 매입 입력 추가 서비스 구현 * #19 test: 매입 입력 추가 서비스 테스트 코드 추가 * [feat] 매입 이력 수정 및 삭제 서비스 구현 (#61) * #20 feat: 매입 입력 수정 서비스 구현 및 테스트 구현 * #20 docs: 샘플 데이터 추가 * #20 feat: 매입 이력 삭제 서비스 구현 및 테스트 코드 작성 * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #62 fix: 포트폴리오 목록 조회 응답에 securitiesFirm 프로퍼티 추가 (#63) * #41 feat: 포트폴리오 수익 내역 서비스 구현 * [feat] 포트폴리오 손익 내역 기록 서비스 구현 (#65) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * [feat] 포트폴리오 수익 내역 추가 서비스 구현 (#66) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * [feat] 매입 내역 목록 조회 구현 (#69) * #20 feat: 포트폴리오 손익 내역 기록 서비스 구현 * #41 feat: 포트폴리오 수익 내역 서비스 구현 * #41 fix: 포트폴리오 상세 조회시 securitiesFirm 프로퍼티 추가 * #68 feat: 포트폴리오 상세 조회시 매입 내역 목록 조회할 수 있도록 구현 * #68 feat: 포트폴리오 상세 조회시 알림에 대한 설정을 응답하도록 추가 * #68 feat: 포트폴리오 상세 조회시 총손익 공식 개선 * #68 feat: 주식 현재가 시세 클라이언트와 연결 구현 * [refactor] kis 서버 액세스 토큰 발급 만료 문제 해결 (#79) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * [fix] 주식 현재가가 0인 경우 비동기적으로 수행되는 문제 해결 (#81) * #75 feat: 실시간 포트폴리오 계산 데이터 응답 구현 * #75 refactor: accessToken 만료 개선 * #75 style: 불필요 코드 삭제 * #75 fix: 주식 현재가의 비동기적 실행 문제 해결 * #75 fix: 포트폴리오 목록 조회 문제 해결 * #75 fix: 병렬 스트림으로 변경 * #75 fix: 포트폴리오 상세 조회 API 개선 * #75 fix: 도커 컴포즈 빌드 명령어 추가 * #83 feat: 포트폴리오 구독 세션 연결 종료시 포트폴리오 구독 해시맵에서 제거하도록 구현 * #83 fix: 중복된 리스너 제거 * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 (#99) * [feat] 배당금 데이터 초기화 구현 (#103) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * [feat] 포트폴리오 상세 조회시 배당금 데이터를 응답하도록 구현 (#104) * #98 feat: 포트폴리오 추가시 응답으로 portfolioId 응답하도록 구현 * #101 feat: 배당금 데이터 초기화 구현 * #101 feat: 배당금 계산 데이터 개선 * #101 test: 포트폴리오 종목 상세 조회 테스트 코드 작성 * #101 feat: 포트폴리오 종목 상세 조회시 배당금 정보도 응답하도록 구현 * #22 fix: cors 설정 * #22 fix: @EnableWebMvc 제거 * #22 fix: @EnableWebMvc 제거 * #22 fix: corsFilter 추가 * #22 refactor: 주식 현재가 구독-발행 변경 - 기존 각각의 currentPrice 구독이 아닌 포트폴리오 단위로 변경 * #22 feat: 웹소켓 엔드포인트 연결 url 변경 - stock -> portfolio * #121 fix: 브로드캐스팅 오타 수정 * #121 refactor: PortfolioSubscriptionManager 추가 * #121 refactor: publishPortfolioDetail 일반 메소드 개선 - CompleteFuture를 이용하여 비동기로 개선 * #121 refactor: publishPortfolioDetail 스케줄링 메소드 개선 - CompleteFuture를 이용하여 비동기적으로 수행하게 함 * #121 refactor: 주식 현재가 개선 - 비동기로 진행하도록 함 * #121 feat: 비동기에 예외 설정 * #121 test: 테스트 코드 실패 해결 * #121 docs: ssl 인증서 추가 * [feat] LandingPage 구현 및 배포 위한 잔버그 수정 (#132) * chore: Dependency 설치 및 프로젝트 초기화 * chore: Mock 초기화 * chore: vscode settings unignore * chore: React query 설치 및 설정 * feat: Router 설정 * feat: API response 및 status 타입 정의 * feat: SignUpPage 세팅 * chore: README 초기화 * docs: FE 브랜치 전략 수정 * [feat] Home/Dashboard 구현 (#13) * #5 feat: Nav Compound Component로 구현 * #5 feat: TickerTape 위젯 컴포넌트화 * #5 feat: Search 컴포넌트 구현 * #5 feat: UserControls 컴포넌트 구현 * #5 feat: Header 컴포넌트 구현 * #5 feat: Footer 컴포넌트 구현 * #5 feat: Dashboard UI 구현 * #5 feat: DateRange 추가 * #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정 * #5 refactor: a태그 url 상수 사용 * #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정 * #5 feat: Dropdown 컴포넌트 Compound Component 구현 * #5 refactor: PR 피드백 반영한 수정 * #5 refactor: NavBar,Dropdown 수정 * [feat] SignUpPage 구현 (#26) * #4 fix: ProtectedRoute, PublicOnlyRoute 수정 * #4 chore: vite-tsconfig-paths 설치 * #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가 * #4 chore: Path alias 추가 * #4 design: GlobalStyles 및 기본 css 적용 * #4 chore: Utils path alias 추가 * #4 feat: BasePage 구현 * #4 design: BasePage 구현 * #4 design: Sign up SubPage 구현 * #4 feat: NicknameSubPage 구현 * #4 feat: EmailSubPage 구현 * #4 feat: PasswordSubPage 구현 * #4 feat: VerificationCodeInput 컴포넌트 구현 * #4 feat: VerificationSubPage 구현 * #4 feat: Sign up MainSubPage 구현 * #4 feat: SignUpPage 구현 * [feat] my profile page 구현 (#27) * #11 refactor : route 관련 임시 작성 * #11 feat : 콤마 추가하는 유틸함수 구현 * #11 feat : MyProfilePage 구현 - App.tsx에 path 문제 수정 - PortfoliosPage 구현 - ProfileEditPage 구현 * #11 rename : profile 관련 파일 구조 변경 * #11 refactor : 변수, 함수 네이밍 피드백 반영 * merge dev-fe into fe/feat/#11-myProfile-page * #11 refactor : MyProfilePage 리팩토링 - 불필요한 state 제거 - MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트 --------- Co-authored-by: Daeram Chung * [feat] WatchlistPage 구현 (#28) * #24 refactor: TVTickerTape function 형식으로 수정 * #24 feat: WatchlistPage 구현 * #24 refactor: NavBar props 형식 수정 * #24 comment: 주석 삭제 * #24 refactor: 심볼 구성 변겅 * #24 chore: 드래그앤드롭 라이브러리 설치 * #24 refactor: PR 리뷰 피드백 반영 * [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34) * #30 refactor: currentValue 컴포넌트로 분리 * #30 feat: Portfolio Pie Chart 구현 * #30 feat: 총 자산 형황 추이 Line Chart 구현 * #30 style: 불필요한 console log 삭제 * #30 chore: 의존성 추가 및 주석처리 * #30 refactor: PR 피드백 반영한 수정 * [feat] OAuth SignIn 구현 (#42) * #4 feat: Sign up data에 passwordConfirm field 추가 * #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가 * #4 fix: useText 초기값 validate 적용 * #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용 * #4 feat: Email verification code api 및 mock 추가 * #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가 * #4 feat: Signup nickname 중복 체크 기능 추가 * #4 feat: Signup email 중복 체크 기능 추가 * #4 feat: Signup password confirm mismatch 에러 메시지 추가 * #4 feat: Signup email verification code 요청 추가 * #4 feat: Google SignIn 추가 * #4 feat: Popup window 구현 * #4 feat: Kakao 로그인 버튼 구현 * #4 feat: Naver 로그인 버튼 구현 * #4 style: console.log 제거 * #4 fix: Window.naver doesn't exist type error * #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용 * #4 refactor: Env variables 상수화 * PortfolioPage API 공유를 위한 PR (#53) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * Dependencies 공유를 위한 PR (#59) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * [feat] 포트폴리오 페이지 차트 영역 구현 (#60) * #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정 * #52 feat: 포트폴리오 종목별 파이차트 구현 * #52 feat: 월 배당금 막대 그래프 구현 * #52 feat: 섹터 Bar 구현 * #52 refactor: 데이터 받는 구조 수정 * #52 feat: 포트폴리오 페이지에 완성된 차트 조합 * #52 refactor: PR 피드백 반영한 수정 * #52 refactor: PR 피드백 반영한 수정 * [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71) * #44 design: Plus icon 추가 * #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가 * #44 chore: MUI icons 패키지 설치 * #44 feat: PortfolioHoldingsTable 컴포넌트 구현 * #44 feat: PortfolioPage 기본 틀 구현 * #44 feat: Portfolio details data type 수정 * #44 feat: PortfolioHoldingsRow 컴포넌트 분리 * #44 fix: Portfolio holding mock data 수정 * #44 chore: Jest dependencies 설치 * #44 feat: formatDate 함수 추가 * #44 refactor: PortfolioHoldingLots 컴포넌트 분리 * #44 rename: textValidators -> authInputValidators 파일명 변경 * #44 feat: validateDateFormat util 함수 추가 * #44 fix: import path 수정 * #44 feat: Portfolio 매입이력 수정 컴포넌트 구현 * #44 fix: Auth query key import 수정 * #44 chore: package.json 수정 * #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경 * #44 feat: Portfolio holding purchase add api 및 mutation 추가 * #44 feat: Portoflio holding purchase add 틀 구현 * #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정 * #44 feat: Portfolio holding purchase edit api 및 mutation 추가 * #44 fix: Portfolio holding purchase edit mutation key 수정 * #44 feat: Portfolio holding purchase delete api 및 mutation 추가 * #44 feat: Portfolio holding add api 및 mutation 추가 * #44 feat: Portfolio holding delete api 및 mutation 추가 * #44 style: 종목 삭제 버튼 todo 주석 추가 * [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72) * #39 feat : Portfolio base Page 구현 * #40 refactor : MUI 문제 해결 - @emotion/react, @emotion/styled 패키지 추가 - tsconfig resolve 삭제 - main에 StyledEngineProvider 추가 * #40 feat : 모달 관련 공용 컴포넌트 구현 - Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현 - Confirm, PortfolioModal 구현 * #40 feat : MUI를 활용한 ToggleSwitch 구현 * #40 refactor : 포트폴리오 data에 securitiesFirm 추가 * #40 feat : PortfolioOverview 컴포넌트 구현 * #40 rename : Confirm -> ConfirmAlert으로 변경 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : destructuring 컨벤션에 맞게 수정 * #40 refactor : 불필요한 useEffect 제거 --------- Co-authored-by: Daeram Chung * style: Package.json 쉼표 제거 * chore: 누락된 dependencies 설치 및 기타 수정 * [chore] Husky 및 lint-staged setup (#78) * #76 chore: Husky, lint-staged 설치 및 설정 * #76 chore: Fix invalid husky pre-commit hook name * #76 fix: Type error 처리 * fix: ESLint unnamed export default 수정 * feat: 차트 분류 퍼센티지 표기 * style: 아직 안쓰는 변수 주석 및 기타 처리 * [feat] Portfolio holding purchase history 삭제 기능 (#91) * #44: React query devtools 설치 * #44 fix: Portfolio 관련 invalidateQueries query key 수정 * #44 feat: Portfolio holding purchase history delete mock 추가 * #44 feat: Portfolio holding purchase history 삭제 기능 추가 * [feat] 검색바 UI에 검색 API 연동 (#96) * #93 feat: 검색바 UI에 검색 API 연동 * design: 자잘한 디자인 수정 * chore: 개발 환경 수정 * chore: eslint console.log error 처리 * refactor: search 쿼리 설정 수정 * refactor: PR 리뷰 피드백 수정 * [refactor] portfolioOverView 리팩토링 (#102) * #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리 * #77 refactor : ToggleSwitch 불필요한 margin 제거 * #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현 * #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용 * #77 refactor : api에 맞게 구현 및 수정 - purchaseHistory에 memo api에 맞게 string | null로 수정 - msw에서 포트폴리오 추가, 삭제, 수정 기능 * #77 refactor : 불필요한 useEffect cleanup 삭제 * #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정 * #77 refactor : 불필요한 invalidate 제거 * #77 refactor : mutate 명확한 이름으로 재정의 * #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용 * #77 refactor : pr 피드백 반영 - boolean 값 네이밍 is가 접두사로 오게 수정 - 함수명 더 명확하게 재정의 * #77 rename : calculate -> calculations * #77 refactor : 잘못 수정한 로직 변경 * #77 refactor : portfolioDetails 형태 변경 * [fix] Auth API 수정 및 User Context 구현 (#107) * fix: 로그인 상태 유지 안되는 버그 해결 - 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정 * feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가 * [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109) * #44 rename: Portfolio holdings 관련 파일 정리 * #44 chore: MUI date picker 및 Dayjs 설치 * #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현 * #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가 * [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123) * #108 feat: 검색결과와 StockPage 연결 구현 * rename: 포트폴리오 쿼리 이름 변경 * design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가 * feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw * design: 포트폴리오 오버뷰 UI 디자인 적용 * rename: 포트폴리오 쿼리 이름 변경 * refactor: mutation onSuccess 위치 수정 * refactor: 함수명 컨벤션에 맞게 수정 * refactor: PR 리뷰 피드백 수정 * rename: PR 리뷰 피드백 수정 * [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124) * fix: Sign out API 수정 * #113 chore: Stompjs 설치 * #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현 * refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정 * fix: import 누락 및 기타 잔버그 수정 * fix: 포트폴리오 종목 추가 시 모달 닫히지 않는 문제 해결 * feat: 종목 삭제 확인 알럿 추가 * style: 테스트용 버튼 제거 * fix: 테스트용 코드 제 * feat: LandingPage 구현 --------- Co-authored-by: bakhacode Co-authored-by: Jay --------- Co-authored-by: yonghwankim Co-authored-by: YongHwan Kim Co-authored-by: bakhacode Co-authored-by: Jay --- .../queries/usePortfolioHoldingAddMutation.ts | 11 +- .../PortfolioHoldingAddModal.tsx | 6 +- .../PortfolioHoldings/PortfolioHoldingRow.tsx | 32 ++++-- fe/src/components/common/Header.tsx | 23 +++- fe/src/pages/LandingPage.tsx | 15 +++ fe/src/pages/PortfolioPage.tsx | 97 ++++++++-------- fe/src/router/router.tsx | 7 +- .../PortfolioGainHistoryRepository.java | 10 +- .../spring/api/kis/KisMessageController.java | 11 +- .../fineants/spring/api/kis/KisService.java | 106 ++++++++++-------- .../spring/api/kis/client/KisClient.java | 8 +- .../api/kis/manager/CurrentPriceManager.java | 21 +--- .../manager/PortfolioSubscriptionManager.java | 45 ++++++++ .../api/portfolio/PortFolioService.java | 2 +- .../PortfolioGainHistoryService.java | 3 +- .../PortfolioStockService.java | 2 +- .../response/PortfolioDetailResponse.java | 7 +- .../response/PortfolioHoldingsResponse.java | 4 + .../portfolio/PortfolioMessageController.java | 23 ---- .../src/main/resources/ssl/keystore.p12 | Bin 0 -> 4567 bytes ...folioGainHistoryServiceRepositoryTest.java | 2 +- .../PortfolioNotificationServiceTest.java | 16 +++ .../PortfolioStockServiceTest.java | 5 +- 23 files changed, 283 insertions(+), 173 deletions(-) create mode 100644 fe/src/pages/LandingPage.tsx create mode 100644 fineAnts_app/src/main/java/codesquad/fineants/spring/api/kis/manager/PortfolioSubscriptionManager.java delete mode 100644 fineAnts_app/src/main/java/codesquad/fineants/spring/ws/portfolio/PortfolioMessageController.java create mode 100644 fineAnts_app/src/main/resources/ssl/keystore.p12 diff --git a/fe/src/api/portfolio/queries/usePortfolioHoldingAddMutation.ts b/fe/src/api/portfolio/queries/usePortfolioHoldingAddMutation.ts index 1b3106b..f5b9dcc 100644 --- a/fe/src/api/portfolio/queries/usePortfolioHoldingAddMutation.ts +++ b/fe/src/api/portfolio/queries/usePortfolioHoldingAddMutation.ts @@ -2,7 +2,15 @@ import { useMutation, useQueryClient } from "@tanstack/react-query"; import { postPortfolioHolding } from ".."; import { portfolioKeys } from "./queryKeys"; -export default function usePortfolioHoldingAddMutation(portfolioId: number) { +type Props = { + portfolioId: number; + onClose: () => void; +}; + +export default function usePortfolioHoldingAddMutation({ + portfolioId, + onClose, +}: Props) { const queryClient = useQueryClient(); return useMutation({ @@ -13,6 +21,7 @@ export default function usePortfolioHoldingAddMutation(portfolioId: number) { queryClient.invalidateQueries({ queryKey: portfolioKeys.details(portfolioId).queryKey, }); + onClose(); }, onError: (error) => { // eslint-disable-next-line no-console diff --git a/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingAddModal.tsx b/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingAddModal.tsx index 0e2911a..e8ebf12 100644 --- a/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingAddModal.tsx +++ b/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingAddModal.tsx @@ -13,8 +13,10 @@ export default function PortfolioHoldingAddModal({ isOpen, onClose, }: Props) { - const { mutate: portfolioHoldingAddMutate } = - usePortfolioHoldingAddMutation(portfolioId); + const { mutate: portfolioHoldingAddMutate } = usePortfolioHoldingAddMutation({ + portfolioId, + onClose, + }); const addStockToPortfolio = (tickerSymbol: string) => { portfolioHoldingAddMutate({ diff --git a/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingRow.tsx b/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingRow.tsx index 52da77e..46661aa 100644 --- a/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingRow.tsx +++ b/fe/src/components/Portfolio/PortfolioHoldings/PortfolioHoldingRow.tsx @@ -1,8 +1,10 @@ import { PortfolioHolding } from "@api/portfolio"; import usePortfolioHoldingDeleteMutation from "@api/portfolio/queries/usePortfolioHoldingDeleteMutation"; +import ConfirmAlert from "@components/ConfirmAlert"; import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; import KeyboardArrowRightIcon from "@mui/icons-material/KeyboardArrowRight"; import { + Button, Collapse, IconButton, TableCell, @@ -41,9 +43,14 @@ export default function PortfolioHoldingRow({ const { mutate: portfolioHoldingDeleteMutate } = usePortfolioHoldingDeleteMutation(portfolioId); - const [isOpen, setIsOpen] = useState(false); + const [isRowOpen, setIsRowOpen] = useState(false); + const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const onDeleteClick = () => { + setIsDeleteModalOpen(true); + }; + + const onConfirmDelete = () => { portfolioHoldingDeleteMutate({ portfolioId, portfolioHoldingId }); }; @@ -54,8 +61,8 @@ export default function PortfolioHoldingRow({ setIsOpen(!isOpen)}> - {isOpen ? : } + onClick={() => setIsRowOpen(!isRowOpen)}> + {isRowOpen ? : } @@ -94,18 +101,15 @@ export default function PortfolioHoldingRow({ {annualDividendYield}% {annualDividend} - {/* TODO: 종목 삭제 버튼 */} -
- 삭제 -
+ + + - + + + setIsDeleteModalOpen(false)} + onConfirm={onConfirmDelete} + /> ); } diff --git a/fe/src/components/common/Header.tsx b/fe/src/components/common/Header.tsx index 4a5ee9d..e667daa 100644 --- a/fe/src/components/common/Header.tsx +++ b/fe/src/components/common/Header.tsx @@ -1,7 +1,9 @@ import { PortfolioItem } from "@api/portfolio"; import usePortfolioListQuery from "@api/portfolio/queries/usePortfolioListQuery"; import PortfolioModal from "@components/Portfolio/PortfolioModal"; -import { useState } from "react"; +import { UserContext } from "@context/UserContext"; +import { Button } from "@mui/material"; +import { useContext, useState } from "react"; import { useNavigate } from "react-router-dom"; import Routes from "router/Routes"; import styled from "styled-components"; @@ -14,6 +16,8 @@ import Dropdown from "./Dropdown"; export default function Header() { const navigate = useNavigate(); + const { user } = useContext(UserContext); + const { data: portfolioList } = usePortfolioListQuery(); const [isPortfolioAddModalOpen, setIsPortfolioAddModalOpen] = useState(false); @@ -65,6 +69,14 @@ export default function Header() { navigate(`/stock/${tickerSymbol}`); }; + const moveToSignInPage = () => { + navigate(Routes.SIGNIN); + }; + + const moveToSignUpPage = () => { + navigate(Routes.SIGNUP); + }; + return ( <> @@ -114,7 +126,14 @@ export default function Header() { - + {user ? ( + + ) : ( + <> + + + + )} diff --git a/fe/src/pages/LandingPage.tsx b/fe/src/pages/LandingPage.tsx new file mode 100644 index 0000000..2f5034b --- /dev/null +++ b/fe/src/pages/LandingPage.tsx @@ -0,0 +1,15 @@ +import Footer from "@components/common/Footer"; +import Header from "@components/common/Header"; +import { Typography } from "@mui/material"; +import BasePage from "./BasePage"; + +export default function LandingPage() { + return ( + +
+ + Landing Page! +