프로젝트 개요

한남대학교 컴퓨터공학과 동아리 PIONEER를 운영하던 중 불규칙적으로 가입하는 신규 회원들에게 일일이 동아리에 대해, 진행중인 스터디에 대해 설명하는 것이 비효율적이라고 생각했다. 컴공답게 웹 개발을 통해 불편함을 해소하고자 개발을 시작했다.

프로젝트 설명

개발환경

Java, SpringBoot, MariaDB, fetch API, JQuery, Bootstrap

프로젝트 기능

  1. 회원 관리(Spring Security)
    • 회원가입
    • 로그인/로그아웃
    • 권한
  2. 스터디 관리
    • 스터디 개설
    • 스터디 신청/취소
    • 스터디 삭제
    • 스터디 모집/진행/종료
  3. 관리자 페이지
    • 회원 권한 부여
    • 회원 삭제
    • 스터디 상태 변경
    • 스터디 삭제

프로젝트하면서 배운 기술

  1. CI/CD
    • Travis-ci
  2. AWS
    • S3
    • AMI
    • codedeploy
    • RDS
    • Route 53
  3. SSL
    • letsencrypt(certbot)
    • DNS
  4. SpringBoot
    • JPA
      • Join Mapping
    • Spring Security
      • Form Login
      • loadUserByUserName
      • csrf
  5. nginX
  6. javascript
    • ajax
      • XHR
      • JQuery
      • fetch API
    • DOM
  7. template engine
    • mustache
    • thymeleaf

프로젝트 끝나니까 아쉬운 점

  1. 네이밍
    • 회원 Entity class 이름을 Member로 한것. 다음엔 User로 하자.
    • JOIN TABLE이름은 테이블네임 + 테이블네임으로 하자. 테이블네임+테이블네임+Mapping을 사용하지 말자.
  2. URL 체계
    • URL 체계를 그려보고 리팩토링 하자.
  3. JQuery AJAX를 사용한것. fetch API를 적극적으로 사용하자.
  4. 중복된 코드가 많다.
    • Annotation으로 바꿔보자.
    • 디자인 패턴을 도입해보자. 객체지향을 프로그래밍을 공부하자.

깊게 공부해볼만한 것들

  1. Spring
    • 각종 어노테이션들
      • @SpringBootApplication
      • @Entity,@Table
      • @OneToMany, @ManyToOne, @ManyToMany와 그 attribute들
      • @Configuration
      • @EnableWebSecurity
      • @EnableJpaAuditing
      • @Component
      • @Controller, @RestController
      • @Service
      • @Transactional
      • @RequestBody, @PathVariable
    • 각종 구현체들
      • JpaRepository<,>
      • HandlerInterceptorAdapter
      • WebSecurityConfigurerAdapter
      • WebMvcConfigurerAdapter
      • User (Userdetails)
      • UserDetailsService
    • official document 읽어보기
      • Spring
      • Spring Security
      • JPA
      • Spring MVC
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기