본문 바로가기

Spring9

[Spring Boot] Maven -> Gradle로 변환하기 기존에 JPA를 사용하여 만들었던 maven 프로젝트를 gradle로 바꾸기로 했습니다. lombok, querydsl 관련 에러가 나서 같이 다뤄보려고 합니다 !!! 1. https://gradle.org/releases/ Gradle | Releases Find binaries and reference documentation for current and past versions of Gradle. gradle.org Gradle 공식홈페이지에서 원하는 버전을 다운받습니다. 저는 binary-only 로 다운받았습니다. 2. 환경변수 설정 JDK와 동일하게 Gradle도 환경변수 설정을 해야합니다. [시스템 속성] -> [환경 변수] 1. 시스템 변수 변수 이름 : GRADLE_HOME 변수 값 : .. 2022. 10. 26.
Spring Security란? Spring Security란? Spring Application의 사용자 인증(Authentication), 권한 부여(Authorize) 및 기타 보안 기능을 제공하는 Java / Java EE 하위 -프레임 워크입니다. Spring Security는 매 요청마다 올바른 권한을 가진 사용자가 인증 절차를 확인하였는지에 대한 검증을 해줍니다. 또한 Filter 기반으로 동작하며 xml을 따로 작성하지 않고, Bean으로 컨트롤 할 수 있습니다. Authentication / Authorization (인증과 인가) 인증(Authentication): 해당 사용자가 본인이 맞는지를 확인하는 절차 (인증정보 제출) 인가(Authorization): 인증된 사용자가 요청된 자원에 접근 가능한지를 결정하는 절.. 2022. 10. 21.
Spring Framework란? 개념 정리 Spring Framework란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 라고 소개되어 있습니다. 여기서 단어별로 끊으면서 Spring Framework가 정확히 어떤 프레임워크인지 설명하겠습니다. (1) 엔터프라이즈 개발 뜻을 풀이하면 기업을 대상으로 하는 개발이라는 말입니다. 즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라고 합니다. (2) 오픈소스 경량급 여기서 경량급은 툴의 도움 없이는 다루기 힘든 난해한 설정파일과 불편한 서버 배치 등으로 인한 부담을 없애고, 쉽게 해당 기능들을 사용할 수 있게 되었음을 의미합니다. 오픈 소스는 소스가 공개되어 있어서, 언제든 수정이 가능하고 이슈를 보내.. 2022. 9. 16.
Spring AOP 적용 AOP AOP: Aspect Oriented Programming AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶을 때 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶을 때 [ MemberService 회원 조회 시간 측정 추가 ] package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org... 2022. 2. 3.
Spring 회원 웹 기능, 웹 MVC 개발 오늘은 회원 관리 예제를 웹 MVC로 개발해보겠습니다. 1. 회원 웹 기능 - 홈 화면 [ 홈 컨트롤러 추가 ] package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } [ 회원 관리용 홈 ] Hello Spring 회원 기능 회원 가입 회원 목록 [ 결과 ] 기존에 index.html이 있어도 컨트롤러 안에 "/"가 맵핑되.. 2022. 1. 25.
Spring 컴포넌트 스캔 및 자동 의존관계 설정 | 스프링 빈 등록 스프링 빈과 의존관계 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러가 회원 서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비해야 합니다. ( = 회원 컨트롤러가 회원 서비스를 의존한다) [ 회원 컨트롤러에 의존관계 추가 ] package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final MemberSer.. 2022. 1. 24.
Spring 비즈니스 요구사항 정리 | 회원 리포지토리 & 테스트 케이스 작성 비즈니스 요구사항 정리 기본 사항들로만 구성된 단순한 구조로 개발할 예정입니다. 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소 선정 X [일반 웹 애플리케이션 계층 구조] 컨트롤러: 웹 MVC의 API 또는 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 (ex. 회원 중복 가입 예외처리) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨) [클래스 의존관계] 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 단순한 메모리 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행.. 2022. 1. 20.
Spring 정적 컨텐츠 기능과 동작 과정 | MVC | API 정적 컨텐츠란 ? 서버를 거치지 않고 파일을 웹 브라우저에 그대로 내려주는 것 예시를 들어봅시다. static 폴더에 hello-static.html 파일을 생성해 줍니다. 정적 컨텐츠 입니다. http://localhost:8080/hello-static.html 로 접속하면 다음과 같은 결과가 나옵니다. static 폴더에 원하는 파일을 넣으면 정적 파일로 반환됩니다. 하지만 이 파일에 그 어떤 프로그래밍도 할 수 없습니다. [정적 컨텐츠 동작 과정] Reference : https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-bootfeatures.html#boot-features-spring-mvc-static-con.. 2022. 1. 19.
Spring, View 환경 설정 | thymeleaf 템플릿 동작 과정 인프런 강의를 통해 친구들과 Spring 스터디를 하기로 했습니다. 먼저 실습을 하기 위해서 아래와 같은 환경을 만들어야 합니다. 1. JDK 11 설치 2. IDE: IntelliJ 또는 Eclipse 설치 저는 IntelliJ Community로 진행하였습니다. https://start.spring.io 위 사이트를 통해 프로젝트 생성 후 다운받아 IntelliJ에서 열었습니다. main 메소드를 실행시키면 정상적으로 작동됩니다. Gradle을 통하지 않고 바로 결과를 확인하기 위해 setting에 들어가 설정해주었습니다. 라이브러리 Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 합니다. Spring Boot 라이브러리 spring-boot-starter-web ㄴ spring-boot-s.. 2022. 1. 18.