spring

spring

[OAuth] 구글 서비스 등록, properties 설정

구글 서비스 등록 https://console.cloud.google.com Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 새 프로젝트 선택, 만들기 API 및 서비스에서 사용자 인증 정보 만들기 - OAuth 클라이언트 ID (먼저 동의 화면 구성) 애플리케이션 유형 선택 승인된 리다이렉션 URI 값 등록 http://localhost:8080/login/oauth2/code/google 서비스에서 파라미터로 인증 정보 줄 때 인증 성공 시 구글에서 리다이렉트할 URL 기본으로 {도메인}/login/oauth2/code/{소셜서비스코드}로 리다이렉트 URL 지원함 리다이렉트 URL 지원하는 Controller는 이미 시큐리티에서 구현해둠 A..

spring

[mustache] 등록, 조회 화면

부트스트랩, 제이쿼리 mustache에 레이아웃 방식으로 추가하기 공통 영역을 별도의 파일로 분리해 필요한 곳에서 가져다 쓰는 방식 header.mustache css 불러옴 (화면 그리는 역할이라 head에서 불러야 함) footer.mustache js 불러옴 (js 용량 크면 body 부분 실행 늦춰져서 하단에 두는게 좋음 - 화면 다 그려진 후 호출) bootstrap.js는 제이쿼리에 의존해서 제이쿼리가 먼저 호출되게 코드 작성 index.mustache {{>layout/header}} 스프링 부트로 시작하는 웹 서비스 글 등록 게시글 번호 제목 작성자 최종수정일 {{#posts}} {{id}} {{title}} {{author}} {{modifiedDate}} {{/posts}} {{>lay..

spring

[mustache] 의존성 추가, IndexController

루비, js, 파이썬, PHP, java, 펄, GO, ASP 등 대부분의 언어 지원하는 템플릿 엔진 자바에서는 서버 템플릿 엔진, js에서는 클라이언트 템플릿 엔진으로 사용 가능 머스테치 의존성 추가 build.gradle에 등록 compile('org.springframework.boot:spring-boot-starter-mustache') 파일 위치는 기본적으로 src/main/resources/templates IndexController package com.springAWS.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controll..

spring

템플릿 엔진

지정된 템플릿 양식과 데이터가합쳐져 HTML 문서 출력하는 소프트웨어 - JSP, Freearker, React, Vue 등 서버 템플릿 엔진 서버에서 java 코드로 문자열 만든 후 HTML로 변환해 브라우저로 전달함 HTML 코드에서 고정적으로 사용되는 부분을 템플릿으로 만들어둠 동적으로 생성되는 부분만 특정 장소에 끼워넣는 방식으로 동작함 Freemarker, Thymeleaf, Mustache, JSP 등 클라이언트 템플릿 엔진 브라우저에서 화면 생성함 (서버에서 이미 코드가 벗어난 경우) HTML 형태로 코드 작성 가능, 동적으로 DOM 그리게 해줌 렌더링 끝난 후 서버 통신 없이 화면 변경 필요할 때 사용 가능함 공통 템플릿 만든 후 서버에서 받아온 데이터를 템플릿 적절한 위치에 replace..

spring/JPA

[JPA] 생성시간, 수정시간 자동화

LocalDate Java의 기본 타입인 Date의 문제점을 고친 타입 (Java8) 불변 객체가 아님 (멀티스레드 환경에서 문제 발생 가능함) 10월 나타내는 Calendar.OCTOBER의 숫자 값이 9 Joda Time 이라는 오픈소스 사용해서 문제점 피했었음 BaseTimeEntity 모든 Entity의 상위 클래스가 되어 Entity 클래스들의 createdDtae, modifiedDate를 자동으로 관리해줌 package com.springAWS.domain; import lombok.Getter; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifie..

spring/JPA

[JPA] 등록, 수정, 조회 API

API 만들기 위한 클래스 Request 데이터 받을 Dto API 요청 받을 Controller 트랜잭션, 도메인 기능 간의 순서 보장하는 Service Spring 웹 계층 Web Layer DTOs Service Layer Domain Model Repository Layer Web Layer 컨트롤러(@Controller), JSP/Freemarker 등의 뷰 템플릿 영역 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역 Service Layer @Service에 사용되는 서비스 영역 Controller와 Dao 중간 영역에서 사용됨 @Transactional이 사용되어야 하는 영역 Repository Layer 데이..

spring/JPA

[JPA] domain 패키지 - Entity, Repository

domain 패키지 도메인 담을 패키지 (게시글, 댓글, 회원, 정산, 결제 등 소프트웨어에 대한 요구사항 / 문제 영역) Entity 클래스 실제 DB의 테이블과 매칭될 클래스 package com.springAWS.domain.posts; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; @Getter @NoArgsConstructor @Entity public class Posts { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(length = 500, nulla..

spring/JPA

[JPA] JPA

관계형 데이터베이스 (Oracle, MySQL, MSSQL 등)와 객체지향 프로그래밍 언어의 패러다임 불일치 관계형 데이터베이스 : 어떻게 데이터 저장할지에 초점 맞춰짐 객체지향 프로그래밍 언어 : 기능과 속성을 한 곳에서 관리하는 기술 JPA 사용시 중간에서 패러다임 일치시켜줌 개발자는 객체지향적으로 프로그래밍함, JPA가 SQL 대신 생성해서 실행함 SQL 종속적인 개발 안해도 됨 Spring Data JPA 구현체들을 쉽게 사용하기 위해 추상화시킨 Spring Data JPA 모듈을 이용해 JPA를 다룸 JPA

hahihi
'spring' 카테고리의 글 목록 (4 Page)