Tiny Bunny 'Project' 카테고리의 글 목록 - 솜님의 블로그
솜님의 블로그

Project 13

카테고리 설명
  • ✨Spring Framework를 적용한 MVC 패턴의 프로젝트✨- 주제 : 낚시 예약 및 웹 커뮤니티- 일반 회원은 게시판을 이용할 수 있으며, 상품(낚시 장소)을 찜/예약(결제)할 수 있다.- 사장님은 상품을 등록할 수 있으며, 내 상품을 예약한 회원의 예약 내역을 볼 수 있으며 예약을 취소할 수 있다.- 관리자는 일반 회원/사장님 회원/게시글 수/상품 수 를 차트를 통해 볼 수 있으며,   신고 내역을 처리할 수 있고 회원을 정지 혹은 탈퇴시킬 수 있다.- 담당 : Controller 파트장- 기존 구현되어 있는 상품 / 게시판 / 댓글 / 리뷰 / 위시리스트 Spring 이관- 사장님 기능 구현  [일편단심] 최종 프로젝트_고래밥 일편단심.pdf drive.google.com [일편단심] 최종 프..

  • 무한스크롤지난번 페이지네이션에 이어 무한스크롤 구현도 담당하게 되었다. 무한스크롤이란?사용자가 스크롤을 내려 페이지의 끝에 도달하게 된다면자동으로 다음 데이터가 로드되는 방식이다.  // Model (sql문)SELECT BOARD_NUM, BOARD_TITLE, MEMBER_ID, MEMBER_NICKNAME,        DATE_FORMAT(BOARD_REGISTRATION_DATE, '%Y-%m-%d %H:%i:%s') AS BOARD_REGISTRATION_DATE,        LIKE_COUNT, FILE_DIR FROM (     SELECT BOARD_NUM, BOARD_TITLE, MEMBER_ID, MEMBER_NICKNAME,            BOARD_CONTENT, BOARD..

  • 페이지네이션이란?데이터의 양이 많을 때 하나로 길게 보여줄 데이터들을여러 조각으로 나누어 보여주는 것을 의미한다. 페이지네이션을 사용했을 때의 장점은한 번에 필요한 데이터만 보여주기 때문에 서버 성능이 향상될 수 있고,더 깔끔한 화면을 제공하여 사용자 경험을 개선할 수 있다. 이런 페이지네이션 구현 방식에는번호를 선택하는 페이지네이션이나 무한스크롤 방식 등이 있는데이번 포스팅에는 버튼식 페이지네이션에 대해 글을 작성해보려고 한다. 기존 우리 프로젝트에서는 주요 목록인 상품과 게시판에 페이지네이션이 필요한 상황이었다.최종 프로젝트로 들어가면서, 상품에는 페이지네이션 / 게시판에는 무한스크롤을 적용하기로 결정.  🍀 페이지네이션 -  한 페이지에 보여줄 데이터는 9개씩- 페이지 번호를 보내면 DB에서 요청..

  • 기존 JSP 프로젝트 → 최종 프로젝트로 가면서 Spring으로 이관을 하게 되었다. 스프링 프레임워크는 IoC와 AOP를 지원하는 경량의 프레임워크를 의미한다.IoC란 제어의 역행이라고 하며, 제어권을 컨테이너에게 준다는 것을 의미한다.(컨테이너가 객체를 new 해준다는 것!) 컨테이너는 xml(설정파일)이 있어야 동작을 하고,이 xml에서는 을 통해 객체를 new 해줄 수 있다. 그러나 xml에 과도한 설정이 싫기 때문에 @어노테이션을 사용한다. 또 기존에는 액션 포워드를 반환해 주었는데,Spring에서는 액션 포워드가 무겁다고 느끼기 때문에 이를 반환하지 않고View Resolver를 사용하여 어디로 보내야 할지 판단해 주는 객체를 사용한다. 이러한 과정을 기존 프로젝트에 적용시켜 코드  수정이 되..

  • 횡단 관심은 여러 부분에 걸쳐 반복적으로 사용되는 로직이나 기능을 의미한다.그 기능 중 하나인 트랜잭션을 이번 팀 프로젝트 게시판 글 업로드 부분에 적용시켰다.  [기존 로직]- Board 테이블에 글을 insert- 가장 최근에 저장된 글 번호(PK)를 찾는 selectOne- selectOne으로 찾아온 PK 번호를 사진과 함께 ImageFile에 insert 이때, 가장 최근에 저장된 글 번호를 받아오는 과정에서동일한 시간에 글이 동시에 올라오게 되면 잘못된 PK번호를 찾아올 수 있고,이미지 테이블에 업로드하는 과정에서 에러가 발생되는 경우 글이 insert 되면 안 되기 때문에이 로직을 하나의 트랜잭션으로 묶었다.  트랜잭션을 적용시키는 방법에는 2가지 방법이 있다. 1) XML 설정하는 방법 a..

  • JSP로 mvc 패턴 활용하여 진행한 프로젝트가 완료되었다. 🍀 프로젝트 주제 : 낚시 예약 및 웹 커뮤니티담당 : (DB파트) 테이블 설계 및 구현, 위시리스트 종단처리 구현  PPT 자료 (pdf 변환)  깃허브 링크https://github.com/dasom0203/2024_single_mindedness  느낀 점우리 팀은 대면 회의도 자주 했던지라 (프로젝트 다가올수록 거의 매일 남아서 같이 회의/코드 작성함!)팀 단합이 잘 되고, 문제가 생겨도 바로 공유할 수 있어서 좋았다!그렇지만 설계단계에서 더 많은 소통과 꼼꼼함이 필요하지 않았나 생각이 들었고, 기능을 좀 더 꼼꼼하게 살펴본 뒤 테이블 구상이 필요하다고 느꼈다.이번 프로젝트에서는 헷갈렸던 JOIN사용법에 대해 더 익힐 수 있고, Vie..

  • 동적 쿼리 정적쿼리는 기존에 사용한 방식대로 고정되어 있는 SQL문을 사용하는 것이고,동적쿼리는 상황에 맞게 쿼리를 조합하여 사용할 수 있는 방식이다. 이번 중간 프로젝트에서 전체 페이지 수를 반환하는 간단한 기능에 대한 쿼리문을 동적쿼리로 변경해 사용해 보았다.전체 페이지 수는 기능에 따라 다르게 나타날 수 있기 때문에 각각 쿼리문을 작성해야 하는데,반복되는 쿼리가 발생되므로 동적 쿼리를 사용했다.  ▼ 기능별로 각각 작성된 SQL문-- 3. 전체 페이지 수를 반환하는 select문 (페이지네이션 사용)-- [전체 검색 - 기본]SELECT CEIL(COALESCE(COUNT(PRODUCT_NUM),0)/9.0)AS PRODUCT_TOTAL_PAGE FROM PRODUCT;-- 아래는 AND~ 쿼리 사..

  • View란?DB에 존재하는 가상의 테이블을 의미한다.일반 테이블처럼 DROP VIEW 이전까지는 DB에 저장이 되지만, 데이터가 따로 저장되지는 않는다. View를 사용하는 이유는많은 JOIN이나 서브쿼리가 사용되어서 복잡해지는 쿼리를 간결하게 만들어 줄 수 있고,반복해서 사용되는 쿼리를 재사용할 수 있다.   ▼ 아래는 최초 작성한 상품 전체 출력 기능에 대한 SQL문이다.SELECT P.PRODUCT_NUM, P.PRODUCT_NAME, P.PRODUCT_PRICE,P.PRODUCT_ADDRESS, P.PRODUCT_LOCATION, P.PRODUCT_CATEGORY,COALESCE(RV.RATING,0) AS RATING,COALESCE(RS.RESERVATION_COUNT,0) AS RESERVA..

  • 중간 프로젝트에 들어가기 전, 중간의 중간 프로젝트라고 하여 중중프(...)에 들어가게 되었다! 더보기🌟 중중프 요청사항MVC 파트별로 팀 프로젝트를 진행해주세요. 중간 프로젝트를 위한 기초 (새로운 아이템 xxx)팀 당 기능 4개씩 구현 & 설명발표는 각자 본인이 구현한 부분 설명 강제 x템플릿 웹 템플릿으로 VMemberDTO, BoardDTO, ReplyDTO 테이블 3개MEMBER 회원가입 C 신규회원이름목록출력 R_selectAll 로그인 R_selectOne 로그아웃 (controller 제어) 프로필 이미지 변경 U 이름변경 U 회원탈퇴 D 회원은 프로필 이미지를 가지고 있습니다.BOARD 글 작성 C 글 목록 출력 R_selectAll 글 선택 R_selectOne 글 제목 변경 U 글 ..

  • 파트별로 코드를 모두 작성하고 -> 우리 파트 내부적으로도 담당이 나뉘어 있기 때문에 우리끼리의 코드도 합치고  -> View와 Model에서 코드를 받아 모두 합쳐보았다. 생각보다 오류로 발생되는 부분이 여러가지 있었는데,진짜 사소한 부분부터 ~ 기능이 제대로 구현되지 않는 오류까지도 발생되었다. 오류의 종류는변수명 다름 (ex. C에서 작성한 이름과 M 혹은 V에서 작성한 이름이 다름), 혹은 오타대소문자 미구분 (ex. setPassword 를 setpassword로 작성하는 등)문자열 비교를 .equals가 아닌 == 사용하여 정상적으로 기능이 동작되지 않음 등등... 다양한 오류가 발생되었다.  ▼ 오류에 대한 내용은 노션에 캡쳐와 함께 기록했다.     다른 곳에서도 확인할 수 있도록 PDF ..

  • 설계를 기반으로 한글 코딩을 하기 전, 담당을 나눴다.회원가입로그인로그아웃상품 목록 출력 : 재고가 없는 상품에 대해서 [품절] 표시하기장바구니에 상품 담기장바구니에 담긴 상품 목록 출력장바구니에 담긴 상품 목록 구매장바구니에서 상품 빼기메뉴는 총 8개, 기능별로 4개 / 4개로 나눠서 담당을 구분했다!나는 위에 있는 회원가입 ~ 상품 목록 출력 메뉴를 담당하게 되었다. 사용자에게 메뉴를 보여줄 때, 로그인, 로그아웃상태인 경우의 메뉴 출력이 다르기 때문에사용자에게 입력 받는 값에 따라 실행되는 메뉴가 다르다.따라서 번호를 먼저 정의해 주고 진행하였다. 로그인 여부와 관계없는전체 메뉴 / 로그아웃 상태일 때 메뉴(A) / 로그인 상태일 때 메뉴(B)mainlogoutlogin 0. 종료 1. 상품목록 출..

  • 이번 팀플은 MVC 패턴을 이용하여 쇼핑몰 프로그램을 만드는 과제를 받았다! 우리 조는 총 6명이고, Model / View / Controller 세 파트로 나뉘어 각 파트별 2명씩 담당하게 되었다.나는 Controller 파트! 🍀요구사항 🍀 쇼핑몰 프로그램을 MVC 패턴으로 구현해 주세요!- 회원 속성 : 아이디(PK),비밀번호 - 상품 속성 : 품번(PK),품명,가격,재고- 로그인한 회원만 장바구니를 사용할 수 있습니다.- 회원이 로그아웃을 하면 장바구니는 사라집니다. - 요구기능 목록      회원가입     로그인     로그아웃     상품 목록 출력 : 재고가 없는 상품에 대해서 [품절] 표시하기     장바구니에 상품 담기     장바구니에 담긴 상품 목록 출력     장바구니에 담긴..