[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE)


 - 이전 글


 - 다음 글 



PJT4. 예약관리 시스템: 상세페이지


[프로젝트 4-2 (FE)에 대한 피드백 정리]

 - 무한슬라이드로 구현을 안해서 Fail !!




[개발 스펙관련..]

 - ES 버전차이에 대한 공부가 안되어있어서 최대한 낮은 버전의 함수와 방식으로 프로젝트를 작성하고 있다.

 - ES6는 찬찬히 하기로 한다...

 - var, const, let의 차이


[JS 경로 이동 함수관련..]

 - a 태그로 어떠한 기능이 구현이 되어 있을 때 href로 이동하기보다 javascript로 기능을 구현하고 싶어서 이런식으로 작성 해봤다.

 - 이런 방법과는 달리 controller에 경로와 파라미터를 보내기 위한 방법이 다른 내용이 있을지도 모른다. (replace("경로")) 라거나..

 - JavaScript로 구현하는 경로 이동


[불필요한 주석관련..]

 - 프로젝트 시작하기 전에 코드가 수정이 되어야 하는 곳에 주석을 작성해놨었다.

 - 구현 후에는 TODO를 지우고 내가 수정했다고 다른 방식으로 표시하도록 하자


[개발 스펙 관련..]

 - 순수 자바스크립트로 프로젝트를 진행하고나서 리펙토링으로 제이쿼리를 사용해보도록한다.







[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (BE)


 - 이전 글


 - 다음 글


PJT4. 예약관리 시스템: 상세페이지 (BE)


 - 프로젝트4 제출에 대한 피드백 정리



[Service]

 - Transaction의 개념과 @Transactional의 작동방식, 사용방법 등이 필요한 피드백



[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (BE)


 - 이전 글


 - 다음 글


PJT4. 예약관리 시스템: 상세페이지 (BE)



 - 프로젝트4 제출에 대한 피드백 정리



1. 피드백 요약

[피드백]

 1. 하나의 메소드에 하나의 기능 (private 메소드로 구현)

 2. 필요하지 않은 주석 및 코드는 제거



[수정]

 1. controller

  1) MainPageController

   ① 필요없는 코드 삭제 (detail)


 2. dao

  1) displayInfoDao

   ② queryForObject의 예외처리 필요

   ③ displayInfoId값에 대한 예외상황 테스트 소스 필요


  2) productDao

   ① 변경 내용이 없는 Mapper는 final한 변수 처리

   ② java변수 선언 시 필요한 부분에 선언

   ③ 고정적인 값은 상수로 선언


 3. sql

  1) 쿼리에 대한 설명을 작성하되 내용 중간에 넣지 않기


 4. service 

  1) 하나의 메서드에는 하나의 로직(기능)만을 넣기

  2) 로직 구현 시 반복 내용 줄일 수 있는 로직 구현하기


[기능 분리]

 - 하나의 메소드에 하나의 기능만을 사용할 수 있도록 로직 분리


[불필요한 코드 및 주석 제거]

 - 의미 없이 다는 주석을 삭제

[불필요한 메서드 삭제]

 - 우선 페이지 이동을 위한 메소드를 만들어 놨었으나 상세페이지 구현 시 파라미터가 필요하여 다시 만듦

 - 파라미터 없는 메서드 삭제 했어야 함



[항상 예외처리가 필요한 API 로직]

 - 파라미터는 null값과 다른 의도하지 않은 예외 값에 대한 예외처리가 필요

 - 또한 파라미터가 그래도 잘못 들어갔을 경우 queryForObject() 호출 시, EmptyResultDataAccessException 예외처리가 필요


[변경될 일이 없는 내용]

 - static final 



[변수의 선언]

 - 이 내용은 정확하게는 이해를 못함..

 - 변수 선언된 자리가 사용되는 부분과 많이 떨어진 상태가 아니라서 바로 위에 선언해야 하는건가?


[상수 선언시 static final]

 - 프로젝트 구현 시, 상품 데이터를 호출 할 때 고정된 값을 사용하기 때문에 상수 선언을 해줘야 함


[상수로 선언되면 더 좋을 코드]

 - "0"은 전체 리스트라는 값을 표현하기 위해서 사용하고 있었기 때문에 상수로 선언해둘 경우 더 좋을 듯



[주석의 위치]

 - 코드 중간에 주석은 코드를 읽는데 불편함을 줄 수 있다.


[하나의 메소드에는 하나의 기능만]

 - comment 안에 CommnetImage를 가져와야 하는데 그 로직은 따로 메소드로 만들 것


[효율적인 로직]

 - 피드백 해주신 내용대로 불필요한 반복 작업을 줄일 수 있다.


[BoostCourse] 프로젝트 3. 예약관리 시스템: 메인페이지 (FE)


 - 이전 글


프로젝트 3 예약관리 시스템: 메인페이지 -> BE_PJT3-1.예약:메인페이지(FE)



[HTML 커멘트]

 - href="#" 최대한 줄이기

 - href로 이동하는게 아니면 javaScript로 조작하기



[JS]

 - 공통 JS 구현




 - JS 코딩 컨벤션


  세세한 부분을 잘 집어 주신 듯 하다.


다음 프로젝트 4 진행하기

[BoostCourse] 프로젝트 3 . 예약관리 시스템 : 메인페이지 (BE)



 - 이전 글


 - 다음 글


 - 프로젝트 제출 컨텐츠에서 개편


프로젝트 3 예약관리 시스템: 메인페이지 -> BE_PJT3-1.예약: 메인페이지 (BE)



[Java Config]

 - 스프링 설정 시

 - reservation v1.4 폴더 내부 구조 상

img 폴더와 reservation-html-base 폴더 하위 폴더인 img 폴더 안에 파일이 겹치는 내용이 있어서 둘다 설정 했었다.

 - 폴더 내용을 확인하면 img 폴더는 상품(Product)의 file_info 테이블에 저장되어 있는 이미지 파일

 - reservation-html-base의 하위 폴더인 img 폴더 내용은 View를 구성하기 위한 컴포넌트 이미지 파일이 저장되어 있다.


 * 피드백 이후 같은 파일을 삭제, resources 하위 폴더인 img 폴더의 폴더명을 수정


 - 또한 setCachePeriod() 메소드는 정적자원에 대한 캐시 주기를 설정 하는 것

 - 숫자 31556926의 의미는 1년, 그렇기 때문에 이 상수 값을 모든 함수에 설정하기에는 중복이 많다.


 * 피드백 이후 상수 선언으로 동일한 설정 정보를 적용


[Logger]

 - 이 내용은 나중에 뒷 부분에서 배우게 된다.

 - 혹시나 잘못된 데이터로 인해 오류 발생 시, 에러난 시점을 쉽게 찾기 위해서 설정

 - Logger에 대한 정확한 내용을 모르고 작성한 내용에 대해 피드백을 해주심


 * Logger에 대한 이론적인 내용을 정리해야할 듯



[Controller]

 - Service Layer를 DI를 통해 사용하기 위해서 설정, 오타가 있었네...


 * 피드백 후 오타 수정 하였습니다.


[이론]

 - DI관련 어노테이션과 방법, 특징, 장단점 정리가 필요


 - 위에 변수 설정이 default로 설정을 아무생각 없이 한 것을 피드백보고 알았다..


 * 피드백 이후 다른 클래스에서 쓸 내용이 아니라서 private 선언으로 수정



[Log]

 - API호출 시 데이터가 제대로 오는지 확인하기 위해서 끄적여 본 내용이다.

 - 생각해보니 DB에서 잘못 가져왔다면 거기서 예외처리를 했어야 했다.

 - "Err"보다 0으로 표시하여 정확한 값을 나타내 주는 것이 좋은 듯 하다.


 * 피드백 후 DAO Layer에서 예외처리 추가 후, 메서드 호출 로그만 나오도록 수정



[Parameter]

 - required 속성이 사실 필요는 없다. 

 - View에서 처리할 내용이긴 한데 혹시나 몰라서 설정을 해봤는데 상세한 피드백이 왔다. (이건 몰랐네)


 * 피드백 후 추가적으로 defaultValue를 0으로 설정하여 카테고리 전체리스트가 0으로 들어오게끔 설정



[logback.xml]

 - Logger 설정을 위한 logback.xml 파일 설정

 - 뒤 프로젝트 강의에서 배우게 된다.

[BoostCourse] 프로젝트 3: 예약관리 시스템 : 메인페이지 (BE)


 * 이 글은 웹 프로그래밍 과정을 진행하면서 "개인적인" 생각을 정리한 글입니다.
 * 잘못된 부분이나 더 좋은 생각이 있으신 분들은 댓글 남겨주세요.


 - 이전 글


 - 다음 글


[ 변경된 사항 ]


 1. 프로모션(Promotion)

  - 프로모션 API 문서 확인

  - 프로젝트의 클래스 수정



 2. 카테고리(Category)

  - 카테고리 API 확인

  - 카테고리의 클래스 수정



 3. 상품(Product)

  - 상품 API 확인

  - 상품의 클래스 수정





[BoostCourse] 프로젝트 4. 예약관리 시스템 : 상세페이지 (BE)

 

 * 이 글은 웹 프로그래밍 과정을 진행하면서 "개인적인" 생각을 정리한 글입니다.
 * 잘못된 부분이나 더 좋은 생각이 있으신 분들은 댓글 남겨주세요.

 

 - 다음 글

 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 1차 제출 - FAIL (피드백)

 

[부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 1차 제출 [Fail & Feedback]

[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (BE) - 이전 글 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 설계 및 분석 - 다음 글 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이..

seokr.tistory.com

 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 2차 제출 - PASS (피드백)

 

[부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 2차 제출 [PASS & Feedback]

[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (BE) - 이전 글 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 설계 및 분석 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 1차..

seokr.tistory.com

 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (FE) 1차 제출 - FAIL (피드백)

 

[부스트코스] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE) 1차 제출 - [FAIL & Feedback]

[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE) - 이전 글 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 설계 및 분석 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 1차..

seokr.tistory.com

 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (FE) 2차 제출 - PASS (피드백)

 

[부스트코스] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE) 2차 제출 - [PASS & Feedback]

[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE) - 이전 글 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 설계 및 분석 - [부스트코스] 프로젝트4. 예약관리 시스템: 상세페이지 (BE) 1차..

seokr.tistory.com

 

 

 - 프로젝트 4의 예약하기 기능을 구현하기 위한 기획서를 분석하여 작성

 - 설계서(구글 프레젠테이션)

 

Project4 설계

BoostCourse (Full-Stack Developer) Seokr.tistory.com SeokRae

docs.google.com

 

 [목차]

  1. 기존 프로젝트 3 소스 수정
  2. 프로젝트 4. 요구사항 정의
  3. 상품 전시 정보 보기 기능 Sequence Diagram
  4. 프로젝트 3 리펙토링 (JavaScript, Handlebars Template)
  5. 상품 전시 정보(Product Display Infomation) API 작성
  6. 프로젝트4. 예약관리 시스템: 상세페이지 구현 순서
  7. 프로젝트4. 예약관리 시스템: 상세페이지 구현
  8. 프로젝트 4. 예약관리 시스템: 상세페이지 - 시연영상

 1. 기존 프로젝트 3 소스 수정

  - 기존 :: Controller에서 List<VO>포맷을 JSON 파싱 후 String 리턴하는 방식

  - 신규 :: Controller에서 Map<String, Object>로 리턴하는 방식

 

  - Dao에서 단일 데이터 호출 Service 단계에서 트랜잭션 데이터 만들도록 정리

 

 2. 요구사항 정의

  2.1 프로젝트 4 기능요구사항 정의

 

  2.2 프로젝트 4 기술요구사항 정의

 

  2.3 프로젝트 4 소스코드 작성 규칙

 

 3. 상품 전시 정보 보기 기능 Sequence Diagram

  - Proejct 3 메인페이지 작성 내용을 기준으로 사용자가 특정 상품을 눌렀을 때 상세 상품 전시 정보 페이지를 보여주는 기능을 구현

 

 

 4. 프로젝트 3 리펙토링

  4.1 카테고리 UI 구현

  - 템플릿을 이용하여 동적으로 갯수가 추가되도록 구현

 

  4.2 프로모션 UI 구현

  - 슬라이드 구현 방식을 캐러셀 방식으로 구현

 

 

 5. DisplayInfo API 구현

 - Swagger에 작성된 문서를 통해 Model과 API 작성

 

6. 프로젝트4. 예약관리 시스템: 상세페이지 구현 순서

 

 

7. 프로젝트4. 예약관리 시스템: 상세페이지

 - 상단

 

 - 중단

 

 

 - 하단

 

8. 프로젝트 4. 예약관리 시스템: 상세페이지 - 시연영상

 

 - 수정

 

 

 

[부스트코스] Full-Stack Web Developer 과정


커리큘럼 구성 학습파트 6개 + 프로젝트 6개




학습 1: 웹 프로그래밍 기초

 2018-05-03 ~ 15


 - 프로젝트 1: 나를 소개하는 홈페이지 구현 > 정리

   2018-05-12

   2018-05-14(수정)


학습 2: DB연결 웹 어플리케이션

 2018-05-17 ~ 23


 - 프로젝트 2: To-Do List 구현 > 정리

   2018-05-23

   2018-05-29 (수정)

   2018-05-30 (수정)

   2018-05-31 (수정)
   2018-06-13 (피드백 오류 수정) > 정리
   2018-06-25 (피드백 오류 수정2) > 정리



학습 3: 웹 어플리케이션 개발 1

 2018-06-02 ~ 2018-07-10


 - 프로젝트 3: 예약 관리 시스템: 메인 페이지 > 정리

    1차 제출 Fail 피드백정리 > 프로그램 수정

    2차 제출 PASS > 피드백정리


학습 4: 웹 어플리케이션 개발 2

 2018-07-28 ~ 2018-07-29

 2018-09-03 ~ 2019-01-20


 - 프로젝트 4: 예약 관리 시스템: 상세 페이지 > 정리

    1차 제출 Fail > 피드백정리


학습 5: 웹 어플리케이션 개발 3


 - 프로젝트 5: 예약 관리 시스템: 예약하기



학습 6: 웹 어플리케이션 개발 4


 - 프로젝트 6: 예약 관리 시스템: 한 줄 평 작성


+ Recent posts