Spring / Spring Boot 차이점 Spring - 봄 / Spring Boot - 조금 더 봄 Spring Spring Boot 길다, 버전 직접 설정 dependency 짧다, 버전 관리 자동 설정 길다, 직접 설정 configuration application.properties만 적용 (요즘 application.yml 많이 사용) server embedded server - 서버 구동시간 단축 내장 서블릿 컨테이너 덕분에 jar파일로 간단 배포 * 정리 Spring Boot 1. 간편한 설정 2. 편리한 의존성 관리 & 자동 권장 버전 관리 3. 내장 서버로 인한 간단한 배포 서버 구축 4. 스프링 Security, Data JPA 등의 다른 스프링 프레임워크 요소 쉽게 사용
postgresql을 설치하는데에도 애를 먹었는데, 설치 후에 서버 접속이 안되는 오류에 부딪혔다. pgAdmin4.exe를 실행 후, 페이지에 접속하여 PostgreSQL 13 서버 접속 > 비밀번호 입력 후 확인 했더니, 아래와 같은 오류가 나온다. could not connect to server: connection refused (0x0000274d/10061) is the server running on host "localhost" (::1) and accepting tcp/ip connections on port 5432? could not connect to server: connection refused (0x0000274d/10061) is the server running on ho..
설정파일만들기 전, root-context.xml 헤로쿠 배포할 때, url 경로를 /tmp/embeded/hsql_file.db로 변경 create table 실행 (헤로쿠 배포 후 주석처리) servlet-context.xml 업로드 파일 저장 위치 변경 /tmp 로컬 PC의 DB 설정 파일, 업로드 경로 : 개발용 헤로쿠용 DB 설정 파일, 업로드 경로 : 운영 서버용 root-context.xml, servlet-context.xml 설정 파일에서 개발용과 운영 서버용 내용을 변경 처리해서 작업한다. 현업1. globals.properties파일을 만들어서 전역변수로 위 설정 내용을 변수처리해서 사용한다. 현업2. local.properties, prod.properties ( properties..
1. pom.xml에서 의존성 모듈 추가 2. security-context.xml 생성 및 설정 내용 추가 (인증패턴과 권한 sql쿼리) 3. LoginController클래스 생성 및 내용 추가 4. JSP 영역 사용자단 세션 사용 확인 (header.jsp, footer.jsp) 5. AdminController클래스에서 BCryptPasswordEncoder로 해시 데이터 회원정보 추가 및 수정 부분 확인 pom.xml 의존성 모듈 추가 security-context.xml 생성 및 설정 내용 추가 src/main/webapp/WEB-INF/spring/security-context.xml LoginController.java 생성 및 내용 추가 JSP 영역 사용자단 세션 사용 확인 (header..
1. Reply List 버튼 토글 기능 구현 2. 댓글 등록 기능 구현 3. 댓글 삭제 기능 구현 4. 댓글 수정 기능 구현 댓글 관련 기능은 board_view.jsp에서 수정/추가한다. Reply List 버튼을 누르면 댓글이 나타나고, 다시 한 번 누르면 댓글이 사라지는 토글 기능을 구현한다. - Reply List 버튼영역의 span태그에 data-toggle="collapse"와 data-target="#div_reply" 를 추가한다. *collapse : 병합 Reply List[${boardVO.reply_count}] - time-label 클래스 영역 바로 아래에 버튼 클릭 시, 병합될 (나타나거나 사라질) 영역, 타겟인 #div_reply을 설정한다. #div-reply 영역 안에는..
첨부파일 CommonController - uploadPath 경로 가져오기 - 파일 확장자 체크 변수 - 파일 업로드 메소드 - 파일 다운로드 메소드 업로드/다운로드 구현하기 전에, pom.xml에 파일 업로드 라이브러리를 추가한다. commons-fileupload commons-fileupload 1.3.1 또한, servlet-context.xml에 아래 코드를 추가한다. - uploadPath는 파일이 업로드/다운로드되는 경로이다. 사전 설정이 끝났다. 1. 파일 업로드 구현 (CommonController.java) - 첨부파일의 확장자를 확인하는 변수를 생성한다. - 첨부파일 확장자를 확인하여, 이미지일 때 미리보기 가능, 아니라면 그냥 파일명만 보이게. private ArrayList ex..
페이징 처리를 마무리했다. 다음은 데이터를 삭제하는 기능을 구현해보자, AdminController에 member_delete()를 생성한다. @RequestMapping(value="/admin/member/member_delete", method=RequestMethod.POST) public String member_delete(RedirectAttributes rdat, @RequestParam("user_id") String user_id) throws Exception{ memberService.deleteMember(user_id); //Redirect로 페이지 이동 시 전송값을 숨겨서 보내는 역할을 하는 클래스 : RedirectAttributes rdat.addFlashAttribute(..
AOP란? - Aspect Oriented Programming, 관점지향 프로그래밍 - 구조화된 OOP의 단점인 복잡도 증가를 줄이는 효과를 기대해서 만든 프로그램 방식이다. - 즉, OOP자바클래스단에서 제어하던 반복되는 명령을 호출단에서 제어하도록 변경한 내용이 AOP 예를 들면) 인증처리, 디버그와 같은 예외처리를 개발 클래스에서 처리하지 않고, 공통클래스 1개를 만들어서 인증이나 예외처리(디버그)가 필요할 때마다 호출하는 시스템 => AOP 원래 방식대로라면, 개발 클래스의 메소드 앞뒤로 디버그 코딩을 작성해야하지만, AOP기능을 사용하면, 따로 클래스를 만들어서 "외부에서" 영역을 지정하여, 그 영역에 대해 예외처리(디버그)한다.
관리자단 화면에서 회원관리, 게시물관리 모두 공통적으로 필요한 기능은 페이징처리이다. 회원 수, 게시물 수가 많아지면 한 화면에 제한된 개수를 보여줘야 한다. 먼저, PageVO 클래스를 생성한다. 이 클래스는 회원, 게시물 관리 공통으로 사용한다. 페이징 처리에 필요한 변수를 생성하고, 계산식, getter/setter 또한 추가한다. package org.edu.vo; public class PageVO { private int perPageNum; private int queryPerPageNum; private Integer page; private int queryStartNo; private boolean prev; private boolean next; private int totalCoun..
1. CRUD 중 Update 구현 마무리 2. DataSourceTest에 MemberVO @Inject 주입 3. 멤버 검색 기능 구현 - Update 구현 memberMapper.xml에 쿼리 생성 * MyBatis의 장점 : 쿼리문 안에 조건문 사용이 가능하다. UPDATE tbl_member SET user_name=#{user_name}, user_pw=#{user_pw}, email=#{email}, point=#{point}, enabled=#{enabled}, levels=#{levels}, update_date=now() WHERE user_id=#{user_id} 태그로 조건문을 사용하는데, 패스워드가 공백이 아니라면 아래 쿼리를 실행한다는 뜻이다. WHERE 또한 조건문이다. 사용자..