728x90

[ JAVA ]/JAVA Spring 35

[ Spring Boot ] Spring boot 개요 및 설정

Spring Boot 개요 및 Project 생성 Spring Boot는 Java의 가장 인기 있는 애플리케이션 개발 프레임 워크입니다. 스프링 프레임 워크의 주요 기능은 종속성 주입 또는 제어 반전(IoC)이고, Spring Framework의 도움으로 느슨하게 결합된 애플리케이션을 개발할 수 있습니다. 여러 장점이 있지만, 스프링 부트를 사용하는 큰 이유는 메이븐의 라이브러리 자동 업데이트 기능을 이어받으면서 기존 스프링 프레임워크의 복잡한 설정 과정은 최대한 줄이면서 개발할 수 있는 특징이 있고, 배포 또는 테스트 역시 스프링 프레임워크보다 쉽고 빠르게 할 수 있는 장점이 있습니다. 스프링 부트 포스팅은 Spring Tool Suite(STS) 를 활용합니다. 별도의 폴더를 만들어서 STS의 작업 ..

[ Spring ] 도로명주소 API 연동

도로명주소 (DAUM API) 오늘은 게시판 기능 추가 하기 전, 회원 가입에 필요한 우편번호, 주소 검색을 API를 활용하여 검색된 주소가 회원 가입 페이지의 주소 필드에 입력되는 방법을 포스팅 해보려 합니다. 우선 daum api 주소인 http://postcode.map.daum.net/guide Daum 우편번호 서비스 우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다. postcode.map.daum.net 들어가시면 자세하게 다음에서 사용 방법까지 친절하게 설명해주고 있습니다. 사용하고자 하는 코드를 정해서 변수명만 수정해서 사용하시면 됩니다. 예제 코드로 member 테이..

[ Spring ] 게시판 02 - 회원 목록 페이지 나누기 기능 구현

프로젝트 구조 오늘은 이전 포스팅에서 생성했던 유저 목록 페이지에 페이지 나누기 기능을 추가해 보겠습니다. 페이지를 나누려면 별도로 페이지네이션 기능 공식 파일을 생성해서 변수로 추출해서 사용해야 하는데, 이전에 JSP 포스팅했을 때 사용했던 Pager.java 파일을 사용해서 기능 구현을 해보겠습니다. Pager.java Pager 파일은 페이지 나누는 공식과 변수를 담은 파일입니다. 각 변수의 역할은 주석으로 작성했습니다. package com.example.spring.service.board; public class Pager { public static final int PAGE_SCALE=10;//페이지당 게시물수(10개) public static final int BLOCK_SCALE=10;..

[ Spring ] 게시판 01 - 목록/글쓰기 구현

프로젝트 구조 오늘은 Spring을 사용해서 게시판 목록/글쓰기 기능 구현을 해보겠습니다. 파일 구조는 위 사진과 같고, 다음은 테이블을 생성합니다. SQL Table 생성 Board 테이블을 생성해서 연습용 데이터를 추가합니다. --게시판 테이블 create table board ( bno number not null, --게시물번호 title varchar2(200) not null, --제목 content clob, --본문 writer varchar2(50) not null, --작성자 regdate date default sysdate, --작성일자 viewcnt number default 0, --조회수 primary key(bno) ); insert into board (bno,title,c..

[ Spring ] Ajax 파일업로드

FormData 객체 파일 업로드 Ajax 방식의 핵심은 FormData라는 브라우저에서 지원하는 클래스입니다. FormData는 과 같은 효과를 가져다주는 key/value 가 저장되는 객체이며, 태그처럼 데이터를 처리할 수 있게 해 줍니다. 이를 XMLHttpRequest(XHR)라는 Ajax 요청을 생성하는 JavaScript API에 실어서 서버에 보내면 마치 이 전송된 것과 같은 효과를 가집니다. UUID(Universally Unique IDentifier) UUID는 네트워크 상에서 고유성을 보장하는 ID를 만들기 위한 표준 규약입니다. UUID는 다음과 같이 32개의 16진수로 구성되며 5개의 그룹으로 표시되고 각 그룹은 붙임표(-)로 구분합니다. 8(비트)-4(비트)-4(비트)-4(비트)..

[ Spring ] 코드 난독화

자바 스크립트 난독화 자바 스크립트는 클라이언트에서 실행되는 스크립트 언어이므로 소스 코드가 그대로 노출됩니다. 물론 굳이 자바 스크립트까지 난독화할 필요는 없지만 만약 중요한 기능이라면 난독화 기능을 사용하여 배포하는 게 좋습니다. 자바스크립트 난독화 사이트 - http://dean.edwards.name/packer/ /packer/ Copyright © 2004-2023 Dean Edwards. All rights reserved. dean.edwards.name - https://obfuscator.io/ JavaScript Obfuscator Tool What is this? This tool transforms your original JavaScript source code into a ne..

[ Spring ] Interceptor

Interceptor란? Interceptor는 요청을 가로채는 작업을 의미합니다. 즉, 사용자의 요청이 Controller에 가기 전에 가로채고, 서버의 응답이 사용자에게 가기 전에 가로챕니다. 좀 더 풀어보자면, 해당 URL 요청이 MAIN ACTION 요청이 있을 때 우선 선 처리로 갔다가 세션이 없으면 즉, false면 로그인 페이지로 보내고, true면 정상적으로 MAIN ACTION으로 이동합니다. 선 처리, 후 처리는 어떤 역할을 할까?? 선 처리 : 세션 체크 해서 세션이 없으면 로그인 페이지로 보내고 세션이 있으면 정상적으로 URL 확장자로 간다. 후 처리 : 세션 체크는 후 처리할 내용이 없기 때문에 단지 추상 메서드 오버라이딩 처리만 해둔다. 그럼 중간에 가로채는 작업이면 실행 순서는..

[ Spring ] 상품 수정/삭제 기능 구현

프로젝트 구조 오늘은 이전 포스팅에서 생성했던 상품 목록 페이지에 기능을 추가하려고 합니다. 추가 기능은 수정/삭제입니다. product_list 이전 포스팅에서 상품 이름 아래에 관리자 ID값이 들어오면 편집 기능이 표출되게 코드 작업을 했습니다. 그렇다면 해당 태그를 Controller에 요청을 보내는 코드를 작성합니다. 상품목록 상품코드 상품명 가격 ${row.product_id} ${row.product_name} [편집] 저는 shop = > productController에 세부 url을 edit으로 설정하고 GET 방식으로 상품 아이디랑 같이 요청을 보냈습니다. 위 코드처럼 URI에 변수가 들어가는걸 실무에서 많이 볼 수 있습니다. 그렇다면 어떻게 처리를 해야 할까?? Controller U..

[ Spring ] 상품 등록/목록 페이지 구현

프로젝트 구조 이전 포스팅에서 관리자 목록 페이지를 생성했습니다. 오늘은 상품 등록/목록 기능 구현을 해보겠습니다. 프로젝트 흐름은 Controller = > Service => DAO => View 단 순으로 진행합니다. admin_menu.jsp 이전 포스팅에서 생성했던 관리자 메뉴 페이지에 폼 생성해서 Controller에 요청을 보냅니다. 상품 목록 | 상품등록 | PDF | 구글 차트(json) | 구글 차트(db) | JFreeChart(png) | JFreeChart(pdf) | 일반 로그인 | 관리자 로그인 | ${sessionScope.admin_name }님이 로그인중입니다. 로그아웃 | Controller 상품 등록 기능은 Service 에 요청을 보내는 것보단 등록할 수 있는 폼으로..

[ Spring ] 관리자 페이지 목록 구현

프로젝트 구조 오늘은 프로젝트할 때 꼭 필요한 관리자 페이지 목록을 구현해보려 합니다. 기능 위주라서 폼은 간단하게 구현합니다. Admin Table 생성 관리자 테이블을 생성해서 각 칼럼의 데이터를 추가합니다. create table admin ( userid varchar2(50) not null, passwd varchar2(50) not null, name varchar2(50) not null, email varchar2(100), join_date date default sysdate, primary key(userid) ); insert into admin (userid, passwd, name ) values ('admin','1234','관리자'); commit; 마지막에 꼭 커밋해주기!..

728x90