1. RefreshToken @Getter @NoArgsConstructor @Entity public class RefreshToken { @Id @Column(name = "rt_key") private String key; @Column(name = "rt_value") private String value; @Builder public RefreshToken(String key, String value){ this.key = key; this.value = value; } public RefreshToken updateValue(String token){ this.value = token; return this; } } 보통은 Token 이 만료될 때 자동으로 삭제 처리 하기 위해 Redis 를 ..
전체 글
그래도 언젠가 개발자가 되지 않을까1. TokenProvider @Log4j2 @Component // 개발자가 직접 작성한 Class를 Bean으로 등록 public class TokenProvider { private static final String AUTHORITIES_KEY = "auth"; private static final String BEARER_TYPE = "Bearer"; private static final long ACCESS_TOKEN_EXPIRE_TIME = 1000 * 60 * 30; // 30분 private static final long REFRESH_TOKEN_EXPIRE_TIME = 100 * 60 * 60 * 24 * 7; // 7일 private final Key key; public Token..
1. Member Entity public class Member extends BaseEntity{ @Id @Column(nullable = false, unique = true) @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) private String uid; // 아이디 @Column(nullable = false, length = 1000) private String pw; // 비밀번호 private String name; // 이름 @Column(nullable = false, unique = true) private String email; // 이메일 private Stri..
Spring Security 란? Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring MVC 기반 애플리케이션에 보안을 적용하기 위한 표준이며, Filter 흐름에 따라 처리된다. 보안과 관련하여서 많은 옵션을 제공해주기 때문에 자체적으로 보안 관력 로직을 작성하지 않아도 되는 장점이 있다. 하지만 초기 설정이 복잡하고, 많은 학습량을 필요로 한다는 단점도 있다. JWT 란? Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 인증에 필요한 정보들을 암호화 시킨 문자열을 사용한다. 세션과는 달리 서버가 아닌 클라이언트에 저장된다. 따라서 세션 불일치에 대한 문제로부터 자유로워지..
백엔드 개발자 지망생이기 때문에, 그리고 혼자 하는 1인 개발이라서 프론트까지 신경 쓸 여력이 없다. 그래서 부트스트랩을 잘 활용해보기로 결정! 부트스트랩을 적용하는 건 어렵지 않지만 문제는 내가 개발하고자 하는 기능이 많아서 다 적용할 수 있는 템플릿은 찾을 수가 없었다는 것이다... 또, 거의 다 유료여서 무료 템플릿들을 찾는 데 시간이 오래 걸렸다.... 무료 템플릿 사이트들은 검색을 해보면 많이 나온다. 나는 쇼핑몰을 만들 것이기 때문에 쇼핑몰 위주의 템플릿을 찾았다. 부트스트랩 템플릿 사이트 : themewagon https://themewagon.com/theme-framework/bootstrap-5/ Bootstrap 5 Archives A huge open source collection..
1. 1차 ERD 구성 1차적으로 만든 erd. 전에 했던 팀프로젝트를 바탕으로 Member와 Item, Cart, Shipping, Q&A, Order 를 만들었고 Message, Like, Comment, Notify, Chat 은 구글링해서 만들었다. (아직 구현해본 적이 없는 부분이라서 수정이 많이 될 예정) 전에 팀프로젝트를 했을 때에도 erd 구성을 팀원들과 같이 했었는데, 한.... 7번? 8번??은 수정한 것 같다. 이번에는 부디 많은 수정 없이 1차에서 만든 그대로 실현되기를..... 참고로 여기에서 만들었다. https://dbdiagram.io/home dbdiagram.io - Database Relationship Diagrams Design Tool dbdiagram.io 더보기..
1. 스프링부트 프로젝트 생성 인텔리제이 커뮤니티 버전을 사용하고 있기 때문에 프로그램 내에서 프로젝트 생성이 안됨. https://start.spring.io/ 에 접속하여 프로젝트를 생성해준다. gradle, Java로 설정해주고 스프링부트 버전을 골라준다. 기본설정인 3.2.3을 사용하도록 할 것이다. 버전에 대해 검색해봤는데, SNAPSHOT은 아직 개발 중인 버전이라고 해서... 가장 최신 버전인 3.2.3을 선택해준다. 쩝쩝 = chomp, 박사 = phd 라서 phd.chomp으로 이름을 지어봤다. Jar 파일로 배포할 것이라서 Jar 파일로 설정해주고 Java는 17버전이 깔려있기 때문에 17버전으로 선택! 더보기 Jar와 War의 차이점이 궁금해서 검색해봤더니, Jar = 독립적인 애플리..
프로젝트명 : 쩝쩝박사 프로젝트 설명 : 음식의 영양성분, 칼로리, 용량 등 분석 사이트 (쇼핑몰 + 게시판) - 프로젝트 기간 : 2024-03-20 ~ (진행중) - 프로젝트 개발환경 : 운영체제 : window11 통합개발환경(IDE) : IntelliJ JDK 버전 : JDK 11 스프링부트 버전 : 3.2.3 데이터베이스 : MariaDB 빌드 툴 : gradle 관리 툴 : Git, GitHub - 프로젝트 개발 동기 : 여러 음식 알러지들을 가지고 있는 나는 항상 음식을 먹을 때, 성분표를 확인해보고 음식을 고른다. 현 시대에는 나 뿐만이 아니라 아이의 부모님이거나 비건이거나 다이어터, 알러지가 있는 등의 이유로 음식의 성분을 주의 깊게 따져보고 구매하는 시대인 것 같다. 따라서 음식의 성분..