훈련병의 개인정보도 지켜주는 인편지기, 넥스트 레터
I'm on the, NEXT LETTER
[인터넷 편지 현황]
- 육군 => 더캠프
- 해군 => 해군교육사령부
- 공군 => 공군 기본군사훈련단
[기존 인터넷 편지의 문제]
- 주변에 친구한테 부탁해서 내 SNS 계정을 알려줘야하나요?
- SNS에 내 개인정보를 업로드하기엔 불쾌한데..
- 육군은 어플도 있는데, 해군/공군은 모바일에서 PC 버전으로 보는 건 불편해요.
- 인편 작성하다가 자꾸 사라져요.
- 훈련소 끝나고 나면 인터넷 편지를 다시 꺼내 볼 수 없어요.
[배경]
- 훈련소에서 훈련병들에게 유일하게 힘이되는 것이 "인터넷 편지"입니다.
- 기존의 인터넷 편지 어플리케이션인 "더캠프"와 "공군 기훈단"을 Legacy System으로 정의하고
새로운 기능을 추가하고 기존 기능을 개선하고자 합니다. - 보다 안전하고 편한 인터넷 편지 발송 System을 통해 훈련병들에게 힘을 주고자 이번 프로젝트를 기획했습니다.
[핵심기술 : 웹 스크래핑 기술]
웹 스크래퍼가 우리 서비스의 핵심입니다.
기존의 인터넷 편지 시스템에 Request를 보내고 그에따른 Response를 받습니다.
[주요 기능]
육군 더캠프 | 해군 교육사 | 공군 기훈단 | 넥스트 레터 | |
---|---|---|---|---|
모바일 버전 제공 | ⭕ | ❌ | ⭕ | ⭕ |
PC 버전 제공 | ⭕ | ⭕ | ⭕ | ⭕ |
훈련 종료후 열람 | ❌ | ❌ | ❌ | ⭕ |
개인 단축 URL 공유 | ❌ | ❌ | ❌ | ⭕ |
개인정보 보호 | ❌ | ❌ | ❌ | ⭕ |
익명 편지 | ⭕ | ❌ | ⭕ | ⭕ |
발송 실패 시, 백업 | ⭕ | ❌ | ❌ | ⭕ |
-
주요 기능 ① : 모바일/PC 모두 쉽고 편하게
As-is : 불필요한 어플리케이션 설치, 모바일 환경 WEB의 부재
=> To-be NextLetter : 반응형 WEB으로 구축 -
주요 기능 ② : 훈련소에서 받은 고마움은 평생도록
As-is : 훈련소에서 프린트해 받은 인터넷 편지는 파손, 분실 후 복구 불가
=> To-be NextLetter : 발송된 편지를 암호화된 DB에 저장, 사용자 인증 후 언제든지 열람 -
주요 기능 ③ : 개인 Blog형 URL로 공유는 간편하게
As-is : 인터넷 편지 작성 방법을 서술해서 줄글로 공유
=> To-Be NextLetter : 인터넷 편지 작성 할 수 있는 페이지의 단축 URL 을 공유 -
주요 기능 ④ : 개인정보 보호를 우선으로
As-is : 군 입대전 친구에게 자신의 SNS 계정을 공유, 입대 후 생년월일/전화번호 등 개인정보를 공개 업로드
=> To-be NextLetter : 인터넷 편지를 수신할 수 있는 URL을 입대전 개인 SNS에 게시 -
주요 기능 ⑤ : 부가기능으로 더욱 확실하게 안전하게
익명 편지 발송 기능 추가
발송 실패 시, 백업 기능 추가
- ECMAScript 6 지원 브라우저 사용
- 권장: Google Chrome 버젼 77 이상
- Java 1.8 버전
- Spring MVC Framework
- MariaDB
- Docker
- BootStrap
- HTML5
- CSS3
Project Download
$ git clone https://github.com/osamhack2021/WEB_NextLetter_SeaSky.git
Using Web Project
- Project Setting
- Tomcat 8.0.53 (recommend version) Deploy
Using JAVA Module
- SpringPRJ/src/poly/mail Package 내 .java File
- 육군 더캠프 => TheCampLibrary.java 공군 기훈단 => AirForceLibrary.java
- 하단의 프로젝트 사용법 참고
Work Flow
- 입대전
- 입대 후 인터넷 편지 발송
- 수료 후 인터넷 편지 재조회
육군 더캠프 라이브러리 (JAVA Code)
/*
TheCampLibrary.java
육군 더캠프
*/
import poly.dto.CookieDTO;
import poly.dto.MessagesDTO;
import poly.dto.SoldierDTO;
import poly.dto.UserDTO;
import poly.mail.TheCampLibrary;
public static void main(String[] args){
//더캠프 로그인
UserDTO uDTO = new UserDTO();
String thecamp_id="더캠프 아이디"; //더캠프 아이디
uDTO.setThecamp_id(thecamp_id);
String thecamp_pw="더캠프 암호"; //더캠프 암호
uDTO.setThecamp_pw(thecamp_pw);
//입대자 정보
SoldierDTO sDTO = new SoldierDTO();
String name="김땡땡"; //입대자 이름
sDTO.setName(name);
String birth="20010616"; //입대자 생년월일 8자리
sDTO.setBirth(birth);
String missSoldierClassCdNm="예비군인/훈련병"; //입대자 신분 (고정)
sDTO.setMissSoldierClassCdNm(missSoldierClassCdNm);
String grpCdNm="육군"; //군종 (고정)
sDTO.setGrpCdNm(grpCdNm);
String trainUnitCdNm="육군훈련소"; //입대 훈련소
sDTO.setTrainUnitCdNm(trainUnitCdNm);
String enterDate="20210913"; //입대일자 8자리
sDTO.setEnterDate(enterDate);
String missSoldierRelationship = "FRIEND"; //관계
sDTO.setMissSoldierRelationship(missSoldierRelationship);
//발송할 메시지
String title = "라이브러리 테스트"; //편지 제목
String content = "라이브러리 발송을 위한 테스트 중입니다. 이 내용을 폐기 하십시오. This is TheCamp Test."; //편지 내용
MessageDTO mDTO = new MessageDTO();
mDTO.setTitle(title);
mDTO.setContent(content);
try {
String soldier_code = TheCampLibrary.getSoliderCode(uDTO, sDTO);
String msg = TheCampLibrary.sendMsg(uDTO, sDTO, soldier_code, mDTO);//메시지 발송
} catch (Exception e) {
e.printStackTrace();
}
}
공군 기훈단 라이브러리 (JAVA Code)
/*
AirForceLibrary.java
공군 기훈단
*/
import poly.dto.MessagesDTO;
import poly.dto.SoldierDTO;
import poly.mail.AirForceLibrary;
public static void main(String[] args){
//입대자 정보
SoldierDTO sDTO = new SoldierDTO();
sDTO.setName("김땡땡"); //이름
sDTO.setBirth("1999016"); //생년월일 8자리
sDTO.setEnterDate("20210405"); //입대일 8자리
MessageDTO mDTO = new MessageDTO();
mDTO.setTitle("더캠프 테스트"); //편지 제목
mDTO.setContent("더캠프 테스트 중입니다."); //편지 내용
mDTO.setRelation("친구"); //관계
mDTO.setPw("1234"); //편지 비밀번호 => 기훈단 홈페이지내 편지 조회 및 삭제
String result = "";
try {
result = AirForceLibrary.sendMsg(sDTO, mDTO);
} catch (Exception e) {
e.printStackTrace();
}
}
- kim hyun ki ([email protected]), Github Id: Hyunki6040
- kim seong min ([email protected]), Github Id: tolelom
This project is licensed under the terms of the MIT license.