728x90
반응형
-
-
[Java] int, String 배열의 오름차순, 내림차순 정렬 오름차순 정렬시//int[] A = new int[5];int[] A = {6,3,2,1,5}; Arrays.sort(A); //오름차순 정렬 내림차순 정렬시 Arrays.sort(배열명, Collections.reverseOrder());단, int 타입은 Integer타입 배열로 변경 후 정렬가능하다.//배열 정렬Arrays.sort(A); //오름차순/*---------------------------------------------------------------*///내림차순 //내림차순시 int 배열을 Integer로 변경 후 정렬해주어야 함/*---------------------------------------------------------------*/Integer[] IA = Arr..
-
Stock Dashboard 개발기 #6 - Spring Boot에서 Google Sheet 데이터를 읽어와 대시보드에 출력하기 시작이전 글에서는 PostgreSQL 설치와 Spring Boot 프로젝트 생성까지 진행했다.이번 단계에서는 실제 데이터를 화면에 출력해보기로 했다.Stock Dashboard 프로젝트의 최종 목표는 여러 증권사에 흩어져 있는 보유 종목을 한 화면에서 관리하는 것이다.하지만 처음부터 증권사 API 연동이나 데이터베이스 설계를 진행하기보다는 빠르게 결과를 확인하는 것이 중요하다고 판단했다.그래서 우선 Google Sheet를 데이터 소스로 사용하기로 했다.왜 Google Sheet를 사용하는가현재 보유 종목 정보는 Google Sheet에서 관리하고 있다.대표적으로 다음과 같은 정보가 있다.종목명보유수량평균단가현재가평가금액미실현손익수익률보유비중초기 개발 단계에서는종목 추가목표가 수정손절가 수정등을 자주 변.. -
Stock Dashboard 개발기 #5 - Spring Boot 프로젝트 생성부터 첫 실행까지 시작지난 글에서는 프로젝트 기획과 PostgreSQL 설치를 진행했다.이번에는 실제 Spring Boot 프로젝트를 생성하고 실행까지 진행했다.생각보다 삽질도 있었고, 그 과정에서 Spring Boot의 동작 구조를 조금 더 이해할 수 있었다.프로젝트 생성Spring Initializr를 이용해 프로젝트를 생성했다.선택한 옵션은 다음과 같다.https://start.spring.io/?utm_source=chatgpt.comProjectGradle - GroovyLanguageJavaJava Version21Groupcom.stockdashboardArtifactstock-dashboard선택한 DependencySpring Web웹 서버(Tomcat) 및 Controller 기능 제공Spring Dat.. -
Stock Dashboard 개발기 #4 - Mac에서 PostgreSQL 설치하다가 삽질한 이야기 시작Stock Dashboard 프로젝트를 진행하면서 PostgreSQL을 설치하게 되었다.개인적으로 PostgreSQL은 처음 사용해보는 DB라 설치부터 차근차근 진행했다.환경은 다음과 같다.Mac Mini (Apple Silicon)HomebrewPostgreSQL 17Spring Boot 프로젝트PostgreSQL 설치우선 Homebrew를 이용해 설치했다.brew install postgresql@17 설치가 완료되면 버전을 확인할 수 있다.psql --version 결과psql (PostgreSQL) 17.10 (Homebrew) 여기까지는 문제없이 진행되었다.서비스 실행PostgreSQL을 백그라운드 서비스로 실행하기 위해 아래 명령어를 실행했다.brew services start postgr.. -
Stock Dashboard 개발기 #3 - 프로젝트를 시작 전에 꼭 알아야 할 개념들 - Maven, Gradle, JPA, PostgreSQL 개념 정리 Spring Boot 프로젝트를 시작하기 전에 꼭 알아야 할 개념들왜 이 글을 쓰게 되었나,최근 개인 프로젝트로 주식 투자 대시보드를 만들기 시작했다.프로젝트를 시작하면서 Maven, Gradle, YAML, JPA 같은 용어를 다시 정리할 필요가 있었고, 처음 공부하는 입장에서는 개념이 헷갈리는 부분이 많았다.이번 글에서는 프로젝트를 진행하면서 배운 핵심 개념들을 정리해보려고 한다.Maven과 Gradle은 무엇일까?Java 프로젝트를 개발하다 보면 수많은 라이브러리가 필요하다.예를 들어Spring BootPostgreSQL DriverThymeleafLombok등을 직접 다운로드해서 관리하는 것은 매우 번거롭다.Maven과 Gradle은 이러한 라이브러리 다운로드와 프로젝트 빌드를 자동으로 관리해주는.. -
Stock Dashboard 개발기 #2 - Spring Boot 프로젝트 기획 및 아키텍처 설계 왜 이 프로젝트를 시작했나주식을 하다 보면 여러 증권사를 사용하는 경우가 많다.나 역시신한투자증권한국투자증권토스증권등 여러 계좌를 사용하고 있다.문제는 매일 포트폴리오를 확인할 때마다증권사 앱 실행보유종목 확인수익률 확인목표가 확인매매 전략 작성을 반복해야 한다는 점이었다.특히 종목 수가 많아질수록 관리가 점점 어려워졌다.그래서 직접 관리용 대시보드를 만들어 보기로 했다.프로젝트 목표이번 프로젝트의 목표는 단순하다."매일 투자 판단에 필요한 정보를 한 화면에서 보는 것" 초기 목표는 다음과 같다.V1구글 시트 연동보유종목 조회수익률 표시목표가 관리손절가 관리추매가 관리모바일 화면 지원V2PostgreSQL 저장데이터 이력 관리성능 개선V3자동 전략 생성종목 압축 추천섹터 비중 분석기술스택 선정이번 프로젝.. -
Stock Dashboard 개발기 #1 - Spring Boot 프로젝트 구조 설계 전 기초 개념 정리(JPA) [Spring Boot] MyBatis만 알던 개발자가 JPA를 이해해보기들어가며최근 개인 프로젝트로 주식 포트폴리오를 관리하는 Stock Dashboard를 만들기로 했다.기술 스택을 고민하던 중 ChatGPT가 JPA 사용을 추천했는데, 사실 나는 JPA를 제대로 사용해본 적이 없었다.실무에서는 주로 MyBatis를 사용했고, "JPA는 SQL을 안 써도 된다더라" 정도만 알고 있었다.그런데 곰곰이 생각해보니 JPA가 정확히 무엇인지, 왜 사용하는지 설명할 수 없었다.그래서 이번 프로젝트를 시작하기 전에 JPA에 대해 정리해보기로 했다.내가 알고 있던 MyBatis 방식MyBatis는 Java 코드와 SQL을 연결해주는 프레임워크이다.예를 들어 사용자 정보를 조회한다고 가정해보자.Java 코드에서는 .. -
Stock Dashboard 개발기 #0 - 맥에서 Java 개발 환경 셋팅하기 (JDK 21 + VS Code) 맥에서 Java 개발 환경 셋팅하기 (JDK 21 + VS Code)들어가며Java 8 기반 금융권 레거시 환경에서 일하다 보면, 요즘 기업들이 원하는 기술 스택과 거리가 생긴다.현대적인 Java 개발 환경을 처음 셋팅하면서 겪은 과정을 그대로 정리했다.Java 버전 명칭, 헷갈리지 말자금융권에서 Java 1.8을 쓰다 보면 Java 21이 엄청난 버전 차이처럼 느껴진다.근데 사실 그렇지 않다.Java 1.6 = Java 6Java 1.7 = Java 7Java 1.8 = Java 8 ← 금융권에서 많이 쓰는 버전Java 9, 10, 11 ... 21 ← 9부터 숫자 그대로Oracle이 Java 9부터 버전 명칭 방식을 바꿨다. 1.x → 숫자.즉, Java 1.8과 Java 21은 8 → 21, 1.. -
정규표현식(Regex) 정리 정규식은 / 문자로 감싸지며 내부에 정규문자 또는 메타문자가 위치하게 된다.ex) /tomato/ 정규 표현식의 용어들정규 표현식에서 사용되는 기호를 Meta문자라고 표현한다. 표현식에서 내부적으로 특정 의미를 가지는 문자를 말하며 간단하게 정리하면 아래의 표와 같다. 표현식의미 ^x 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다.x$ 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다. .x 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다. x+ 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다. x? 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다. x* 반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다. ..
728x90