[Android Studio] 앱 구동 속도 개선을 위한 SQLite 활용법
·
프로젝트
빠른 개발을 위해 SQLite를 사용하기로 했지만 개발하는 과정에서 마주했던 문제들이 있었다.SQLite는 앱 실행 시 모든 데이터를 새로 입력하고 데이터베이스를 생성하는 방식이라초기 데이터가 많은 경우 로딩 시간이 오래 걸린다는 단점이 있었다.오늘은 이 단점을 해결해 나간 과정에 대해서 작성해보도록 하겠다!! 🤔 첫번째 의문점보통 SQLiteOpenHelper 클래스를 상속받아 앱 실행 시onCreate() 메서드를 통해 처음 데이터베이스를 생성하고 테이블을 정의하여 초기 데이터를 입력할 수 있다. 술안주 월드컵 앱은 다수의 메뉴 데이터와 이미지 경로, 위치 정보 등을 데이터베이스에 저장해야 하는데, 앱 실행 시마다 데이터를 새로 입력하고 데이터베이스를 생성하는 방식은 로딩 시간이 오래 걸려 비효율적..
[Android Studio] SQLite 데이터베이스 구축
·
프로젝트
시험 기간과 모바일 프로젝트 과제 일정이 겹쳐서, 단기간 내에 앱을 개발하기 위해  서버가 필요 없는 SQLite를 사용하기로 했다. SQLite는 파일 기반 데이터베이스로, 안드로이드 앱과 같은 환경에서 데이터베이스 서버를 구축하지 않고도 데이터 저장과 관리가 가능하다.🚩 SQLite 동작 방식안드로이드에서 SQLite는 SQLiteOpenHelper, SQLiteDatabase, Cursor와 같은 주요 클래스를 통해 동작한다.SQLite 관련 클래스 및 인터페이스와 메소드SQLiteOpenHelper 클래스앱 실행 시 필요한 데이터베이스를 생성하고 테이블을 정의하는 데 사용된다.주로 onCreate(), onUpgrade() 메서드를 통해 데이터베이스 초기화 및 버전 관리를 담당한다.메소드주요 용..
[Android Studio] 술안주 월드컵 제안서
·
프로젝트
2023년 11일 약 2주간 진행술안주 월드컵 GitHub 4학년 2학기 모바일 프로그래밍 전공 수업으로 안스 텀프로젝트를 구현해야 했다.재미있는 주제를 선정하고 싶었고 대학생들에게 빼놓을 수 없는 음주와 관련하여제공해줄 수 있는 서비스에 초점을 두었으며 술자리를 옮길 때 어디 술집을 갈지, 어떤 안주를 먹을지사소한 고민거리를 해결할 수 있는 술안주 월드컵 앱을 구현했다.거기에 우리학교 학생들을 위해 결승한 술안주를 판매하는학교 주변 술집 정보가 적힌 리스트도 추가적으로 제공할 예정이다.술안주 월드컵은 16강, 8강, 4강 이렇게 세 가지 라운드 중에 하나를 선택할 수 있다. 🎨 UI 디자인 🎯 월드컵 게임 로직 설계초기 설정술안주 목록을 데이터베이스에서 가져온다.사용자가 선택한 라운드 수에 맞게 랜..
[AWS 오류 해결] EC2 환경변수 설정하기
·
프로젝트/짠모아
EC2 인스턴스에서 프로젝트를 직접 빌드하고jar 파일을 실행시켜서 얻은 nohup.out파일을 직접 확인 해봤다.EC2에서 애플리케이션 로그 확인하기 문제 원인로그를 분석해보니 데이터베이스 환경 변수를 전혀 읽어오지 못하고 있었다.위 사진에서 처럼 MySQL 연결을 위한 환경 변수를 EC2 인스턴스는 전혀 모르고 있었다. .bashrc 파일에 환경변수 설정.bashrc 파일에 환경변수를 설정했지만main 브랜치에서 push하고 서버가 배포되었을때 서버는 여전히 응답하지 않았고,ec2 터미널에 접속해 직접 프로젝트를 빌드해야 서버가 제대로 동작했다.  🚨 환경 변수를 설정했는데도 서버는 왜 제대로 동작하지 않을까?CodeDeploy는 시스템 서비스로서 동작하기 때문에,사용자 로그인 세션에서만 로드되는 ..
[AWS 오류 해결] EC2에서 애플리케이션 로그 확인하기
·
프로젝트/짠모아
테스트 코드 contextLoads() FAILED 오류 해결하기 를 통해서 로컬 자바 애플리케이션에서는 오류가 발생하지 않았지만, 서버에 배포된 애플리케이션에서는 오류가 발생할 수 있다는 점을 깨달았다.EC2 인스턴스에 올라간 애플리케이션의 실행 로그를 확인하는 방법이 중요하다는 생각이 들어서EC2에서 애플리케이션 로그를 확인하는 과정을 정리해 보았다. 😁 EC2에서 애플리케이션 빌드 및 실행 과정1. 애플리케이션 빌드./gradlew build먼저 애플리케이션을 빌드한다.이 명령어는 Gradle을 사용하여 프로젝트를 빌드한다. build 태스크는 소스 코드를 컴파일하고, 테스트를 실행하며, 최종적으로 배포 가능한 JAR 파일을 생성한다.2. 빌드된 JAR 파일이 위치한 디렉토리로 이동cd build..
[AWS 오류 해결] 테스트 코드 contextLoads() FAILED 오류 해결하기
·
프로젝트/짠모아
문제 원인테스트 코드 contextLoads() FAILEDEC2로 gradlew 빌드하는 과정에서 다음과 같은 오류가 발생했다.ZzanmoaApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1786 Caused by: jakarta.persistence.PersistenceException at Abst..
[AWS 오류 해결] swap 파일로 메모리 할당하기
·
프로젝트/짠모아
EC2 인스턴스에서 서버 파일을 git clone한 후, 서버에 접속하면 무한 로딩이 생겼다.그리고 CPU 사용량을 보니 90%을 찍은 흔적도 있었다. 문제 원인무한 로딩 문제는 메모리 부족으로 인해 발생할 수 있다는 것을 알게 되었다.EC2 프리티어에서 제공하는 t2.micro 인스턴스는 RAM이 1GB에 불과하여메모리 과부하로 인해 빌드가 진행되지 않는 것으로 보였다. 💡 해결 방법: Swap 메모리 사용Swap 메모리는 RAM이 부족할 때 리눅스에서 HDD 공간을 RAM처럼 사용하는 방법이다.이를 통해 부족한 RAM을 보완하여 시스템이 정상적으로 작동할 수 있도록 한다.1. swap 메모리 할당sudo dd if=/dev/zero of=/swapfile bs=128M count=162. swap ..
[AWS 오류 해결] CodeDeploy 로그 확인하기
·
프로젝트/짠모아
서울 공공데이터 활용 경진대회의 참가 조건이개발 결과물(앱스토어/웹 서비스 URL)을 등록 완료한 링크를 제출하는 것이었다. 그래서 AWS를 이용해 서비스 서버를 구축해야만 했다.하지만.. 약 2주간 EC2 Public 주소에 접근하지 못했다. 이를 해결해 나간 과정을 차례대로 작성할 예정이다. 먼저, EC2 인스턴스 터미널에 접속하자 !!! 👀 CodeDeploy 로그 확인하기로그 확인 명령어less /var/log/aws/codedeploy-agent/codedeploy-agent.log로그 내용2024-04-18T05:55:05 ERROR [codedeploy-agent(30886)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error..
[서울시 공공데이터 경진대회] 최우수상 수상 프로젝트 - 짠모아
·
프로젝트/짠모아
짠모아 Github Repository[서울 열린데이터광장] 공공데이터 활용 창업경진대회 역대 수상작 확인하기 🏆 소비 절약 플랫폼 "짠모아" 프로젝트서비스명 : 짠모아팀명 : 짠돌이 (UI 디자이너(1), FrontEnd(2), BackEnd(2))약 2~3개월간 개발 진행 최근 고물가와 고금리로 인해 소비자들의 절약과 현명한 소비에 대한 관심이 커지고 있다. 이에 따라 소비자들은 더 나은 가격에 물품을 구매할 방법을 찾고 있으며, ‘거지방’, ‘무지출 챌린지’, ‘현금 챌린지’와 같은 새로운 절약 문화가 확산되고 있다. 이러한 흐름은 소비자들이 자신의 소비 패턴을 점검하고, 불필요한 지출을 줄여 저축을 늘리는 데 중점을 두고 있음을 보여준다. 이러한 배경에서 소비자들이 보다 쉽고 효과적으로 물가 정..