[Application] Android Studio - 사이드바를 이용한 페이지 구현
·
Side Project/Application
시간표와 공지사항 두가지 기능을 담을 예정이므로, 사이드바를 이용해서 페이지를 구분하도록 구현해보겠다.기본 설정으로 생성한다. build.gradle.ktsbuild.gradle.kts에 다음과 같이  의존성을 추가한다. // Navigation Compose 추가 implementation(libs.androidx.navigation.compose) // 네비게이션 지원 // Material Icons 추가 (선택 사항) implementation(libs.androidx.material.icons.core) // 기본 아이콘 implementation(libs.androidx.material.icons.extended) // 확장 아이콘주석과 같이, 네비게이션을 지원하기 위..
[Application] 엑셀 파일을 Parsing해서 DB로 저장하기
·
Side Project/Application
다소 무거워지던 프로젝트의 열화판으로, 오직 공지사항 스크래핑과 시간표 기능만 모바일 애플리케이션으로 구현한다. 모든 백엔드 서버는 스프링부트로 구축하며, 안드로이드 스튜디오에서 API에 접근해 UI를 구현한다. 이를 위해 먼저 엑셀로 올라오는 개설과목 정보를 읽어 DB에 저장하는 기능을 구현하였다.  실사용 시에는 외부 서버에 파일을 따로 관리해야 하지만, 현재는 프로젝트 directory에 테스트용으로 둔다. 자세한 코드는 github에 저장해두었으며, 본 포스트에서는 핵심적인 내용만 다뤄보겠다. DB 연결과 관련한 내용은 SideProject 카테고리의 '중단'에서 자세히 다루었다.  Course.java 엔티티package zerogod.android_backend.model;import jaka..
ECEtaskHelper: 콘솔로그 제거, 캐시(Cache) 설정을 통한 성능 개선 및 보안 강화
·
Side Project/중단
배포 후에 예상치 못한 문제들을 많이 발견했다. 우선 실제 서버에 배포하면서 console.log 등을 제거할 필요가 있었고 공지사항 스크래핑을 비롯해 다소 느린 문제, 그리고 콘솔 창의 많은 경고였다. 이를 위해 차근차근 해결해보기로 하였다. 우선 콘솔 로그를 제거하기 위해 App.js에 다음 설정을 추가하였다. 콘솔 로그 제거// 배포 환경에서 console.log, console.warn 지우기if (process.env.NODE_ENV === "production") { console = window.console || {}; console.log = function no_console() {}; console.warn = function no_console() {}; con..
ECEtaskHelper: CloudType을 이용해 배포하기
·
Side Project/중단
CloudType을 이용해 테스트 배포를 해보기로 한다.클라우드타입 (cloudtype.io) 모두의 플랫폼팀, 클라우드타입복잡한 클라우드 설정 없이 10분 만에 서비스를 배포하고 운영하는 방법, 클라우드타입cloudtype.io CloudType은 쉽게 프로젝트를 배포할 수 있는 플랫폼이다. 물론, 프레임워크와 웹에 대한 이해가 있어야 쉬운 것 같다. 나는 그리 많이 아는 것은 아니었으나 이번에 약 3일간, 하루 몇시간씩 배포, 버그 수정, 배포, 버그 수정을 반복하다 보니 어느정도는 이해하게 된 것 같다.  배포를 진행하기에 앞서 몇가지 수정이 필요하다. 우선 기존의 프로젝트는 "http://localhost:8080"로 설정되어 있기 때문에 이를 실제 서버 url로 변경해주어야 한다. 이는 배포 후..
ECEtaskHelper: HomePage에 공지사항 스크래핑(Scraping)하기
·
Side Project/중단
홈에는 어떤 것들이 있어야 할까라는 질문에 공지사항이라 답한 마약사범 형님의 의견에 따라, 아주광장의 주요 공지사항 일부를 스크래핑해 배치하기로 했다. 스크래핑 특정 웹 페이지에서 필요한 데이터(텍스트, 이미지, 메타데이터 등)를 추출하는 작업 크롤링자동화된 프로그램(일명 웹 크롤러, 웹 스파이더, 봇 등)을 사용하여 웹 사이트의 여러 페이지를 탐색하면서 데이터를 수집하는 과정 두 정의는 약간 다르다. 나도 내가 한게 크롤링인 줄 알았다. SpringBoot에서는 Jsoup 라이브러리를 통해 스크래핑과 간단한 크롤링 작업을 지원한다. 학교 홈페이지에서 공지사항 페이지의 HTML 구조를 분석하고 Jsoup 라이브러리를 이용해 일반공지와 장학공지, 고정된 공지사항들을 스크래핑하려 한다.  이 포스트에서는 일..
ECEtaskHelper: 시간표 페이지(SchedulePage) 구성하기(3) - 시간표 렌더링
·
Side Project/중단
길고 긴 버그와 버그와 버그와 버그 끝에 시간표를 렌더링할 수 있게 되었다. 정말 길고 길었고, 이전에 '시간표 페이지(SchedulePage) 구성하기(2)'에서 가장 어려웠다고 언급했던 것과는 비교가 안될 정도로 어려웠다.  시간표를 렌더링하는데 있어서 아래 사항들을 중점에 두었다. 1. 시간표는 SchedulePage의 right-section에 맞추어 배치되어야 한다.2. 담은 과목들의 체크박스를 수정할 때마다 실시간으로 반영되어야 한다.3. 각 과목의 수업시간을 요일과 교시로 분리하고, 각 교시마다 차지해야하는 시간을 명확히 해야 한다. 4. 각 과목이 차지하는 시간만큼 셀을 병합하고, 그 내부를 과목 정보로 채워야 한다.5. 시간과 구분선을 표기해야 한다. 6. 과목마다 다른 색을 가져야 한다..
zerogod-ai-dev
'Side Project' 카테고리의 글 목록 (2 Page)