본문 바로가기

Server Programming/BackEnd Project

[패스트캠퍼스 백엔드 개발자 부트캠프] 1. 2개월 회고와 앞으로의 계획

반응형

  • 패스트캠퍼스 백엔드 부트캠프에 지원한 동기
    • 클론 코딩하면서 부족하다고 느꼈던 스프링 프레임워크 원리의 이해와 활용법을 익히기 위해
    • 커리큘럼을 통해 부족한 점을 파악하고 개선시키기 위해
    • 프로젝트를 통한 협업 능력 향상
    • 공동의 목표를 가진 스터디를 통해 서로 설명해주면서 발전하기 위해
    • 혼자 학습하면서 느꼈던 어려웠던 점을 도와주기 위한 멘토링을 받을 수 있고,
      멘토링을 통해 미처 느끼지 못했던 필요한 기술 파악하기 위해
  • 패스트캠퍼스를 선택한 이유
    • 줌을 통해 함께 공부하면서 충분한 학습시간과 함께 집중할 수 있게 도와주는 환경
    • 관리 시스템을 통한 규칙적인 학습 패턴 구축
    • 패스트캠퍼스의 온라인 강의를 통해 실시간 강의로 부족한 점들을 스스로 채울 수 있게 도와줌
    • 실제 현업에 있는 분들이 강의를 해주면서, 실무에 필요한 기술을 익히기 위해 필요한 기반을 마련해줌
    • 기업 연계 프로젝트를 통해, 실무에 가까운 프로젝트를 만들 수 있음
  • 부트캠프 수료 후, 이루고자 하는 목표
    • 스프링 프레임워크를 효과적으로 재사용하는 백엔드 개발자
  • 부트캠프 시작전까지 준비한 것
    • 컴퓨터공학과 편입해, 학부 졸업
    • DB 엔지니어 인턴 수료
    • 코딩테스트를 위한 기본적인 알고리즘 연습
    • 자바 언어에 대한 기초적인 학습
    • 스프링과 스프링 부트를 이용한 프로젝트 클론코딩
  • 목표를 이루기 위해 필요한 것
    • 중급 이상의 자바 언어 이해도 - 남궁성 유튜브와 실시간 강의
    • 백엔드 개발에 필요한 CS 기본기 - 온라인 강의
      • 데이터베이스
      • 자료구조 / 알고리즘
      • 운영체제
      • 네트워크
    • 스프링 프로젝트를 위한 기본 소양 - 스프링의 정석과 실시간 강의
      • 스프링 프레임워크가 진화한 과정을 살펴보고,
        해당 프레임워크의 구성 원리 및 설계 원칙, 재사용 가능한 컨텍스트와 변경 가능성에 관련된 다양한 정보를 익혀야 한다.
    • 이벤트 처리를 위한 자바스크립트 능력 - 코딩앙마 유튜브와 실시간 강의
    • 스프링을 더 쉽게 사용하기 위한 스프링 부트 원리와 이해 - 실시간 강의
    • 스프링 부트 프레임워크를 이용한 상용 가능한 프로젝트 수행 - 파이널 프로젝트

TIL 작성한 리스트
기상 스터디


  • 토이프로젝트 수행

 

만화책 대여 관리 시스템 프로젝트

목차

프로젝트 간단 요약

상용 가능한 만화책 대여 관리 시스템을 만들기 위한 프로젝트

  • 스프링으로 컨트롤러와 서비스 처리
  • MyBatis로 영속 계층 처리
  • JSP로 화면 처리
  • REST API와 Ajax으로 비동기 방식으로 반납 처리

프로젝트 정보/개요

진행기간 목표
2023-01-26~2023-01-27 프로젝트 설계
2023-01-28 사용자, 만화책 CRUD 구현
2023-01-29 만화책 대여 및 반납 CRUD 구현

프로젝트 설명

  • ERD
  • 클래스 다이어그램

구현한 기능 설명

  • 로그인한 사용자만 만화책 조회 및 대여 가능
  • 관리자만 만화책 CRUD 가능하며, 고객 관리하는 관리자 페이지가 존재한다
  • 홈페이지에서 로그인하면, 대여 중인 정보를 확인할 수 있고 반납이 가능하다
  • 만화책 정보 제목, 저자 기준 검색 및 페이징 구현

개선해야할 점

  • 로그인하지 않은 사용자 직접 접근 제한
  • 회원가입 후, 자동 로그인 처리
  • 디자인을 공유하는 페이지는 공통으로 처리하도록 변경
  • 날짜와 시간에 대한 처리
  • 만화책 수량을 지정해 0 이하인 경우 대여가 불가능하도록 구현하려고 했으나, 이상적으로 동작하지 않아 마무리하지 못함 (현재는 만화책 수량에 상관없이 대여가능)
  • 대여중인 만화책에 대한 자세한 정보 변경
  • 대여 테이블과 만화책 테이블 간에 외래키 관계 형성해, 대여중인 만화책을 삭제하지 못하도록 외래키 제약 조건 설정
  • 회원가입시 아이디 중복체크
  • 시간적 제약 때문에 부분적으로 TDD를 이용해 개발 -> 전체적으로 적용해 단계적으로 리팩토링 수행

테이블 DDL

create table comicbook
(
    cno       int auto_increment
        primary key,
    title     varchar(30)                          not null,
    writer    varchar(15)                          not null,
    publisher varchar(15)                          not null,
    `release` datetime   default CURRENT_TIMESTAMP null,
    quantity  int        default 1                 null,
    adult     tinyint(1) default 0                 null,
    up_date   datetime   default CURRENT_TIMESTAMP null,
    view_cnt  int        default 0                 null,
    reg_date  datetime   default CURRENT_TIMESTAMP null
);

create table rental
(
    rno         int auto_increment
        primary key,
    due_date    date                               null,
    cno         int                                not null,
    id          varchar(15)                        not null,
    rental_date datetime default CURRENT_TIMESTAMP not null
);

create table rentalhistory
(
    rno         int         not null
        primary key,
    cno         int         not null,
    id          varchar(15) not null,
    rental_date datetime    not null,
    return_date datetime    null
);

create table user
(
    uno            int auto_increment
        primary key,
    id             varchar(15)                          not null,
    birth          date                                 null,
    email          varchar(30)                          not null,
    tel            varchar(30)                          not null,
    sex            tinyint(1)                           null,
    sns            tinyint(1) default 0                 null,
    isdeniedrental date                                 null,
    isadmin        tinyint(1) default 0                 null,
    reg_date       datetime   default CURRENT_TIMESTAMP null,
    pwd            varchar(15)                          not null,
    name           varchar(10)                          not null,
    up_date        datetime   default CURRENT_TIMESTAMP null
);

사용한 기술 스택

springMySQLJQueryjson


  • 앞으로 2개월 동안의 계획
    • CS 기본기 마스터
      • 운영체제
      • 네트워크
      • 컴퓨터구조
      • 데이터베이스
    • 파이널 프로젝트에 필요한 스프링 기술 습득
      • Spring Security
      • OAuth2
      • Spring Data JPA
      • Spring Batch
    • 코딩테스트를 위한 자료구조/알고리즘 공부
    • 프로그래머스 코딩테스트 연습 레벨3 달성
      • 현재 코딩테스트 연습 레벨2
반응형

'Server Programming > BackEnd Project' 카테고리의 다른 글

88일차 - TIL  (0) 2023.03.10
77일차 - TIL  (0) 2023.02.27
70일차 - TIL  (0) 2023.02.21
66일차 - TIL  (0) 2023.02.16
65일차 - TIL  (0) 2023.02.16