목록분류 전체보기 (129)
YS's develop story
⭐패키지 구조 com.example.yanolja ├── domain │ ├── user │ ├── accommodation │ ├── review │ ├── reservation │ ├── accommodationLikes │ ├── basket │ ├── wishlist │ ... └── global ├── springsecurity ├── entity ├── config ├── exception ├── jwt └── util ⭐ERD ⭐ FlowChart ⭐Project Architecture ⭐담당 역할 spring security 프로젝트 배포 장바구니, 결제 사용자 예약조회 메인페이지 로그인(OAuth2) Querydsl ⭐ 프로젝트 구현 내용과 관련하여 작성한 블로그 글정리 프로젝트 진행하면..
이 글은 전글과 이어집니다.! https://yusang.tistory.com/140 Spring, OAuth2 + JWT 를 활용하여 구글 소셜 로그인 구현하기 [Spring 3.1.5, java 17] http://console.cloud.google.com/project Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 프로젝트 만들기 -> API 및 서비스 -> 사용자 인증정보 -> 사용자 인증 정보 만들기 -> OAu yusang.tistory.com 과정 설명에 앞서서 전체적인 동작방식을 ppt로 만들어 보았습니다. 전체적인 동작 방식을 그림으로 정리하자면 아래와 같습니다. 네이버 개발자 사이트에 접속합니다. 그 후 아래와 같이 애플리..
글 작성하기에 앞서 ppt로 정리한 전체적인 동작 흐름입니다. 현재 제 프로젝트에서는 아래와 같이 OAuth를 통한 구글, 네이버 로그인을 구현했고 그 과정을 정리하려고 글을 작성하게 되었습니다. http://console.cloud.google.com/project Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 프로젝트 만들기 -> API 및 서비스 -> 사용자 인증정보 -> 사용자 인증 정보 만들기 -> OAuth 클라이언트 ID 승인할 리디렉션 URI를 설정 후 생성 후 사용자 인증 정보에서 클라이언트 ID 및 클라이언트 보안 비밀번호 확인 가능 이것을 복사해 놓습니다. gradle에 추가 dependencies { //oauth imp..
개발하고 있는 프로젝트에 Querydsl을 적용해 보려고 합니다. Querydsl의 장점 유연성 및 강력한 검색 기능 : Query DSL을 사용하면 복잡한 검색 조건을 표현할 수 있습니다. 진행하고 있는 프로젝트 메인페이지 및 예약 검사 시 jpa repository를 통해 여러 복잡한 조건을 거쳐 DB에 여러 번 접근하게 되는데 QueryDSL을 활용하게 된다면 그럴 필요 없이 검색 조건과 필터를 조합해 정확한 결과를 얻을 수 있습니다. 가독성 및 이해도 향상 : Query DSL은 일반적으로 사람이 이해하기 쉬운 구조를 가지고 있기에 이는 쿼리를 작성하고 이해하는 데 도움이 되며, 코드의 가독성을 높여 유지보수를 쉽게 만들 수 있습니다. 성능 향상 : 적절한 쿼리를 작성함으로써 성능을 향상할 수 있..
ssl 인증서를 받기 위해서는 등록할 도메인이 필요합니다. 그래서 저는 가비아에서 1900짜리 제일 싼 도메인을 1년 구매했습니다. 그리고 배포한 인스턴스의 주소를 등록해 주었습니다. https://certbot.eff.org/instructions?ws=other&os=ubuntufocal Certbot Instructions Tagline certbot.eff.org 저는 gcp 인스턴스에서 spring 프로젝트를 배포하고 있었고 운영체제는 ubuntu 20이었기에 아래처럼 선택했습니다. 올바르게 위 사이트에서 선택을 해서 따라 하면 됩니다. sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot sudo ce..
GCP로 이동합니다. Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com vm인스턴스 -> 인스턴스 생성 아래와 같이 설정했습니다. 가장 저렴한 비용으로 할 수 있습니다. OS는 ubuntu로 했습니다. vpc 네트워크 -> 외부 고정 ip 주소 예약을 클릭해 고정 ip주소를 할당합니다. 생성된 인스턴스에 ssh를 통해 연결하고 도커를 설치합니다 아래는 도커공식문서에서 가져온 설치 방법입니다. Install Docker Engine on Ubuntu Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites an..
public record CreateReservationRequest( @NotNull(message = "startDate cannot be null") LocalDate startDate, @NotNull(message = "endDate cannot be null") LocalDate endDate, @NotNull(message = "numberOfPerson cannot be null") Integer numberOfPerson ) { public Reservations toEntity( User user, AccommodationRooms rooms, boolean paymentCompleted) { return Reservations.builder() .user(user) .rooms(roo..
@Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseTimeEntity { @CreatedDate protected LocalDateTime createdAt; @Column(insertable = false) @LastModifiedDate protected LocalDateTime updatedAt; ..... .... 위와 같이 createdAt 칼럼은 테이블에 튜플이 생성될 때 최초생성된 시간을 기준으로 값이 넣어지도록 @CreatedDate 어노테이션이 createdAt 필드에 적용되어 있습니다. 의도대로라면 이제 이 엔티티를 저장할 때마다 createdAt 필드는 현재 ..
docker-compose.yml 설정 파일 version: '3' services: travel-db: container_name: test build: context: ./database dockerfile: Dockerfile ports: - "3307:3306" restart: always healthcheck: test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ] timeout: 30s retries: 3 networks: - network networks: network: container_name -> 컨테이너의 이름을 test로 설정합니다. build 섹션: 도커 이미지를 빌드하는 데 필요한 설정입니다. context: ./database: ..
gradle에 추가 // dotenv-java implementation 'io.github.cdimascio:java-dotenv:+' . env파일 생성하여 최상단에 넣기 GOOGLE_MAP_API_KEY=apikey . gitignore로. env파일 등록 # Ignore .env files .env 아래와 같이 등록된 secretKey 사용 private static Dotenv dotenv = Dotenv.load(); private static final String API_KEY = dotenv.get("GOOGLE_MAP_API_KEY"); application.yml 파일에 import: optional:file:.env[.properties] 항목 추가 spring: profiles: ..