분류 전체보기
[PostgreSQL] 알아두면 좋은 기본 명령어
PSQL 주요 Command 1. \c : 접속한 DB Instance를 변경. 여러 DB Instance들이 있고, 정보를 조회나 Query 실행 대상 DB Instance를 변경할 때 사용한다. 사용법 \c [DB Name] [Connection User} 사용예 ... # Database Instance 'messenger'에 user 'user'로 접속 postgres=# \c messenger user You are now connected to database "messenger" as user "user". ... # Database Instance 'postgres'에 user 'postgres'로 접속 messenger=# \c postgres postgres You are now con..
[프로그래머스] 하샤드 수 - Java 문제풀이
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 사항 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 정답 풀이 class Solution { public boolean solution(int x) { return isHarshad(x); } private boolean isHarshad(int n) { int num = n; int sum = 0; while(num > 0) { sum += num % 10; num /= 10; } return n % s..
2023.12.12 TIL - PostgreSQL 알아두면 좋은 명령어
이번 JPA 심화주차 강의에서 MySQL을 사용하지 않고 PostgreSQL을 사용하여 알아두면 좋은 명령어들을 포스팅 하면 좋을 것 같아 정리하였습니다. [PostgreSQL] 알아두면 좋은 기본 명령어 PSQL 주요 Command 1. \c : 접속한 DB Instance를 변경. 여러 DB Instance들이 있고, 정보를 조회나 Query 실행 대상 DB Instance를 변경할 때 사용한다. 사용법 \c [DB Name] [Connection User} 사용예 ... # Database Instance 'mes mocha-coding.tistory.com
2023.12.11 TIL
팀 프로젝트를 마치며 내배캠 심화주차 백 오피스 팀 프로젝트를 마치며 느낀점과 앞으로 도전해야 할 것들을 아래 포스트에 작성을했다. 프로젝트 일정동안 맡은 기능에 대해 책임감을 갖고 개발하고, 팀원들과 필요한 정보들을 공유하고 의논하며 완성도 높은 결과물을 만들 때 마다 정말 보람찬 것 같다. 그리고 벌써 캠프에 참여한지 3개월이 되어가는데 여기서 같은 팀원으로 만난 사람들이 성장하고 나도 성장하는 것을 보며 참여하길 정말 잘했다고 느낀다. 남은 기간 동안 더 열심히 노력해서 좋은 개발자가 되었으면 좋겠다. [팀프로젝트] ipv4 - Y SNS KPT 회고 IPv4 | Built with Notion Built with Notion, the all-in-one connected workspace with..
[팀프로젝트] ipv4 - Y SNS KPT 회고
IPv4 | Built with Notion Built with Notion, the all-in-one connected workspace with publishing capabilities. teamsparta.notion.site 1. 프로젝트 개요 프로젝트 명 : X보다 더 나은 Y 프로젝트 설명 : X와 Threads향을 조금씩 가미한 SNS 백엔드 서버 API 필수구현 사용자 인증 (회원가입, 로그인 및 로그아웃) 프로필관리 (프로필 수정, 비밀번호 수정) 게시글 CRUD 추가구현 소셜로그인 (카카오, 네이버) 백오피스 (admin 권한) 좋아요 팔로우 명예의전당 프로필 사진 업로드 게시물 멀티미디어 지원 기능 2. Keep 1. 소통을 중요시하며 자리 비움이나 문제가 생기면 빠르게 공유하겠습..
2023.12.10 TIL - oauth2-client 인증 실패 핸들러
Srping oauth2-client 모듈을 활용하여 소셜로그인을 구현하였다. 그 중 인증처리가 실패할 경우 에러 응답을 주기 위해 oauth2 failureHandler를 구현하였다. 인증 실패 커스텀 핸들러 구현 OAuth2 인증실패 시 기본적으로 SimpleUrlAuthenticationFailureHandler가 실패처리를 하게된다. SimpleUrlAuthenticationFailureHandler은 설정 때 받은 url로 (기본값: /login?error) 리다이렉트 시켜 응답을 반환한다. 하지만 구현하는 프로젝트는 REST API 서버이므로 리다이렉트를 시키지 않고 Json 포맷으로 적절한 에러응답을 보내야한다. 그래서 커스텀 핸들러를 구현하고 주입해주어야한다. OAuth2Authentica..
2023.12.08 TIL - REST API 서버 네이버,카카오 소셜 로그인 구현
소셜 로그인 구현 구현 요구사항 중 네이버, 카카오 소셜 로그인 구현이 있어 Spring 에서 제공하는 oauth2-client 모듈을 이용하여 구현했다. 환경 SpringBoot 3.1.5 Java 17 Gradle 8.4 준비사항 build.gradle에서 해당 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' 인증 과정 소셜 로그인 인증 과정은 다음과 같습니다. 1, 2. 사용자가 서버에서 설정된 oauth2 login url을 통해 로그인 요청시 (ex. /api/auth/login/{provider}) 서버에서 로그인페이지로 리다이렉트시킵니다. 3. 로그인을 완료하게되면 인증서버에서 받은 code ..
2023.12.07 TIL - Refresh Token 재발급 구현하기
Jwt를 이용한 토큰 인증방식으로 인증/인가를 구현하게 되면 장점도 있지만 단점도 존재한다. RefreshToken 토큰 인증 방식은 보안에 취약하기 때문에, 보통 유효기간을 짧게 가져간다. 유효기간을 짧게 설정하면 로그인 요청이 많아지게 되어 토큰 방식으로 인증하는 의미가 퇴색된다. 이를 보완하기위해 Jwt AccessToken을 발급할 때, 유효기간을 길게 설정한 토큰인 RefreshToken도 발급하게 된다. RefreshToken은 AccessToken과 마찬가지로 Jwt로 발급하거나 UUID를 활용한 긴 문자열로도 발급한다. 형태의 제한이 없고 식별할 수 있는 값이면 되는 것 같다. 인증 과정 토큰을 이용한 인증 과정은 다음과 같다. 1. 사용자 회원가입 정보 입력. 2. 유효한 데이터가 들어왔..