당신의 데이터 요금을 아껴주는 똑똑한 와이파이 도우미
DataSaver는 다음과 같은 특징이 있습니다.
- 사용자가 설정에서 와이파이를 연결 및 해제하는 번거로운 과정을 앱의 백그라운드 작업을 이용하여 자동으로 진행합니다.
- 와이파이의 품질이 매우 낮아 실제로 연결이 불가능하거나 신뢰할 수 없는 경우 자동으로 제외시킵니다.
- 지인이 알고있는 와이파이 정보를 쉽게 공유하거나 자신의 와이파이 정보를 백업하는 기능을 제공합니다.
개발 환경은 아래와 같습니다.
- STS 3.9.0.RELEASE
- Amazon EC2 (https://aws.amazon.com/ko/ec2/?nc2=h_m1)
- Amazon S3 (https://aws.amazon.com/ko/s3/?nc2=h_m1)
- MySQL 5.5.57
자세한 사항은 프로젝트 소스 내 build.gradle 파일을 확인해주세요.
dependencies { // spring-boot-starter compile('org.springframework.boot:spring-boot-starter-aop') compile('org.springframework.boot:spring-boot-starter-data-jpa') compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-configuration-processor') compile('org.springframework.boot:spring-boot-starter-mail') testCompile('org.springframework.boot:spring-boot-starter-test') // mysql-connector-java runtime('mysql:mysql-connector-java') // java-jwt compile('com.auth0:java-jwt:3.2.0') // springfox-swagger2 compile('io.springfox:springfox-swagger2:2.2.2') compile('io.springfox:springfox-swagger-ui:2.2.2') // gson compile('com.google.code.gson:gson:2.7') // commons-lang3 compile('org.apache.commons:commons-lang3:3.0') // aws-java-sdk compile('com.amazonaws:aws-java-sdk:1.11.66') // commons-io compile('commons-io:commons-io:2.4') }- Git 클론
git clone "https://github.com/DataSaver-Dev/DataSaver-API.git" - STS 임포트
- 패키지 익스플로러에서 마우스 우측 버튼을 눌러 임포트를 선택합니다.
- 'Gradle (STS) > Gradle (STS) project'을 선택하고 다음을 누릅니다.
- 아래와 같은 팝업에서 빌드 모델을 반드시 누른 후 완료를 누릅니다.
- application.properties 파일 생성
- application.properties 파일은 API 연동에 필요한 귀중한 정보(데이터베이스, 구글 웹 메일, 아마존 서비스 등)를 포함합니다.
- 'DataSaver-API > src/main/java'에서 해당 파일에서 소스 폴더명를 resources로 생성합니다.
- resources에 파일명을 application.properties로 생성합니다.
- 아래와 같은 application.properties 파일을 자신의 개발 환경에 맞게 수정해서 저장합니다.
server.contextPath=/v1 spring.jpa.hibernate.ddl-auto=update spring.jpa.database=mysql spring.jpa.show-sql=true spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://[데이터베이스 URL]:[데이터베이스 포트]/[데이터베이스 이름]?useUnicode=true&characterEncoding=utf8 spring.datasource.username=[데이터베이스 계정] spring.datasource.password=[데이터베이스 비밀번호] logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=[구글 계정] spring.mail.password=[구글 비밀번호] spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true amazon.accessKeyId=[아마존 접근 키 아이디] amazon.accessSecretKey=[아마존 비밀 키] amazon.userProfileImgBucketName=[사용자 프로필 이미지 버킷 이름] amazon.endPoint=[아마존 엔드 포인트] gcm.apiKey=[구글 클라우드 메시지 API 키]- 실행 및 테스트
- 최초 실행시 'DataSaver-API > src/main/java > DataSaverApplication.java'를 실행합니다.
- 아래와 같이 스웨거를 통해 API 명세를 확인할 수 있습니다. (http://127.0.0.1/v1/swagger-ui.html)
클릭하시면 크게보실 수 있습니다.
DataSaver는 다음과 같이 구성되어 있습니다.
DataSaver-API ├── build.gradle (클래스패스 파일) ├── build (빌드 디렉토리) ├── gradle (그래들 디렉토리) ├── images (이미지 디렉토리) ├── LICENSE (프로젝트 라이센스 파일) ├── README.md (프로젝트 설명서 파일) ├── src (소스 디렉토리) ├── resources (리소스 디렉토리) ├── src/main/java (자바 소스코드 디렉토리) │ ├── com.datasaver.api (루트 패키지) │ │ ├── DataSaverApplication.java (Spring Boot 앱 소스파일) │ │ ├── controllers (컨트롤러 패키지) │ │ │ ├── forms (폼 패키지) │ │ │ ├── responses (리스폰스 패키지) │ │ │ │ ├── data (데이터 패키지) │ │ ├── domains (도메인 패키지) │ │ │ ├── views (뷰 패키지) │ │ ├── payloads (페이로드 패키지) │ │ ├── repositories (레포지토리 패키지) │ │ ├── services (서비스 패키지) │ │ │ ├── interfaces (인터페이스 패키지) │ │ ├── utils (유틸 패키지) │ │ │ ├── auth (인증 패키지) │ │ │ ├── aws (아마존 서비스 패키지) │ │ │ ├── gcm (구글 클라우드 메세징 패키지) │ │ │ ├── log (로그 패키지) │ │ │ ├── mail (메일 패키지) │ │ │ ├── password (비밀번호 패키지) │ │ │ ├── res (리소스 패키지) │ │ │ ├── swagger (스웨거 패키지) ... 본 프로젝트는 Apache 2.0 License를 따릅니다. http://www.apache.org/licenses/LICENSE-2.0
기타 문의사항이 있으실 경우 아래의 문의 수단으로 연락해주세요.


