분류 전체보기

소개배경 이번에 Refresh Rotation 전략을 구성하며 상당히 바보 같은 에러를 자초하여 이를 기록하고자 간단하고 짧게 포스팅하게 되었다. 가장 크게 문제가 되었던 것은 RefreshToken으로 새로 발급 받은 AccessToken을 통하여 API의 응답이 이루어지지 않는 이슈였다. Refresh Rotation 로직 자체에 문제가 발생한 것은 아니나, 해당 로직에 관련 부분이 문제를 일으키게 되었다. 혹시라도, Refresh Rotation을 알지 못한다면 나의 블로그에서 JWT를 정리하였던 글 또는 타 블로그를 참조하는 것이 좋을 것같다. Trouble(문제원인) 현재 프로젝트에서 RefreshToken의 용도는 토큰을 재발급 받는 용도로만 사용하게 되었다. 현재 프로젝트에선 Custom F..
· Spring-boot
소개 배경 최근 주변 개발자가 SpringBoot를 처음시작하며, 강의 영상을 따라하는 것 같아 오랜만에 김영한님의 강의를 볼겸 레포지토리를 구경하다가 이상한 점을 포착하여 리뷰를 남기었는데 나 또한 정작 OSIV에 대해 제대로 알지못한다고 생각해 포스팅을 해보고자 한다. 문제점 내가 이상하다고 느꼈던 부분은 Entity에서 지연로딩 전략을 이용하고 있는데 OSIV 설정값을 false로 해놓을 경우 지연로딩에 한해서 LazyInitializationException이 발생하기에 지양한는 것으로 알고있었기 때문에 의문을 가지게 되었다. 엥 OSIV가 뭐지? Spring Boot에서 애플리케이션을 실행시킬 경우 아래와 같은 실행 로그를 본적이 있을 것이다. 2023-03-14 11:26:08.544 WARN..
소개 배경 최근 순환 참조 에러를 만나 이를 해결하기 위해 API Response Data를 DTO화 시키다가 만나게 된 에러이다. 난생 처음보는 오류와 함께 아래와 같은 ERROR도 아닌 WARN이 출력된다. 에러메시지 2023-03-13 15:14:09.835 WARN 11696 --- [nio-8080-exec-7] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation] PostMan Response 개발을 하며 처음 겪는 에러였기 때문에 우선, 에러를 파악하고자 HTTP 응답 ..
· Tech-Issue
우선 JWT 토큰이란 무엇인가? 주로 기본적인 웹 애플리케이션의 인가 방식을 구축하기위해 사용되는 프로토콜의 일종이다. 자세한 기술 설명은 아래 블로그를 참조해주기 바란다.(끼워팔기) JWT 토큰 이러한 JWT 인가 방식 이전에는 세션 기반의 인가방식이 존재했다. 우선 세션방식과 JWT 방식에 대해 간단히 설명후 JWT 토큰이 어째서 한계점을 가지는지 얘기해보자. 세션방식 세션 기반 인가방식의 경우 Server에서 Client의 인증 상태를 유지하는 방식이며, 기본적으로 크게 4개의 단계를 거치게된다. Client가 Server로 로그인 요청을 보내게된다. 이때 스프링부트에서는 기본적으로 loadByUsername()를 기반으로 로그인 요청이 진행된다. 이때 로그인은 username과 password를 ..
· Spring-boot
소개 배경 최근 진행중인 프로젝트의 경우 OAuth와 JWT 환경에서 동작되고 있다. 그에 따라 yaml 파일의 가독성 저하와 profiles를 사용하고 있음에도 목적에 맞게 사용하지 않는다고 생각하여 포스팅하게 되었다. 우선 yaml에서 파일은 분리하기 위한 설정 요소들에 대한 설명과 사용하는 법에 대해 설명하고자한다. 엥 Profiles? Profiles은 Spring Framework의 고유한 설정 방식 중 하나로 나의 Application이 어떤 환경에서 동작할지를 설정하는 것이다. 여러 개의 환경에 대한 설정을 관리하기 위한 기능으로 구성하고자 하는 환경에 관한 설정파일을 생성한 후 해당 환경이 동작할 때 해당환경에 맞는 설정파일에서 요소들을 활성화시켜 애플리케이션을 구동한다. 예를들어 개발환경..
· Spring-boot
소개 배경 현재 진행중인 프로젝트에서 평소와 같이 필요한 기능을 구현하기 위해 Service Layer에서 CRUD를 제작하던 도중 항상 고정적으로 Import하게 되는 어노테이션들이 갑자기 거슬렸다. 설계되는 도메인에 따라 Service 클래스는 그만큼 증가되게 되는데 그에 따라 impot 문이 기하급수적으로 늘어나 클래스의 로딩시간이 지연되거나 코드의 전체적인 가독성이 떨어진다고 생각했다. 그래서 이를 줄이기위해 CustomAnnotation을 사용하는 방법을 생각했다. 기술 적용 CustomAnnotation을 제작하는 것은 생각보다 간단하다. 우선 @interface 타입의 클래스를 하나 생성한다. Custom Annotation(사용자 정의) 타입의 클래스를 생성하기 위해 사용된다. public..
· 이성호
💻 내가 개발을 시작한 이유 이전 글에서도 내가 말했듯이 개발이라는 직업에 발을 디디게 된 것은 나의 친구의 영향이 컸다. 하지만, 현재의 나에게 개발자라는 확고한 목표이자 나의 방향성을 정하게 된 이유가 존재하기에 그에 대해 얘기해보고자한다. 나는 원래 개발에 대해서 관심도 없었을 뿐더러 대학에 들어가 컴퓨터 전공을 하게 된 이유도 고등학교 시절 게임을 좋아하기 때문에 게임을 만들자는 막연한 이유였다. 개발에 확실한 흥미를 가지게 된 계기는 유튜브에서 우아콘과 개발바닥이라는 컨텐츠를 보며 내가 공부하는 분야가 상당히 매력적이라고 느껴졌다. 친구의 추천으로 접하게 된 우아콘에서는 "내가 평범하게 사용하던 배달의 민족에 이렇게 많고 어려운 기술들이 들어가고 이에 대해 연구한다고?"라는 점과 우연히 유튜브를..
· 이성호
본 글은 최근 모함코 알고리즘 스터디가 종료됨에 따라 간단한 회고록이자, 공부 모임을 중요시하고 직접 만들게 된 이유를 저의 개인적인 가치관을 담아 진솔하게 작성하였습니다. ☁️ 맨 처음 공부를 시작하였을 때 처음부터 "나는 엄청난 서비스를 만드는 서버 개발자가 될거야!" 와 같은 배포와 꿈은 당연히 없었다. 내가 현재 주력으로 공부하는 자바 스프링부트를 시작하게 된 이유는 중학교 때 부터 동창이었던 친구가 우연히도 같이 컴퓨터 전공으로 진학하게 되었다. 그리고 2021년 초기에 군대를 갓 전역한 시점에 앞으로 "서버 공부를 할건데 너도 같이하자"라는 권유를 받아 자의반 타의반으로 공부를 함께하게 되었다. 당연히 좋아서 하는 공부가 아니었기에 흥미가 크지 않았고 흥미가 없으니 노력 또한 미미했다. 심지어..
LEE티씨
'분류 전체보기' 카테고리의 글 목록 (6 Page)