전체 글

주니어 백엔드 개발자입니다! Java, Spring, Node, Vue 등의 개발 콘텐츠 그 외 교육, 동아리, 컨퍼런스 참여 기록!
끄적끄적

2023년 신입개발자의 회고

조금 늦었지만 2023년 회고를 올려봅니다 작년 계획 책 읽기 To acquire the habit of reading is to construct for yourself a refuge from almost all the miseries of life. 독서하는 습관은 인생의 거의 모든 불행으로부터 자신을 위한 은신처를 만드는 것이다. - 윌리엄 서머싯 몸 내 나이만큼 책읽기라는 계획이 있었지만 실패했다. 목표했던 26권보다 적은 12권의 책을 읽었다. 힘든 직장 생활, 외로운 삶 속에서 나의 정신을 온전히 유지하는 일이 쉽지 않았다. 직장에서의 적응을 핑계로 책을 잠시 손에서 놓았던 적이 있었다. 시간이 갈수록 시각은 편협해졌고 삶은 의미를 잃어갔다. "생각하는대로 살자"를 인생의 모토로 삼은 내가 ..

Spring/Spring Security

[Spring Security] LogoutFilter를 구현할 때 생길 수 있는 문제

Spring Security는 손쉽게 사용할 수 있는 기본 LogoutFilter를 제공한다. 기능을 기본 LogoutFilter 스펙에 맞춰서 구현했다면 아무런 문제가 없겠지만 그렇지 않을 경우(예를 들어 JWT로 인증/인가를 구현) 로그아웃을 했을 때 알 수 없는 오류가 터지기 시작한다. 이럴 땐 내가 원하는 기능에 맞춰 로그아웃 기능을 커스터마이징이 필요한데, 그 기능을 정확히 이해하지 않으면 또 다른 문제가 발생할 수 있다. 지금부터 LogoutFilter의 개념과 구현 과정 중 문제 어떻게 해결할 수 있는지 알아보자. Spring Securiry Logout 스프링 시큐리티는 로그아웃 기능을 제공한다. Config 파일에서 아무런 설정을 하지 않아도 기본적으로 제공되는 로그아웃 기능이 동작한다...

끄적끄적

신입 개발자! 회사와 함께 성장하기

작년 3월 신입 개발자로 입사한 나는 부푼 꿈을 안고 개발자로서의 커리어를 시작했다. 작은 스타트업이었다. 코드리뷰는 당연히 없었고, 업무를 위해 참고할 수 있는 문서가 단 한 장도 없었다. 나에게 "개발의 왕도"를 제시해줄 수 있는 시니어 개발자도 없었다. 거기다 회사일이 많았기 때문에 CTO님이나 사수가 신입 개발자들을 케어해줄 수 있는 시간이 부족했다. 결국 내가 성장할 수 있는 방법을 스스로 찾아야 하는 상황이 되었다. 회사에 입사하기 전 체대 출신 개발자의 회고라는 글을 읽었다. 정수님의 발자취를 보며 나도 어떤 회사를 가더라도 내 성장 환경을 만들기 위해 행동하면 무엇이든 될 거라는 자신감을 얻었다. 스타트업 회사에 입사하는 것을 지망했기에 회사에 입사하면 어떤 것을 실천해볼지 고민해봤다. 실..

Spring/Spring Boot

스프링의 외부 API 호출, 그리고 RestClient

애플리케이션 외부 API 호출 현업에서 외부 API를 호출해야하는 일이 많다. 다른 회사의 서비스(휴대전화 인증, 결제시스템)를 이용할 때 필수적이다. 물론 클라이언트 단에서 외부 API를 호출한다면 스프링 서버에서 API를 호출할 일이 없겠지만, CORS 오류를 회피하기 위해 프록시 서버가 필요한 경우 스프링 서버가 프록시 서버의 역할을 해줘야 하기 때문에 스프링에서 외부 API를 대신 호출해줘야 한다. 또한 서버를 서비스 단위로 나눠 배포하는 경우, 내부 서버 컨테이너끼리 데이터를 교환해야할 경우가 생기는데 이럴 때 RabbitMQ와 같은 메시지 브로커를 사용해 데이터를 전달할 수 있지만, 컨테이너끼리 API를 호출을 하는 방식을 사용할 수 있다. 자바나 스프링에서는 HTTP 요청을 보내기 위한 다양..

활동/글또

글또 9기 발돋움

글또를 지원하게 되기까지 취업을 준비를 시작하고 취업이 된 후에도 한동안 눈앞에 보이는 것에만 정신이 팔려 살았다. 꾸준히 작성해왔던 블로그도 소홀해졌고 외부 활동도 거의 하지 않았다. 오로지 삶의 밸런스를 잡아가는 것에 집중했다. 시간이 지나 대충 직장에 적응했고 여유가 생겨 자신을 돌아볼 시간이 생겼다. 글쓰기라는 것이 생략되었던 탓일까, 회사에서 한 것은 많은데 머리 속에 정리가 하나도 안 되어 있다는 사실을 알게 됐다. 여기에 더해 내 주변 사람들은 다들 커뮤니티, 스터디 등에 열심히 참여하며 성장하고 있는데 나는 집과 직장이 서울과 멀다는 이유로 커뮤니티 활동을 미뤄오고 있었다. 그렇게 회사와 집만 왔다갔다 하다보니 우물 안 개구리가 되어가고 있었고 내 성장이 더디다는 생각을 떨칠 수가 없었다...

Spring/Spring Boot

Spring REST Docs 설정하기 (build.gradle & .kts)

REST Docs Spring Rest Docs는 Spring MVC를 사용하는 REST API를 문서화할 때 사용하는 툴이다. 다양한 API 문서화 도구 문서툴 노션이나 깃허브 Wiki 등 문서 툴을 사용해 직접 API 문서를 작성하는 방식이다. 서비스 코드의 변경, 작성 실수 등의 이유로 인해 내가 작성한 API 스펙과 실제 코드의 API 스펙이 달라질 수 있다는 문제가 있다. Swagger 대중적인 API 문서화 툴이다. Swagger를 사용해서 API를 문서화하면 아래와 같이 서비스 코드에 Swagger 관련 어노테이션과 코드가 작성되어야 한다. 때문에 코드의 양이 방대해져 서비스 가독성이 떨어뜨릴 수 있는 문제점이 있다. @RestController @RequestMapping("/v1/cate..

gakko
MYVELOP 마이벨롭