오늘 뭐입지?

  • 외출 시 날씨를 일일이 확인하고 기온에 맞는 옷차림을 고르는 것에 불편함을 느껴왔습니다. 그래서 이를 위한 서비스를 제공하는 웹 서비스를 개발하고자 하였습니다.
  • <오늘 뭐입지?> 는 날씨 API를 통해 현재 서울 날씨와 회원의 성별 정보를 통해 오늘의 옷 코디를 해주는 서비스를 제공합니다.

과정

  • Tomcat : 데이터를 제공하는 웹 서버
  • Spring Framework : 동적 웹 사이트 개발 플랫폼
  • MySQL
  • 기상청, 카메라 오픈 API : 회원 각 계정 당 개인 옷들을 사진으로 보관할 수 있는 옷장과 위치한 지역의 날씨에 따른 추천 코디 등을 볼 수 있는 웹 서비스를 제공.

결과

  • 로그인 한 회원은 Web 서비스에 접속 시 메인화면에서 회원이 위치한 지역의 기온과 날씨를 체크할 수 있습니다.
  • 이 기온에 알맞은 옷차림을 확인할 수 있고 기온과 회원의 성별에 따라 추천 코디를 이미지로 확인할 수 있습니다.
  • 메인 화면에서 ‘내 옷장’페이지에 접속 시 상의, 하의, 아우터, 기타 4가지 대분류 카테고리를 확인할 수 있는데 이 카테고리 중 하나를 선택하면 더 세분화된 분류의 카테고리 페이지가 뜹니다.
  • 세분화 된 페이지 내에서 + 기호를 누르면 카메라 API를 통해 회원 본인의 옷 사진을 찍을 수 있고 서버의 DB에 파일 형태로 저장이 됩니다.
  • 회원은 세부 페이지에서 저장된 사진을 확인할 수 있습니다.

일정

  • ~1월 중순 : 기획, 예제문제 완성 Java의 Spring 환경
1. 기본 실력
* http://addio3305.tistory.com/ 로 기본 플랫폼 구현
Java Spring 환경에 대한 설명
이해가 중요!
* Spring이 뭔지, 일반적인 platform 을 만들면서 최소한의 수준을 충족 시키기
* 예지 문제를 풀면서 실력 향상, 기능의 변형이나 추가에 대한 task가 있을 수 있음

2. 기획
IoT에 대한 대략적인 이해 필요
  • 2월 말 : 70~80% 완성
  • 개강 : 흐름대로
  • 5월 : 90% 완성
  • 6월 : 완료

사전 공부

  • 17-12-14
1. Spring개발 입문사이트
	http://addio3305.tistory.com/category/Spring?page=2
        - 개발환경구축
        - 스프링프로젝트생성
        - 스프링MVC구조
        - 로그(Log4j), 인터셉터(Interceptor)
        - Mybatis연동
        - 게시판: 목록, 상세, 등록 기능구현
        - 파일 upload/download
        - AOP 설정
        - 페이징 by 전자정부프레임워크
        - 페이징 by jQuery/Ajax
* http://addio3305.tistory.com/category/Spring (1),(2),(3) 읽고 해보기
* IoT에 대한 조사 해오기

Tomcat : 
Maven : 어떤 라이브러리를 사용하고 싶을 때 그 라이브러리를 자동으로 찾아줌
STS : Spring Tool Suit / 이클립스에서 spring을 사용할 수 있게 해줌
SVN : 여러명의 개발자가 함께 하는 프로젝트일 경우 꼭 필요
JSDT : jQuery는 이클립스 내에서 코드 어시스트 기능을 사용할 수 있게 해줌
  • 17-12-18
1. ActiveMQ : IOT protocol
	http://activemq.apache.org/

2. ActiveMQ예제
	https://examples.javacodegeeks.com/enterprise-java/jms/apache-activemq-hello-world-example/
* http://addio3305.tistory.com/category/Spring (4),(5),(6) 읽고 해보기
* http://activemq.apache.org/mqtt.html 사이트에서,
윈도우 버전으로 activemq 서버프로그램을 다운받아
ActiveMQ가 서버로 동작하니 서버프로그램을 실행해 이클립스 버전으로 테스트 해보자
(코드가 인터넷 상에 많이 떠돌아 다님)
* Subscribe/Publish 모델 (= 데이터교환 모델) 위에서 돌아가는 프로토콜에 대한 조사
  • 17-12-21
1. ActiveMQ예제를 이클립스에서 2개 독립프로젝트로 실행
     - 1개프로젝트(메시지생성-등록), 1개프로젝트(메시지수신-처리)
     - 별도로 ActiveMQ 브로커(메시지서버)가 백그라운드에서 실행됨
	https://examples.javacodegeeks.com/enterprise-java/jms/apache-activemq-hello-world-example/

2. 서울시 대중버스 시스템을 모델링하여 다음과 같이 시뮬레이션
   프로그램 작성
     - 서울시 대중교통시스템전용 ActiveMQ 브로커(메시지서버) 실행
     - 이클립스 프로젝트(KookminBusInformation) -> 국민대 정문 버스정류장 안내시스템 구현
                                                   위치정보구독 by receiving MQTT message
     - 이클립스 프로젝트(BusLocationNode) -> 3개노선(7211, 153, 110B) 각각 2개 쓰레드로 
                                             실시간위치정보 Publish by sending MQTT message
* http://addio3305.tistory.com/category/Spring (7),(8),(9),(10) 읽고 해보기
 (spring(9)부터 DB는 Oracle이 아닌 MySQL로 할 것)
* ActiveMQ
=>  서울시 대중버스 시스템을 모델링하여 다음과 같이 시뮬레이션
   프로그램 작성
     - 서울시 대중교통시스템전용 ActiveMQ 브로커(메시지서버) 실행
     - 이클립스 프로젝트(KookminBusInformation) -> 국민대 정문 버스정류장 안내시스템 구현
                                                   위치정보구독 by receiving MQTT message
     - 이클립스 프로젝트(BusLocationNode) -> 3개노선(7211, 153, 110B) 각각 2개 쓰레드로 
                                             실시간위치정보 Publish by sending MQTT message
  • 17-12-26
* spring (10) 마저 해오기
* 서울시 버스 시스템 프로그래밍 해오기
  • 17-12-28
1. 본인의 스마트폰을 포함하여 3가지 폰이 가지고 있는 센서의 종류에
   대하여 조사하라.
=> Galaxy S7, Iphone 6S, Galaxy Tab

2. 대표적인 안드로이드앱 프로그램 개발환경인 Android Studio(IntelliJ기반)을
   설치하고 HelloWorld앱프로그램을 본인의 스마트폰에서 실행하도록 하라.
=> PC에서 안드로이드 스튜디오로 만든다음에 유선으로 메뉴를 누르면 다운로드가 됨!

3. 본인의 스마트폰이 가지고 있는 모든 센서의 동작여부를 확인하는
   앱을 구현하고 데모하라.

* http://addio3305.tistory.com/category/Spring (11),(12) 읽고 해보기
* 서울시 버스 시스템 보완해보기
  • 18-1-2
* 15페이지까지
* spring -> 앞으로 5월까지 할 것
사용자 개념 추가 -> 로그인 기능, 게시물에 게시자 표시
SNS와 연동
* 2,3번 마저
  • 18-1-4
* 앞으로 할 IoT 플랫폼 기획내용 -- 스마트폰의 어떤 센서를 특성화 시킨 것
* 180104 폴더 안, 더 나은 시스템 아키텍쳐를 찾아오기
  • 18-1-8
* 프로그램구조토론 3 완성
  • 18-1-11
* 프로그램구조토론 4 완성
* 스마트폰의 GPS 센서 3일간 테스트 하기
* 만들 것 다시 생각해보기
  • 18-1-15
* 서비스 다시 구상
* user table 생각해 올것. 어떤 열? 어떤 타입? -> 완성하진 못해도 중간과정 발표할 것
  • 18-1-17
* 기획한 것 스토리보드 완성
* user table 보완하기
  • 18-1-25
* Singleton(bean) : 객체의 생성은 한번만 하고 요청이 있을때마다 주소값을 알려주어 메모리 소모를 줄이고 속도를 높인다. getBean()
* AOP : 모든 서비스 로직에선 인증(예) proxy를 거쳐야 해당 DAO로 접근할 수 있도록 한다. 새로운 코드를 추가했을 때 원래 코드를 건들이지 않아 위험이 작아진다.
* user table 에 회원레벨 column 추가
* 웹에서 사용 가능한 카메라 API 솔루션 컴포넌트 찾기
* DAO 전 인증하는 프록시 만들어 AOP 기능 완성하기 (spring 16 참고)
  • 18-1-31
* 180131.txt : 템플릿과 callback 함수를 이용해 try 안의 내용을 분리시킬 수 있다.
* 인증 AOP : AOP는 어느 위치든 들어갈 수 있다. 회원만 접근 가능한 게시판 / 해당 글쓴 회원만 수정하기가 보이는 boardDetail 둘 중 하나를 먼저 구현하자
* 카메라 API : 웹에서 돌아가도록 하기. http가 되는 웹 카메라 API를 새로 찾거나 톰캣이 https가 되는 방법을 찾기
  • 18-2-7
* 180207.txt 2번 스터디 - 메일
* 인증, 보안
* 인증 AOP 하기 전에 회원가입, 로그인 페이지 먼저 만들기 -> 메일을 보내서 받고 링크를 클릭하면 본인이 맞는 것으로(제일 간단)
  • ~
개발