Skip to content

suk13574/websetting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

코멘토-직무부트캠프

1주차 - 스프링 프레임워크와 Maria DB 설정 후 테스트 화면 출력
2주차 - HTTP와 REST API, 통계 API 초안 작성
3주차 - 스프링 부트 개발 환경 셋팅, 통계 API 수정, 통계 API 위한 SQL문 작성해보기
4주차 - API 개발



1주차

스프링 프레임워크와 Maria DB 설정 후 테스트 화면 출력

1. 개발환경 셋팅

  • JDK: 11.0.14
  • IDE: Eclipse 2019-06
  • spring: 5.3.23
  • tomcat: 9.06.68
  • DB
    • MariaDB: 10.2.14
      • [이슈] 기존 설치한 MySQL과 충돌
        • 포트: 3307로 변경
    • myBatis: 3.4.4

2. mariaDB 예제 추가

  • 데이터베이스 만들기(완료)
  • movie 테이블 생성(완료)
  • movie 테이블 예제 데이터 추가(완료)


3. spring, MriaDB, MyBatis 연동 및 데이터 조회

  • [이슈] 한글로 인한 xml 파싱 오류
  • [이슈] XmlBeanDefinitionStoreException
  • MVC 패턴으로 MariaDB 데이터 조회 후 웹 출력 테스트(완료)



2주차

1. 개념 학습

개념 정리하여 pdf 파일 작성하여 document 브랜치에 업로드

  • HTTP에 대하여
  • 브라우저에서 HTTP 요청 흐름
  • REST API와 HTTP 메서드, HTTP 상태코드

2. API 초안 작성해보기

API 작성은 직무부트캠프의 전체적인 내용으로 추후에 계속 수정할 것!

document 브랜치에 API 초안.pdf로 업로드

  • 5개 통계 API 구축
    • 월별 접속자 수
    • 일자별 접속자 수
    • 평균 하루 로그인 수
    • 휴일을 제외한 로그인 수
    • 부서별 월별 로그인 수


3주차

스프링 부트 개발 환경 세팅 및 20년도 로그인 수 API 테스트, 통계 API 위한 SQL 작성해보기

springBoot 브랜치에 업로드

1. 스프링 부트 개발 환경 세팅

  • 빌드 방식: Maven
  • JDK: 11.0.14
  • spring version: 2.2.2RELEASE
  • JSP 테스트
    • pom.xml에 jasper와 jstl 디펜던시 추가
    • test.jsp 작성
      • src/main/webapp/WEB-INF/views 에 파일 생성
    • 컨트롤러 작성
    • 테스트 확인

2. 통계 API를 위한 DB 세팅

  • statistic DB 생성
  • requestInfo 테이블
    • 로그인, 로그아웃, 보드삭제, 보드기록 로그 기록
  • requestCode 테이블
    • 로그인, 로그아웃, 보드기록, 보드삭제
  • uesr 테이블
    • ID, 이름, 부서

3. mybatis, mariaDB 연동 테스트 - 20년도 로그인 수 API 테스트

  • 프로젝트 구조

  • mybatis 설정 코드

    • MybatisConfig.java
  • mapper 작성

    • dao 패키지
    • StatisticMapper.java: 연도 입력하면 해시로 반환하는 인터페이스
    • statisticMapper.xml: xml 파일 통한 쿼리문
  • service 작성

    • service 패키지
    • StatisticService.java: 인터페이스
    • StaticServiceImpl.java: 구현체
  • controller 작성

    • test 패키지
    • settingTest.java
    • "/sqlyearStatistic" 매핑
  • 테스트 화면


4. 통계 API를 위한 SQL 작성해보기

  • SW활용률 API 수정 후 업로드
    • document 브랜치 SW활용률 API.pdf 이름으로 업로드
    • 날짜 데이터 포맷 변경
    • 중복 URI 변경
  • SQL 작성
    • document 브랜치 SQL 작성 폴더에 업로드
    • 월별 접속자 수, 일자별 접속자 수, 부서별 월별 로그인 수 작성
    • 추후 수정 필요

4주차

API 문서와 DB를 참고하여 API 개발
코드: springBoot 브랜치
API 문서 및 SQL 문서: document 브랜치

1. 프로젝트 구조

  • dto

    • LoginUser
    • MonthCnt
  • dao

    • StatisticList.java: statisticList.xml 매핑
    • statisticList.xml: SW 활용률 API 개발 위한 쿼리문
  • Service

    • StatisticService.java: 인터페이스
    • StatisticServiceImpl.java: 구현체, SW 활용률 API 개발 위한 서비스 로직
  • Controller

    • LoginCntController.java: SW 활용률 API 개발 위한 서비스 로직, URI 매핑

2. 월별 접속자 수 API

  • dao

    • 인터페이스
      • public List<LoginUser> selectMonth(String month);
      • 파라미터: month
      • 반환: LoginUesr 리스트
    • SQL
      • id : selectMonth
  • service

    • public HashMap<String,Object> monthLoginUser(String month);
      • 파라미터: month
      • 반환: Json 데이터를 위한 HashMap
      • HashMap: 월별 접속자 수, 월, 성공여부, 접속자 리스트 받음
  • controller

    • 매핑 URI: login/months
  • 실행 예시


3. 일자별 접속자 수 API

  • dao

    • 인터페이스
      • public List<LoginUser> selectDay(String day);
      • 파라미터: day
      • 반환: LoginUesr 리스트
    • SQL
      • id : selectDay
  • service

    • public HashMap<String,Object> dayLoginUser(String day);
      • 파라미터: day
      • 반환: Json 데이터를 위한 HashMap
      • HashMap: 일별 접속자 수, 일, 성공여부, 접속자 리스트 받음
  • controller

    • 매핑 URI: /login/days
  • 실행 예시


4. 평균 하루 로그인 수 API

  • dao

    • 인터페이스
      • public int selectTotalMonth(String yearMonth);
      • 파라미터: yearMonth
      • 반환: int
    • SQL
      • id : selectTotalMonth
  • service

    • public HashMap<String,Object> avgDayLoginCnt(String yearMonth);
      • 파라미터: yearMonth
      • 반환: Json 데이터를 위한 HashMap
      • HashMap: 평균 하루 로그인 수, 년도 월, 성공 여부
    • 매핑 URI: login/avg
  • 실행 예시


5. 부서별 월별 로그인 수 API

  • dao

    • 인터페이스
      • public List<MonthCnt> selectMonthDepartment(String department);
      • 파라미터: department
      • 반환: MonthCnt 리스트
    • SQL
      • id : selectMonthDepartment
  • service

    • public HashMap<String,Object> monthDepartmentLoginUser(String department);
      • 파라미터: department
      • 반환: Json 데이터를 위한 HashMap
      • HashMap: 부서, 성공여부, 월별 로그인 수 리스트
  • controller

    • 매핑 URI: /login/month/departments
  • 실행 예시


6. 휴일을 제외한 로그인 수 API

  • 공휴일 API 받아오기

  • com.devfun.settingweb_boot.API.HolidayInfoAPI.class

    • 위 사이트 활용하여 공휴일 API 받아옴
    • 주요 기능
      • 공휴일 API 조회 후 json으로 받음
      • 받은 json 데이터 파싱 후 날짜만 추출하여 Set으로 담아 리턴
  • dao

    • YYMM 포맷 날짜 String 파라미터 보내면 해당 월에 로그인한 유저 리스트 반환
    • 인터페이스
      • public List<LoginUser> selectYearMonth(String yearMonth);
      • 파라미터: yearMonth
      • 반환: LoginUser 리스트
    • SQL
      • id : selectYearMonth
  • service

    • public HashMap<String,Object> monthWeekdayLoginUser(String yearMonth);
      • 파라미터: yearMonth
      • 반환: Json 데이터를 위한 HashMap
      • HashMap: 휴일을 제외한 로그인 수, 부서, 성공여부, 휴일을 제외한 로그인 유저 리스트
  • controller

    • 매핑 URI: /login/months/weekdays
  • 실행 예시(22년 09월 검색)

    • DB에서 22년 09월 로그인 기록 확인
      • 4개 조회
      • 22년 9월 11일은 추석 공휴일 -> 휴일 제외한 로그인을 조회하면 이 9월 11월 데이터는 없어야 함

7. API구축 후 API와 SQL 문서 수정

  • document 브랜치에서 확인 가능

About

코멘토 - 백엔드 직무부트캠프

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages