숑숑이의 개발일기
article thumbnail
대시보드 API 성능 개선기
Etc/Project 2024. 1. 3. 23:18

spring boot + react를 사용하는 프로젝트가 막을 내렸다. 그동안 시간이 부족해서 뒤로 미뤄뒀던 대시보드 API 구조개선, 속도개선의 과정을 작성해보도록 한다. 대시보드에 필요한 데이터로는 명언, 사용자의 신체정보 및 감정정보, 최근 7일의 분류별 섭취칼로리, 최근 7/30일, 12개월간 운동시간, 운동 소모칼로리, 수면시간이 있었다. 첫번째 시도 : 일단 무식하게라도 우선 차트에 그릴 걸 생각해서 가장 날짜 테이블을 사용했다. 그렇게해서 만들어진 중구난방 response. 소요되는 시간은 2.8s로 느린것과 별개로 메인페이지이므로 속도개선이 필연적이라고 느꼈다. { "code": 200, "httpStatus": "OK", "message": "조회 성공", "data": { "sleep"..

article thumbnail
[Github] VSCode와 Github연동하기. 로컬프로젝트를 Github에 업로드하기
Etc/Git 2023. 10. 25. 20:30

사전준비 먼저, VScode설치와 Github계정이 필요하다. 프로젝트를 올릴 새로운 github 레포지토리 생성 여기서 Add a README file을 체크하느냐에 따라 터미널에서 오류가 날 수 있기때문에 잘 따라오도록한다. 난 추가하는 것으로 설명한다. 해당 레포지토리의 주소를 복사 VSCode에서 업로드할 폴더를 선택후, 터미널을 열어준다. 터미널여는 단축키 : ctrl + shift + ` 터미널 창에 아래의 순서대로 입력한다. git init// 해당 작업폴더에 .git 폴더 생성 git remote add origin (복사한 깃허브 레포지토리 주소)// 어디에 저장할지 설정 git remote -v // 연결된 레포지토리 확인 git status // 현재 상태 확인 (생략가능) // 주의..

article thumbnail
[MySQL] 3780 Foreign key를 포함한 테이블 생성시 오류
Etc/Error 2023. 9. 13. 12:03

🛠️ 오늘의 오류 팀프로젝트 진행중 누락한 테이블이 있다는걸 확인하고 뒤늦게 테이블을 생성하려는데, 분명 문법에 맞게 작성한 CREATE문이 작동하질 않았다. GUI로도 생성해봐도 FK 지정이 되질 않았고 원인을 찾아 삽질을 시작했다. Error Code: 3780. Referencing column 'mi_id' and referenced column 'mi_id' in foreign key constraint 'fk_member_coupon_mi_id' are incompatible. 에러 발생 원인 해당 오류는 참조하려는 컬럼과 해당 테이블의 컬럼. 즉 두 컬럼의 자료형이 다르거나, 제약조건의 이름이 겹칠때 발생 한다. 앞서 설명한 원인에 해당하지 않는다면 참조하려는 컬럼이 문자열 형식인 경우 ch..

article thumbnail
[Eclipse] Windows 10 이클립스 설치 및 기본설정, 이클립스 완전삭제
Etc/Program 2023. 8. 25. 01:45

기존에 사용하던 Eclipse가 5년전 버전이라 사용하며 잦은 에러가 발생해 새로 설치하기로 했다. 기존의 자바 버전이 jdk 1.8 (Java 8) 이었고, 나는 이번에 11버전으로 새로 다운받았다. 이클립스 2020-09버전부터는 자바 버전 11이상을 필요로 한다. 자바8을 사용하고자 한다면 이클립스 버전 2020-06를 다운받도록 하자! 이클립스 완전 삭제 이클립스는 다른 프로그램과 달리 제어판에서 삭제하는 것이 아니라 아래의 사진 경로(C:/user/사용자)에서 폴더를 삭제하면 된다. 나는 이미 삭제한 이후로 안보이지만, eclipse, eclipse-workspace, .eclipse, .p2 폴더를 모두 삭제해주면 된다. 위의 작성한 폴더중 안보이는 폴더가있다면 보기옵션의 숨긴항목을 체크해서 ..

article thumbnail
[JAVA] Windows Java SE 11 설치, 환경 변수 설정
Etc/Program 2023. 8. 23. 01:13

기존에 JAVA 8 버전을 사용하다가, 호환성을 위해 JAVA 11 버전을 설치하기로 했다. 설치방법 https://www.oracle.com/java/technologies/downloads/ Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 1) 위의 링크에서 스크롤을 내리다보면 JAVA 11이 있다. 나는 Windows 환경에서 사용할 것이므로 Windows 탭을 눌러 Installer를 클릭한다. 2) 정책에 동의하는 창이 노출되며 체크박스를 체크하고 다운..

article thumbnail
[MySql] MySQL cmd 접속방법, MySQL 환경변수 설정
Etc/Program 2023. 8. 1. 00:50

디비를 덤프하기 위해 cmd에서 명령어를 입력하는데 인식하지못했다. 이는 바로 MySQL에서 환경변수를 설정안해줬기 때문이다. MySQL 환경변수 설정 방법에 대해 알아본다 내 PC -> 우클릭 [속성] 내 PC화면에서 빈공간에 커서를 두고 우클릭하여 나오는 메뉴에서 [속성]을 클릭한다. 시스템 -> 고급 시스템 설정 그럼 이렇게 시스템 화면이 나오는데, 고급 시스템 설정을 클릭한다. 고급 -> [환경 변수] 시스템 속성 창의 고급 탭에서 [환경 변수]를 클릭한다. 시스템변수 -> Path 아래 시스템 변수의 Path를 선택후 [편집] 버튼을 누르거나 더블클릭으로 진입한다. 새로 만들기 -> 경로설정 -> 확인 나의 MySQL 서버 bin 폴더의 경로를 붙여 넣어준다. 설치시에 경로를 변경하지 않았다면 ..

[Spring] No converter found for return value of type
Etc/Error 2023. 7. 26. 23:49

🛠️ 오늘의 오류 No converter found for return value of type: class java.util.ArrayList 프로젝트 진행중 AJAX를 사용하던 중 발생한 에러다. Payload 값은 잘 받아오고있는데 Status Code로 404가 계속 콘솔에 찍혔다. 에러 발생 원인 Cotroller에서 ArrayList 객체를 반환하고 있다. 해당 에러는 꼭 ArrayList 형태의 객체에서만 발생하는 것이 아니라 객체를 json 데이터로 변환하지 못할때 발생하는 에러다. 해결 방법 pom.xml 파일에 아래의 라이브러리 코드를 추가한다. jackson 라이브러리는 객체를 json 형태로 변환하는 라이브러리다. com.fasterxml.jackson.core jackson-cor..

article thumbnail
[Eclipse] Checkout conflict with files: org.eclipse.jgit.api.errors.CheckoutConflictException
Etc/Error 2023. 7. 25. 23:23

🛠️ 오늘의 오류 Checkout conflict with files: org.eclipse.jgit.api.errors.CheckoutConflictException 평소와 다를거없이 학원에서 프로젝트를 진행하고 집에서 Pull을 받으려는데 해당 오류가 발생했다. 에러 발생 원인 해당 에러는 협업을 하면서 발생할 수 있다. 1) commit을 하기 전 pull을 받아 로컬을 업데이트 하지 않음 2) pull 시점의 Repository의 HEAD와 나의 HEAD 소스가 다를 때 발생 해결방법 1) 에러가 발생한 프로젝트 우클릭 - >Team-> reset 2) hard 선택 -> Reset 3) 다시 pull을 시도했더니 정상적으로 pull이 진행됐다.

article thumbnail
[프로젝트] 국비지원 1차 프로젝트 소소한 회고
Etc/Project 2023. 6. 27. 00:15

어느덧 국비지원학원에 다닌지 3개월이 거의 다 되어간다. 나는 프로젝트의 PM(조장)을 맡아 약 2주간 1차 프로젝트를 진행하게 되었다. 강사님께서 팀 배정은 원하는 사람들끼리 할 수 없고 랜덤이라고 말씀하셨다. 그 이유는 잘하는 사람들끼리 뭉쳐버리면 나머지 사람들이 붕 뜨거나, 막상 뭉쳐도 별 거 없다는 뜻으로 말이다. 조 배정이 랜덤이라 아쉬웠다. 개인적으로 나는 소통이 잘되고, 조금이라도 욕심이 있는 사람들과 함께 완성도 있는 프로젝트를 만들고 싶었기 때문이다. 일부 몇명은 출석률이 좋지 않았기에 더욱 걱정됐다. 한편으로는 세상에 내 맘대로 되는것은 없다고 그렇게 나는 랜덤으로 배정된 3명의 팀원과 함께 프로젝트를 진행하게 되었다. 프로젝트 요구사항 배운내용이 javascript와 jsp로 게시판 ..

API(Application Programming Interface)란?
Etc 2023. 4. 10. 12:03

개발자라면 API라는 단어를 굉장히 많이 보고 듣게된다. 대체 API가 무엇을 의미할까? API란? 어떠한 프로그램에서 제공하는 기능을 사용자가 활용할 수 있도록 만든 인터페이스(Interface). 어떠한 방식으로 정보를 요청해야 하는지, 그리고 어떤 데이터를 제공 받을 수 있는지에대한 규격 API의 사용으로 해당 기능을 어떻게 구현하는지 몰라도 API가 가져다주는 기능을 사용하면 되니 리소스를 아낄 수 있다. 인터페이스(Interface)란? : 컴퓨터 시스템끼리정보를 교환하기 위한 수단이나 방법 API를 이해하기 어렵다면 실생활과 연관지어 아래 예시를 보면 이해하기 쉽다 우리가 접근하는 사이트 혹은 프로그램을 식당으로 가정한다. 식당에서 제공하는 메뉴판을 API 명세서라고 한다. 손님은 메뉴판이 없..