반응형

전체 글 477

[Kotlin] Refresh Token을 Redis에 저장하는 코드 작성 및 고찰

인증 방법에는 토큰을 이용하는 방식, 세션을 이용하는 방식이 존재한다. 나는 주로 토큰을 이용하는 방식을 선호하는데 그 이유는 아래와 같다. 세션 기반 인증은 쿠키를 사용해야 한다. 그러나 쿠키는 네이티브 앱에서 지원하지 않고 브라우저에서만 사용할 수 있다. 다중 WAS 환경에서 세션은 동기화 이슈가 존재한다. 따라서 확장성이 낮다. sticky session, session clustering 등 다양한 방법이 존재하지만, 토큰 방식은 이러한 점을 고려할 필요가 없다. 물론 토큰 방식은 별도의 구현이 좀 더 필요하지만, 한 번 구현해놓으면 어렵지 않고 편리하게 이용가능하기 때문에 큰 거부감이 없는 편이다. 토큰 방식의 인증은 또 두 가지 방법으로 나뉜다. Access Token만을 이용하는 방식과 Re..

[NCP] Naver Cloud platform (NCP) 1개월 이용 후기

넥스터즈 동아리에서 20만원 상당의 NCP 크레딧을 제공해줘서 1개월 간 Naver Cloud Platform을 이용해볼 기회가 생겼다. 넥스터즈에서 진행한 프로젝트 및 동아리 후기는 아래 글을 참고하자. https://kth990303.tistory.com/429 [Nexters] 넥스터즈 22기 최종 이수 후기 3월 4일, 마지막 8주차가 지나가고 넥스터즈 22기를 최종적으로 이수했다. 넥스터즈를 두 기수 이상 이수해야 받을 수 있는 `수료` 조건을 만족한 것은 아니지만, 나름 한 기수를 좋은 점수로 `이 kth990303.tistory.com 넥스터즈 동아리에서 출석체크 애플리케이션을 만들면서 NCP의 Storage, Public IP, Cloud DB for PostgreSQL, VPC Serve..

Infra/NCP 2023.03.06

[Nexters] 넥스터즈 22기 최종 이수 후기

3월 4일, 마지막 8주차가 지나가고 넥스터즈 22기를 최종적으로 이수했다. 넥스터즈를 두 기수 이상 이수해야 받을 수 있는 `수료` 조건을 만족한 것은 아니지만, 나름 한 기수를 좋은 점수로 `이수`했기 때문에 후기를 작성해보려 한다. (수료 조건: 두 기수 이상 이수 / 이수 조건: 한 기수 이상 일정 점수 이상 획득) 타이트한 일정, 그럼에도 성공적으로 마무리된 프로젝트 우리 팀은 대부분 직장인으로 구성돼있다. 디자이너, 프론트 팀원들은 전부 직장인이었고, 백엔드 팀원들은 나랑 한명을 제외하곤 모두 직장인이었다. 백엔드는 6년차 개발자 한 분, 나, 우테코 4기 정, 우테코 5기 애쉬로 구성돼있다. 다들 회사 또는 우테코 생활때문에 굉장히 바빴음에도 불구하고 열심히 임해주셔서 누락된 api 없이 모..

[Nexters] 넥스터즈 22기 6~7주차 활동 후기

시간이 정말 빠르다. 어느덧 넥스터즈 활동도 한 주 정도만 남겨둔 상태이다. 6주차에는 온라인 세미나를, 7주차는 밤까지 코딩하는 `넥나잇`을 진행했다. 특히 7주차는 굉장히 바쁜 하루였다. 8주차 때 최종 배포를 했어야 하는 상황이었고, 우리 팀원분들은 다들 직장인이거나 학교 졸업반인 사람들이 많았기 때문에 `넥나잇`시간에 최대한 불태워서 거의 마무리를 지어야 했기 때문. 간단하게 후기를 남겨보도록 하겠다. 6주차 6주차는 위와 같이 온라인으로 컨퍼런스 시간을 가졌다. 디자이너와 개발자가 따로 진행이 됐는데, 나는 백엔드 개발을 맡고 있어서 개발자쪽 세션을 쭉 들었다. 개발자 강연은 총 4개가 진행됐다. 새로운 데이터베이스 소개부터 이직썰, 오픈소스 얘기까지 다양한 얘기가 나왔다. `이직썰`은 특히 우..

[Spring] ArgumentResolver 사용 시 주의점 (feat. OSIV)

ArgumentResolver는 컨트롤러 단에서 요청값으로부터 원하는 객체 또는 프로퍼티를 반환하게 할 수 있다. 보통은 커스텀 유저 객체를 반환할 때 HandlerMethodArgumentResolver의 구현체를 이용하여 많이 사용한다. Java에서의 ArgumentResolver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 @Component @RequiredArgsConstructor public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArgumentResolver { private final JwtTokenProvider jwtTokenProvider; @Ov..

[Kotlin] Swagger 문서에 DTO 필드 required 표시해주기

프론트 측에서 swagger 문서의 request Body에 required 옵션을 추가해달라는 요청이 들어왔다. 현재는 request에 required 표시인 레드닷(red dot)이 하나도 적용되지 않는 상황이다. 심지어 swagger는 Java와 Kotlin에서 서로 약간 다르게 동작하기도 한다. 어떻게 해야 할까? @ApiParam? @Parameter? Swagger 3.0 버전 이후부터는 @ApiParam이 @Parameter로 변경됐다. import io.swagger.v3.oas.annotations.Parameter 실제로 Java에서는 해당 어노테이션을 적용하면 잘 뜰것이다. 하지만 코틀린은? @Parameter(required=true)로 해봤자 전혀 변함이 없다. 심지어 @field..

[NCP] Global DNS로 Aws Route 53처럼 가비아 도메인 붙이기

Naver Cloud Platform에서는 퍼블릭 ip 대신 구입한 도메인 주소로 라우팅할 수 있게 해주는 Global DNS 서비스를 제공해준다. NCP에서의 도메인 붙이는 방법은 Aws Route 53에 비해서는 비교적 간단하다. 적용 방법 1. Global DNS 접속 -> 도메인 추가 -> 도메인 주소 입력 도메인 추가를 눌러준 후, 구입한 도메인 이름을 입력해준다. 좌측 도메인 주소 옆 상태를 확인하고 파란색이 될 때까지 대기한다. 해당 도메인에 대해 2개의 레코드가 자동으로 추가가 됐을 것이다. 하나는 SOA 레코드 (해당 도메인의 모든 정보와 권한을 책임지는 필수 레코드)이며, 다른 하나는 NS 레코드(네임서버 레코드)이다. 2. A 레코드 생성 이제 우리는 구입한 도메인 주소가 우리 서버의..

Infra/NCP 2023.02.21

[Nexters] 넥스터즈 22기 4~5주차 활동 후기

넥스터즈 활동이 벌써 절반이 지나갔다. 4주차부터는 본격적으로 개발을 시작했으며, 그렇기 때문에 4~5주차를 한꺼번에 작성해보려 한다. 넥스터즈 4~5주차 활동 4주차에는 Usability Test(이하 UT)를 진행했고, 5주차에는 UT 피드백을 반영한 중간 발표를 하는 날이었다. (처음에는 Usageness Test인 줄 알고 이를 구글링했다가 우테코 4기 유세지 깃허브 결과만 뜨길래 당황했었다.. ㅋㅋ) 4주차에 UT를 진행한다길래 이때까지 개발을 끝내야하는 줄 알고 깜짝 놀랐었다. 알고보니 다행히 figma로 대략적인 진행 흐름 및 디자인에 대해서만 발표하는 것이었다. 우리팀은 넥스터즈 출석체크 프로젝트 팀이다. 그렇기 때문에 회원이 로그인하는 경우, 비밀번호 변경, 각 주차별 세션에 접속해서 출..

[ERROR] JPA initializationError 해결 방법 모음 및 대처법

스프링 프레임워크에서 JPA ORM을 이용하면 반드시 한 번쯤은 만날 수밖에 없는 에러가 있다. could not prepare statement; SQL; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at org.springframework.orm.jpa..

[PostgreSQL] Mac M1 Postgres 실행 에러 해결_ Failure while executing; `/bin/launchctl bootstrap gui/501 /Library/LaunchAgents/homebrew.mxcl.postgresql@14.plist` exited with 5.

오랜만에 아래 명령어로 PostgreSQL를 실행하려는데 아래 에러를 만났다. Postgresql 실행 시 brew services start postgresql@14 Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors. Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/kth990303/Library/LaunchAgents/homebrew.mxcl.postgresql@14.plist` exited with 5. psql 쉘 실행 시 혹시나 싶어 psql 쉘을 띄워보려 해도 아래 에러가 발생했다. psql pos..

CS/Database 2023.02.08
반응형