분류 전체보기
-
[Spring Boot] 엑셀(xlsx) 파일 파싱 후, 서비스 로직에 추가하는 코드 작성하기SpringBoot 2023. 12. 21. 12:09
📖 발단교내에서 진행하는 캠퍼스SW아카데미인 TABA 프로젝트 기간에 발생했던 내용들을 기록하고자 한다. 우리팀의 경우 이미지 인식 AI를 활용한 두피 관리 서비스를 주제로 개발을 진행했었다.아래 사진과 같이 사용자의 두피 사진을 통해 6가지 증상을 측정하는데,6가지 증상에 대한 사용자의 두피 점수와 성별 및 같은 나이대에 대한 평균 값과 비교하여한눈에 보기 쉽게끔 육각형 그래프로 나타내고자 했었다. 프론트에서 이러한 육각형 그래프를 그리기 위해서는백엔드에서 사용자의 성별과 나이대에 맞는 평균 값을 보내줘야했다.해당 값들은 AI 파트를 맡은 팀원이, 추출한 값들을 엑셀(xlsx) 파일로 보내줬고이를 스프링부트에서 파싱하여 프론트에 값들을 보내도록 구현했다. 아래 사진은 해당 엑셀 파일의 일부로,..
-
Tmax AI Bigdata Academy 4기를 마치며Tibero DB (Tmax AI Bigdata Academy) 2023. 12. 19. 21:20
👨💻프로젝트 기간 (기획) 11월부터 조가 편성되어서 프로젝트가 진행되었는데 우리 조는 아래 3가지 주제 중에서 이미지 인식 AI를 활용한 서비스 개발이었다. 1. 생성형 AI(ChatGPT)를 활용한 챗봇 서비스 개발 2. 크롤링 데이터 솔루션을 통한 데이터 수집 3. 실제 데이터 바탕의 이미지 인식 시스템 구축 11월 첫째 주와 둘째 주까지는 팀원들과 아이디어 브레인스토밍 과정을 거치면서 선정된 아이디어를 가지고 피드백을 갖는 시간인 중간 발표를 준비했다. 우리조의 아이디어는 이미지 인식을 활용한 사용자의 두피 상태를 체크하고 맞춤형으로 샴푸를 추천해주고 캘린더 기능으로 기록하는 서비스로 선정되었다. AI Hub에 좋은 데이터가 많아서 두피 관련 자료를 보고 팀원들과의 브레인스토밍 과정에서 해당 아..
-
[Redis] backup1, backup2... 그리고 Failed opening the RDB file crontab (in server root dir /etc) for saving: Read-only file systemRedis 2023. 11. 22. 10:15
현재 진행하고 있는 프로젝트에서 회원가입, 로그인 과정에 레디스를 사용하여 작업을 처리하고 있다. 그런데 배포 서버에 돌아가고 있는 레디스에 접속하여 키값들을 확인해보니, 존재해야 할 키값들이 온데 간데 없는 것이었다. 아래처럼 로컬 환경에서 설치하여 테스트한 레디스와 같이 "signupAuth"와 "autoLogin" 키값들이 보이지않았다. 그리고 처음보는 backup1, backup2 이런 값들이 들어있었다. 찾아보니 redis의 기본포트(6379)로 봇으로 특정되는 누군가가 flushall 명령어를 날려서 해당 레디스의 key값들을 삭제하려는 시도를 수행하면서 기존에 저장되어있던 데이터가 모두 삭제되고 backup1, backup2, backup3 .... 과 같은 백업 정보만 남은 것이다. 그래서..
-
[CI/CD] SpringBoot 프로젝트를 AWS LightSail에 Docker, Github Actions를 활용하여 배포 및 Tibero6와 연결하기CI CD 2023. 11. 16. 22:54
📖 CI/CD란? CI는 Continuous Integration의 약자로 지속적 통합을 의미하며, CD는 Continuous Delivery로 지속적 배포를 의미한다. 이는 애플리케이션 개발 단계를 자동화하여, 계속 똑같은 작업을 반복하는 수고로움을 덜어주는 기능이다. 📖 CI 구축하기 📒 Github Action 설정 CI는 브랜치에 머지하기 전, 테스트를 통해서 오류가 있는지 확인하는 작업이라 생각하면 될 것 같다. 자바 기반의 스프링부트를 사용했기 때문에 아래 사진처럼 GitHub Actions를 만들 때 Java with Gradle을 사용하였다. 그러면 아래 사진과 같은 Edit 창이 뜨게 된다. 해당 .yml 파일에 원하는 과정을 작성하여 저장하면 CI 설정을 할 수 있다. 아래 코드는 CI..
-
[CI/CD] React 프로젝트를 AWS LightSail에 Docker, Github Actions와 Runners를 활용하여 배포해보기CI CD 2023. 11. 12. 17:01
이번 교내 캠퍼스 아카데미에서 프로젝트를 수행하게 되면서 백엔드와 인프라 구축을 맡게 되었다. 백엔드 프레임워크 2개를 쓰게 되어 총 인스턴스를 3개 정도 띄울 거 같은데 그중 첫 번째인 프론트엔드에 해당하는 인스턴스를 생성하고, CI CD를 적용하여 배포를 진행해 보고자 한다. 블로그와 문서들을 참고하여 기록해 둔 것이니 설명이나 내용이 부족한 부분이 있을 수 있음을 고려하고 보면 좋을 것 같다 (여담으로 Tmax 측에서 AWS와 계약을 하여, 인스턴스 비용을 지원해 주기로 해서 부담이 줄어들었다!) 📖 AWS LightSail 인스턴스 생성 create instance 버튼을 클릭하여 인스턴스 생성을 진행한다. 나의 경우 Ubuntu 20.04 LTS 버전으로 OS 환경을 선택했다. 이후, 로컬 cm..
-
Spring Boot JPA와 Tibero6 연동 간 발생했던 에러들 정리Tibero DB (Tmax AI Bigdata Academy) 2023. 11. 11. 09:07
이제 본격적인 팀 프로젝트가 시작되었다. 우리 팀의 경우 이미지 인식을 주제로 하는 프로젝트를 진행하게 되었고, 백엔드의 경우 두 개의 프레임워크를 사용하기로 했는데 하나는 Flask, 나머지 하나는 SpringBoot이다. 사용자가 image를 보내면 Flask를 통해 학습시킨 AI 모델에 전달하여 결괏값을 보내주고, AI와 관련되지 않은 다른 기능들은 SpringBoot를 통해 구현하려고 한다. 사실 Django 하나로 모두 구현해도 되지만, 현 팀원들의 니즈와 현재 공부하고 있는 분야를 최대한 적용하고자 위와 같은 결정을 하였다! 본론으로 들어와서, 현재 SpringBoot와 Tibero6를 로컬환경에 연결하면서 발생했던 오류들과 어떤식으로 해결했는지 기록해두려고 한다. 아래의 Tibero 에러 참..
-
알아두면 유용한 Git 용어/명령어 정리Git 2023. 11. 3. 22:26
📖 Git 용어 모음 📒 Git에서 파일들의 상태 Git에서 파일들은 크게 다음 2가지 상태를 가진다. Untracked 상태 Tracked 상태 그리고 Tracked 상태는 다시 아래와 같은 3가지 상태로 나눌 수 있다. Staged 상태 Unmodified 상태 Modified 상태 1. Untracked 상태 Untracked는 '추적되지 않고 있는'이라는 뜻이다. 이 상태는 파일이 Git에 의해서 그 변동사항이 전혀 추적되고 있지 않는 상태를 뜻한다. 예를 들어, 파일을 새로 생성하고 그 파일을 한 번도 git add 해주지 않았다면 이 상태이다. 2. Tracked 상태 파일이 Git에 의해 그 변동사항이 추적되고 있는 상태이다. Staged 상태 파일의 내용이 수정되고나서, staging ar..
-
Spring Boot JPA를 통해 Tibero6와 연동하기Tibero DB (Tmax AI Bigdata Academy) 2023. 10. 28. 11:39
벌써 교내에서 진행하는 TABA 수업의 운체, AI, DB, Tibero 시험들이 모두 끝났다.. 이제 팀별 프로젝트만을 남겨두고 있는데, 백엔드를 공부하고 있기때문에 Spring Boot와 이번 프로젝트에서 DB를 평소에 사용하던 MySQL이 아닌 Tibero6를 사용해보고 싶어 미리 기록해두려고 한다. (이러고 스프링이랑 티베로 안쓰면 ㅠㅠ) 📖 참고 Tibero6를 윈도우나 리눅스 환경에서 설치했다고 가정하고 연동했던 과정을 기록했습니다. 📒Window 환경에서 Tibero6 설치 https://codecollector.tistory.com/1613 (Tibero) - Window에 설치 및 연결해보기 🍳머리말 local환경에서 Tibero6과 TiberoStudio2를 설치하고 연결해보는 설명글입..