post-thumbnail

not-a-gardener 개발기 13) Service 재사용

문제상황: 더이상 Dao 코드를 참을 수 없음 이 프로젝트는 대충 이렇게 생겼었다 연관관계가 있는 Repository를 Dao에서 조합해서 엔티티를 다루는 방식이다.

6일 전
·
0개의 댓글
·
post-thumbnail

Spring Boot 3.1 + React 18 보일러 플레이트

블로그에서 가장 핫한 포스트가 Spring Boot 3 설정 및 CORS 설정 관련 포스트이기도 하고,토이 프로젝트를 만들 때마다 비슷한 코드를 반복해야 하는 탓에 보일러 플레이트 코드를 작성했어요.쓰임새에 따라 브랜치로 구분해놓았습니다.스터디원과 공유할 겸 깃허브에

2023년 10월 27일
·
0개의 댓글
·

TypeScript: React에서 type 지정하기

1. type 만들어 적용하기 type Habit = { habitId: number; content: string; } // useState 등에 적용 -> Generic const [habits, setHabits] = useState<H

2023년 10월 19일
·
0개의 댓글
·
post-thumbnail

Spring Boot 3.0 이상에서 CORS 문제 해결하기

1. 안 나오면 섭섭한 CORS policy 설정 오류 Spring Boot 3.1로 프로젝트를 **'가볍게'** 하나 세팅해보려다 어김없이 CORS 오류와 만났다. 제목엔 호기롭게 안 나오면 섭섭하다고 적었지만, 솔직히 저 오류 안 뜬다고 정말로 섭섭할 것 같진 않다

2023년 10월 11일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 12) Refresh Token은 한번만 쓰도록, Redis Id에 대한 고민

Refresh Token의 문제점을 생각해봤다.1) 유효기간이 긴 RT가 탈취될 경우 보안은...?이 경우 Refresh Token Rotation을 구현하여 Refresh Token의 일회성을 보장하면 해결될 듯 하다.그런데 문제는 다음부터다.2) 탈취범이 정상유저보

2023년 9월 17일
·
0개의 댓글
·
post-thumbnail

Spring Boot 프로젝트 profile 설정

개발/배포 환경마다 DB 환경변수도 다르고, (나 같은 경우엔) allowed origin도 다르고, 보통 뭐 이것저것 많이 다르다. profile을 설정해서 별도의 귀찮은 작업 없이 개발 환경과 배포 환경을 분리해보자!

2023년 9월 15일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 11) QueryDsl 리팩토링, repository 구조

기존 @Query로 JPQL이나 nativeQuery를 사용했던 메소드를 QueryDsl을 통해 리팩토링했다.(QueryDsl 진작 배울걸 정말 재밌다 😆)식물 테이블에 물주기 테이블을 LEFT JOIN 후, 물주기 기록이 없는 식물을 받아오는 쿼리다.QueryDsl

2023년 9월 14일
·
0개의 댓글
·
post-thumbnail

QueryDsl 설정

QueryDsl 설정 정말 까다롭다..! 고생 깨나 한 김에 정리. (Spring boot 3.0 이상, 이하)

2023년 9월 13일
·
0개의 댓글
·

JUnit: 기본 사용법

드디어 테스트를 배우기로 결정했다!단위 테스트(unit test) 지원 프레임워크assert 메소드로 테스트 수행 결과 판별@Test 메소드가 호출될 때마다 새로운 인스턴스를 생성하여 독립적인 테스트스프링 이니셜라이저로 생성한 경우 거의 따로 설정 필요Xspring-b

2023년 9월 13일
·
0개의 댓글
·
post-thumbnail

IntelliJ: Spring boot 3.X 버전 build 안될 때

Spring boot 2.7을 사용하다 QueryDsl 공부는 3.1로 진행해보고자 한다. (두 개 동시 공부!)프로젝트 생성은 start.spring.io를 사용하였는데...실행이 안된다😂프로젝트 생성 후 IntelliJ에서 Gradle import가 안된다!(에러

2023년 9월 12일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 10) Jenkins: 빌드/배포 자동화

EC2의 jenkins에서 github push 트리거를 사용해서 배포하려다, '나 혼자 만들어서 배포하는 건데 굳이 github의 소스를 내려받을 필요가 있을까?'라는 생각이 들었다. 결국 로컬의 jenkins를 사용해 배포하기로 결정했다. 고로, 이 포스팅은이 포스

2023년 8월 10일
·
1개의 댓글
·
post-thumbnail

not-a-gardener 개발기 9) EC2 배포, Route 53 세팅

# 1. 기본 세팅 ## 1) Amazon Machine Image(AMI) AMI란 EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것. -> **Amazon Linux** ## 2) 인스턴스 유형 인스턴스의 사양을 선택하는 페이지. 프리티어 사용

2023년 8월 8일
·
0개의 댓글
·

not-a-gardener 개발기 8) Refresh Token으로 Access Token 재발급 받기

# 1. refresh token은 왜 사용하는가? 1) 로그인 유지: 액세스 토큰은 일정 기간 동안만 유효, 사용자는 액세스 토큰이 만료돼도 refresh token으로 새로운 액세스 토큰을 발급

2023년 7월 24일
·
0개의 댓글
·
post-thumbnail

리액트 새로고침/주소창 접근 시 raw json이 렌더링되는 현상

배포 중인 프로젝트에서 주소창으로 페이지에 접근하거나 새로고침 시 페이지가 아니라 raw json이 렌더링 되는 오류를 겪었다. (개발 환경에선 이런 현상이 일어나지 않았다)우선 해당 프로젝트의 환경은 다음과 같다.react + spring bootreact를 먼저 빌

2023년 7월 14일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 7) Refresh Token

JWT와 OAuth2 로그인을 도입하며 access token을 처리하는 것에 벅차 refresh token 구현을 미루고 미루다 드디어 구현! login_flow흐름 상으로는 기존 로그인 및 access token 발급 플로우에 refresh token 발급 로직을

2023년 7월 4일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 6) 예외처리: Filter, Controller, Custom Exception

# 1. 예외처리 크게 세 가지로 나눠볼 수 있다. 종류 | 해결 방법 --- | --- 표준 예외를 사용한 예외처리 | @RestControllerAdvice 커스텀 예외를 사용한 예외처리 | @RestControllerAdvice, Custom Exception

2023년 6월 19일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 5) 물주기 계산하고 갱신하기, 캘린더 꽉 채우기

1. 구현 기능 not-a-gardener는 "일주일에 한 번 물을 주세요"에서 벗어나기 위해 만든 서비스다. 물주기 기능에서 구현한 것들은 다음과 같다. 두 개 이상의 물주기를 기록하면 '최근 물주기'가 생성된다 기록된 주기를 사용해 다음 물주기 스케줄을 알려준다

2023년 6월 14일
·
0개의 댓글
·
post-thumbnail

not-a-gardener 개발기 4) JPA Projection, 물주기 계산로직

1. 문제 상황! 1) not-a-gardener의 메인 기능 not-a-gardener의 메인인 Plant, Garden 기능을 소개하자면 다음과 같다. 관수 주기 계산 (ex. 오늘 물 줄 날이에요, 물이 말랐을 수 있으니 흙을 확인해보세요, 물 줄 날짜가 지났어

2023년 6월 12일
·
0개의 댓글
·
post-thumbnail

homebrew 명령어

그만 찾아보자.. ## 1. 어플리케이션 설치,삭제 * **brew update**: brew를 최신버전으로 업데이트 * **brew search <패키지명>**: 프로그램이 있는지 검색 * **brew install <패키지명>[@버전]**: 프로그램 설치(최신버전

2023년 6월 6일
·
0개의 댓글
·

배포하다 만난 오류: ERR_CONNECTION_REFUSED

# ERR_CONNECTION_REFUSED ## 1) 설명 프론트에서 서버쪽으로 자원요청을 할수 없어서 발생하는 오류 ## 2) 해결 고정 아이피가 아니라 구입한 도메인으로 접근하니(클라이언트 .env의 서버 url로 구입한 도메인 적어줌) 해결되었다. http

2023년 5월 30일
·
0개의 댓글
·