본문 바로가기

✨ Back-end/Spring-Boot93

[Spring] 쇼핑몰 - 55 스크롤 order_manage.html, js overflow - > 넘쳐흐르면 어떻게 할지 정해준다. hidden 해줄 시 정해진 영역만큼 나오고 넘치면 짜른다. overflow-y는 y축만 스크롤을 주는기능이다. overflow만 쓰면 x, y축 모두 생성된다. 이때 scroll을 쓰면, 넘쳐흘렀을때 스크롤을 만들어준다. table에서는 안먹어서 div에 my-scroll을 주었다. *** 스크롤을 쓰기 위해선 기본적으로 영역 크기가 정해져있어야 한다. order_manage.css, html overfolw에서 auto로 주게되면 범위가 벗어 난것은 생기고, 범위 내에 있는 것들은 스크롤이 생기지 않는다. css와 html에서 margin, padding을 주면서 깔끔하게 나타내 주었다. 하지만 데이터가 .. 2023. 4. 27.
[Spring] 쇼핑몰 - 54 관리자 계정 주문 관리 조회 - 2 이 사진처럼 뽑아보려고한다. admin-mapper.xml AdminService AdminController 컨트롤러 이 데이터를 Map에 담아서 html로 보낼 것이다. AdminController 컨트롤러 여기서 뽑아주는 Map데이터는 순서가 정렬되어있지 않다는 것을 인지하자. html에서 뽑아보면 이렇게 데이터 베이스에 저장된 1, 2, 3, 4,5 순서가아닌 무작위로 나온다. order_manage.html html에서 이런식으로 데이터를 뽑아줄 수있다. 그래도 이렇게 주문접수에 있는 Map데이터들만 출력되는 것을 확인할 수 있다. order_manage.html 이렇게 데이터들은 깔끔하게 뽑았고, 없는 데이터들은 데이터가 없다는 문구도 출력해주었다. 이제 데이터 순서를 맞추자. AdminCon.. 2023. 4. 26.
[Spring] 쇼핑몰 - 53 관리자 계정 주문 관리 조회 주문 관리에 데이터를 뽑아보자. 주문관리 페이지를 꾸미기 위해 일단 데이터를 담은 테이블을 만들어보자. STATUS_INFO , ORDER_STATUS STATUS_INFO 테이블과 ORDER_STATUS 테이블 두개를 생성해주었다. ORDER_STATUS STATR WITH 1 -> 1부터 시작 INCREMENT BY 1 -> 시퀸스가 1씩 증가 MINVALUE 1 -> 최소값 1 MAXVALUE 1 -> 최대값 100 NEXTVAL -> 실행 시마다 1씩 증가된다. CURRVAL -> 현재 값 조회 1. 구매시 주문 상태정보 테이블에 데이터 INSERT 2. 주문관리 페이지 -> 주문 목록 조회(전체) 컬럼 : NO, 구매코드, 구매자ID, 구매자연락처, 결제금액, 주문상태(문자), 구매날짜 join.. 2023. 4. 25.
[Spring] 쇼핑몰 - 52 Security 사용해 로그인하기 -2 로그인을 여러번 실패하면 header.js init()에 있는 로그인 실패시 추가되는 태그에서 로그인 함수에 있는 붙여넣어 주었다. init()함수는 가장 먼저 실행되는 함수이다. 그럼 몇번을 실패해도 로그인 정보를 확인하세요는 한번만 출력된다. 로그인에 성공하여 관리자 페이지로 왔다. 하지만 오른쪽 상단에 로그인 한지 안한지 표식이 뜨지 않는다. MemberController 컨트롤러 이제 컨트롤러에서 session을 받아 데이터를 삭제하는 것은 필요없으니 지워준다. SecurityConfig SecurityConfig에서 로그아웃시 session을 지워주며, Url과 로그아웃 성공시 인덱스 컨트롤러에 있는 "/"로 가게 해두었다. header.html 원래 있던 session 로그인 부분을 빨간색 밑.. 2023. 4. 25.
[Spring] 쇼핑몰 - 51 Security 사용해 로그인하기 Security 를 쓰려면 Security를 쓰겠습니다~ 하고 추가를 해줘야한다. 따라서 아래 세 줄 코드들을 build.gradle에서 추가해주었다. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6' testImplementation 'org.springframework.security:spring-security-test' 위 세 코드를 추가하고, 프로젝트를 gradle - > refresh 하면 localhost8081 만들어와도 이렇게 로그인 창이 뜨게 된다. security 패키지와 Failur.. 2023. 4. 24.
[Spring] 보드게시판 만들기(11) Security 사용해 로그인하기 build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6' testImplementation 'org.springframework.security:spring-security-test' SecurityConfig public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring().requestMatchers("/js/**", "/css/**", "/img/**"); } static 폴더 전체의 내용. ig.. 2023. 4. 21.
[Spring] Security 보안(인증과 권한, 인가) 로그인 방법 Spring Security 란? 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. [ 인증(Authorizatoin)과 인가(Authentication) ] 인증(Authentication): 해당 사용자가 본인이 맞는지를 확인하는 절차 인가(Authorization): 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차 Security를 해보기 위해 먼저 프로젝트를 생성한다. 시큐리티는 처음부터 달면 페이지 이동할때마다 권한 검사를 하기 때문에 매우 힘들어진다. 따라서 나중에 추가해주자. 화면을 하나 띄웠다. 화면을 띄운 후에 아까 프로젝트 생성전에 하지 않았던 Security를 추가해줬다. 오른쪽이 우리꺼고, 왼쪽 코드가 시큐리티가 적용됐을때 변경되어야 할.. 2023. 4. 19.
[Spring] 쇼핑몰 - 50 마지막 에러 잡기 상품등록 컨트롤러에서 페이지 올때는 괜찮은데, 상품을 등록하게 되면 에러가 뜬다. 메뉴를 조회할 때 메뉴코드를 가져와야하는데, menu인터셉터에서 서브 메뉴를 조회할 때 메뉴 코드 데이터를 던진다. redirect 해서 model에 담긴 데이터를 못가져간다. subMenuCode데이터를 임의로 던져주었는데, 사이드에서 상품등록 메뉴로 들어오면, 현재 getMenuCode와 subMenuCode가 null로 떨어져있다. 그래서 이때 오른쪽과 같이 값을 임의로 넣어주었다. 컨트롤러에서 이런식으로 임의로 넣어줘야할 값들이 많아 지저분해서 메소드로 만들어주자. AdminSubMenuVO VO에서 이런식으로 메소드를 만들어주었다. AdminController 컨트롤러 4줄짜리 코드를 한줄로 바꿔주었다. 컨트롤러에.. 2023. 4. 19.
[Spring] 쇼핑몰 - 49 Chart.js에 Map 데이터 조회하기 카테고리별 매출 현황 차트와 표를 띄워보자. 데이터베이스에 카테고리별 매출 현황 목록을 추가한다. AdminController 컨트롤러 메뉴코드와 서브메뉴코드 둘다 받을 수 있는 AdminSubMenuVO를 커맨드객체로 불러와주었다. 이게 있어야 정상적으로 작동한다. 그리고 Model 객체에 MENU_003 데이터를 무작위로 넣으면서 menuCode에 저장한다. IntercepterConfig 인터셉터 인터셉터에 만들었던 컨트롤러를 추가해주어 메뉴와 서브메뉴를 띄울 수 있다. sale_category_month.html 이렇게 서브메뉴와 메뉴가 성공적으로 뜨면 된다. sale_category_month.html chart.js에서 script를 가지고와줘서 html에 넣어준다. 그리고 노란색 박스처럼 j.. 2023. 4. 18.
[Spring] 쇼핑몰 - 48 select에 onchange 데이터 적용 Chart.js -2 Select 박스에서 year 데이터가 변할 때마다 그에 맞는 판매건수와 판매금액을 조회해보자. DateUtil 패키지 여기서 날짜 데이터를 만들고 년도 year을 추출해서 getYear 메소드를 호출 할때 실행되도록 리턴시킨다. AdminController 컨트롤러 컨트롤러에 model 객체에 year 이름으로 추출될 수 있도록 DateUtil에서 만든 getYear메소드를 넣어주었따. sale_status_per_month.html ${#numbers.sequence(1, 3)} 은 num에는 1, 2, 3이 들어온다. 이런식으로 해서 5개의 데이터를 추출하였다. th:selected="" 에는 조건이 들어오면 된다. admin-mapper.xml mapper에서 year 데이터에 맞는 값들이 조회되.. 2023. 4. 17.
[Spring] 쇼핑몰 - 47 Chart.js에 Ajax 데이터 전달하기 파란색 막대그래프에서는 판매금액 데이터를 가지고 올 것이다. data에 [30000, 3000, .... ] 빨간색 꺾은선 그래프는 판매 건수 데이터를 가지고 올 것이다. data에 [2, 2, ....] js에 데이터를 가지고 와야하는데, 컨트롤러에서 js로 가지고오면 된다. 컨트롤러에서 js로 가지고 오는법은 ajax를 사용하면 된다. sale_status_per_month.js html 들어오자마자 바로 js가 실행되면서 getChartDataAajx 함수가 실행되면서 ajax가 실행된다. AdminController 컨트롤러 컨트롤러에서 데이터를 ajax에 받아오기 위해 먼저 이동해준다. StatisticsVO List 데이터를 Map으로 받기 위해 위 1~12의 데이터를 return 시켜주면서 .. 2023. 4. 17.
[Spring] 쇼핑몰 - 46 Chart.js 사용해서 html에 차트 띄우기 html html에 연결할 js를 추가해주고, 경로에 맞게 js를 생성해주었다. x축 제목이 labels에 나온다. datasets 안에도 label이 있는데, 이것은 차트 위 # of Votes와 같이 나타내주는 곳이다. datasets 안의 data는 y축 데이터이다. datasets 안의 borderWidth은 막대 그래프의 테두리 두께이다. datasets의 대괄호 안에 있는 중괄호 하나가 그래프 하나를 나타낸다. 대괄호는 하나만 있어야하고, 중괄호를 추가해서 그래프들을 추가해줄 수 있다. chart.js 사이트에 가보면 div 맨위에 id가 canvas로 형태가 짜여져 있기 때문에 html에서도 canvas로 불러왔다. 이런식으로 중괄호를 추가해서 그래프들을 추가해줄 수 있다. label, ty.. 2023. 4. 17.