
'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 사용하기 AOP 란? OOP(Object Oriented Programming, 객체지향 프로그래밍)를 더욱 OOP답게 사용하도록 도와주는 개념이다.객체지향(OOP)이란, 기능과 데이터들을 모아 재사용이 가능한 객체로 캡슐화하는 것을 의미한다. 재사용하게 되면서 생산성이 높아졌다. AOP는 어플리케이션 전반에 사용되는 기능을 여러 코드에 쉽게 적용할 수 있도록 한다. ( ex. 로그, 권한 체크, 인증, 예외처리 등은 어플리케이션의 대부분에 적용되어야 하는 기능이다.) AOP는 결국 공통된 기능을 재사용하는 것이다. 물론 OOP도 공통된 기능을 하나의 객..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. 인터셉터 사용하기 스프링의 인터셉터는 어떠한 URI을 호출했을 때 해당 요청의 컨트롤러가 처리되기 전 또는 후에 작업을 하기 위해 사용된다. 이러한 역할은 필터(Filter)와 인터셉터(Interceptor)로 수행할 수 있다. 필터는 디스패처 서블릿 앞 단에서 동작하지만, 인터셉터는 디스패처 서블릿에서 컨트롤러로 가기 전에 동작합니다. 필터와 달리 인터셉터는 스프링 빈을 사용할 수 있습니다. HandlerInterceptorAdapter로 인터셉터 구현하기 Spring에서 인터셉터는 HandlerInterceptorAdapter 클래스를 상속받아 구현할 수 있다. 메소드 역활 preHandle 컨트롤러 실행 전에 수행 postHan..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. Logback 사용하기 Logback 이란? Log4j를 기반으로 작성된 로그 라이브러리. Log4j와 비교해서 성능이 10배정도 빠르고 메모리 사용량이 적다. Logback은 로그 설정이 변경될 경우 내부의 설정 변화 감지 스레드가 이를 감지하여 반영하기 때문에 재시작 없이 바로 반영된다. Logback은 로깅 구현체 중 하나로 slf4j(Simple Logging Facade for Java)를 함께 사용한다. slf4j는 바자의 다양한 로그 모듈들의 추상체라고 할 수 있다. (자바의 인터페이스와 비슷한 역활) API를 이용할 경우 실제 로깅을 담당하는 로깅 구현체의 종류와 상관없이 일관된 로그 코드를 작성할 수 있다. 로그 출력..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. 게시글 상세 기능 만들기 1. 목록 화면에서 상세 내용 확인하고 싶은 글을 선택. 목록 화면에서 선택된 글의 상세 화면을 호출하는 기능을 추가 2. 선택된 글의 상세 내용을 조회하고 조회수 증가시킨다. 서비스 영역에서 게시글 조회와 조회수 증가 2가지 작업 진행 목록 화면 수정하기 boardList.html a 태그를 이용해서 게시글 상세 화면으로 링크 연결. 상세 화면의 주소를 호출할 때에는 선택된 게시글 번로를 파라미터로 추가한다. 컨트롤러 영역 상세 화면의 호출 주소를 추가하고 글 상세 내용을 조회하는 로직을 호출 BoardController.java // 게시글 상세 @RequestMapping("board/openBoardD..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. 게시글 등록 기능 만들기 게시글 등록 화면 만들기 boardWrite.html 게시판 등록 제목 사용자로부터 입력된 값을 서버로 전달하기 위해 이용 action 속성에는 요청을 수행할 서버의 주소를 입력 컨트롤러 영역 게시글 등록 화면을 호출하고 게시글을 등록하는 2개의 메소드 추가 BoardController.java @RequestMapping("/board/openBoardWrite") // 게시글 작성 화면 호출 public String openBoardWrite() throws Exception{ return "board/boardWrite"; } // 게시글 등록 기능, html의 form 태그 action에서 입력한 주소..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. DTO(Data Transfer Object) 만들기 DTO는 어플리케이션 내의 각 계층 간 데이터를 주고받는 데 사용하는 객체이다. 계층이란 뷰, 컨트롤러, DAO, DB 등을 의미한다. board 패키지 아래 dto 패키지 생성하고 BoardDto 클래스 생성한다. package com.insight.board.board.dto; import lombok.Data; @Data // 롬복의 어노테이션으로 모든 필드의 getter,setter 를 생성 public class BoardDto { // 데이터 베이스의 게시판 테이블 칼럼과 매칭 private int boardIdx; private String title; private ..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. 데이터베이스 구성하기 t_board 테이블을 생성하고 임시 데이터도 추가 CSS 추가 Lombok(롬복) 추가 롬복은 자바 클래스를 만들 때 흔히 만드는 코드들을 어노테이션을 이용해서 자동으로 만들어 주는 라이브러리 흔히 만드는 코드란, DTO와 같은 모델에서 항상 만들게 되는 getter, setter 메서드나 상황에 따라 자주 만드는 toString, equals, hashCode와 같은 메소드를 의미한다. 롬복(lombok)은 단순히 어노테이션만 붙여줌으로써 어노테이션에 맞는 코드를 자동으로 생성해줍니다. 자동 생성되는 코드는 소스 파일에서는 확인할 수 없지만, eclipse의 Outline과 같이 메소드 리스트를 확인할 수..

'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다. Spring Boot 프로젝트 생성 프로젝트 설정 게시판을 만들기 위해 새롭게 프로젝트 생성을 하였다. 패키지 명을 board 로 지정했고 빌드 관리 도구를 Gradle 로 설정하였다. 프로젝트 생성 후 build.gradle을 열어보면 선택한 라이브러리들이 추가된 것을 확인 할 수 있다. 데이터베이스 연결하기 Spring Boot 프로젝트의 경우 데이터 소스를 처리하기 위해서 크게 2가지 방식 사용한다. application.properties를 이용해 설정 @Bean 어노테이션을 이용해 설정 개발환경과 운영환경에서 다르게 적용될 수 있는 설정들은 application.properties 에 정의하는 것이 좋다. 1. 데이터 소스 ..