전체 글
-
코드 가독성트러블 슈팅 2023. 11. 2. 23:00
GitHub issus 내용을 정리했습니다 https://github.com/hobakk/PODO-Lotto/issues/52 줄곧 클린코드와 가독성에 대해서 중요하다 들었지만 크게 와 닿지 않았습니다. 팀 프로젝트 때엔 맡은 기능들이 제대로 동작하는지, 예정된 기한 내에 프로젝트를 마무리하려 신경 쓰기 급급했기 때문입니다. 국비 교육 수료 이후 배운 기술들을 내 것으로 만들기 위함과 새로운 기술과 도구를 경험하기 위해 개인 프로젝트를 진행하며 그 필요성을 느끼게 되었습니다. 코드 수정 또는 리팩토링 등을 진행할 때 내가 작성한 코드임에도 다시 이해하는데 시간이 소요됐고 이때 문제가 있다고 자각하게 되면서 코드 스타일에 대한 고민이 시작되었고 아래와 같이 변경되었습니다. 먼저 함수형 코드 스타일을 사용해..
-
Cookie, Web Storage트러블 슈팅 2023. 10. 28. 15:30
참고: GitHub issus를 더 상세히 정리한 내용입니다 https://github.com/hobakk/PODO-Lotto/issues/51 Spring boot, React가 Restful API 통신을 주고받으며 매 요청에 사용자가 로그인할 수 없기에 인증, 인가 목적으로 토큰을 만들면서 고민은 시작되었다. 구글링해 보니 Cookie, Web Storage 두 방법이 있었는데 accessToken을 HttpOnly false설정으로 Cookie로 관리했는데 되게 간편했으며 React에서 접근할 수 있어 관리도 유용했다. 당시 refreshToken은 외부로 노출하지 않았고 accessToken의 유효성이 확인되면 기능, 갱신 등을 수행할 수 있어 탈취됐을 때 위험이 너무 크다 생각되어 refres..
-
Redis트러블 슈팅 2023. 10. 20. 21:29
Token, Logout: Redis 사용 이전엔 세션을 종료시키거나 httpServletResponse headers 에 accessToken 값을 null 로 덮어씌우는 방법으로 사용자를 로그아웃 시켰는데, Redis 로 refreshToken 만들어 사용자 unique 한 값을 key 로 사용해 redisTemplate.opsForValue.get() 을 통해 조회되는 refreshToken 의 여부로 사용자가 로그인 상태인지 확인할 수 있게 되었으며, Redis에 저장된 refreshToken 을 삭제하는 방법으로 로그아웃 기능을 구현할 수 있었다. BlackList: 일반적으로 accessToken 의 수명을 짧게 가져가고 refreshToken 을 보다 길게 주어 계속 accessToken 을..
-
PODO Lotto 기술적 고민카테고리 없음 2023. 10. 14. 00:53
이전 팀 프로젝트 test code 작성 및 주요 기능 개발에 쫓겨 frontend 기여가 낮고 통신 흐름을 정확히 알지 못하는 점 등이 아쉬워 이참에 frontend도 주력 언어를 가지자 생각하게 됐습니다. 팀 프로젝트에서 사용하던 Vue.JS를 학습할까 생각했지만, 기업에 많이 채택되며, Lib가 더 큰 React를 학습하게 되었고 Redux, Router, web Storage 등 다양한 기능을 사용하던 중 Type이 없는 JavaScript가 불편하고 버그 발생 시 문제를 찾는 데 오래 걸려. TypeScript로 변경하는 등의 크고 작은 이슈가 있었지만, 무사히 frontend를 완성했습니다. 국비 지원 팀 프로젝트에서는 AWS CodeDeploy를 통해 CD를 구현했는데 클라우드 환경 및 관련..
-
Redis Cache 에 대한 2차 고민카테고리 없음 2023. 7. 27. 22:02
Redis Cache - issue, result 를 적은 지 반나절도 지나지 않은 지금까지 필자는 계속 issue 에 대해 고민하고 있었다 ObjectMapper 를 custom 하거나 수동 직렬화를 시도하는 등의 ChatGpt 형님과 치열한 채팅 공방전과 실패의 연속속에 하나의 명확한 의문이 생겼다. 이전글 : https://holloweyed-snail.tistory.com/129 과거 글을 보면 위처럼 반환타입을 Redis Cache class : 로 저장한다 그럼 반환값이 ResponseEntity 인 Controller 가 아닌 classType.class 인 Service 에서 Cacheable(Value) 해주면 안되는걸까 ? 왜 Controller 에만 사용하려 하는가 라는 의문이 들었고..
-
Redis Cache - issue, result카테고리 없음 2023. 7. 27. 17:58
오랜만에 정리하는 글을 쓰게됬네요 최근에 React 공부하면서 딱히 적을 내용이 없었는데 Home page 를 만들면서 자주 변경되지 않으며, 많이 호출되는 데이터를 다루다 보니 Redis Cache 를 이용해 트래픽 관리라는걸 해보려다 생긴 이슈를 정리해볼까 합니다. 결과는 하단에 일단 기존 RedisConfig 에 RedisTemplate 는 JWT 떄문에 유지하면서 Cache 설정을 추가했습니다 @Configuration @EnableCaching public class RedisConfig { // { ...Redis host, port, RedisTemplate } @Bean public RedisCacheConfiguration redisCacheConfiguration() { return R..
-
스파르타 내일배움캠프 리얼후기카테고리 없음 2023. 6. 18. 21:37
기존 공부 정리가 아닌 내일배움캠프( 국비지원 ) 후기를 적어볼까한다. 필자는 전문대 -> 학점은행제로 4년 학위를 마치고 학교에서 배운 얕고 넓은 내용을 어디다 써먹을 수 있을까 하는 강한 의문에 휩싸였고 몇달을 방황하며 고민하던 중 인스타로 내일배움캠프를 알게됬다. 백앤드 개발자에 관심이 있었고 무료이기도 하니 자기소개서와 면접 녹화파일을 보내고 결과를 기다렸고 합격 문자와 함께 10월 31일 ~ 3월 12일 내일배움캠프 4기 Spring 반이 되었다. 학원 커리큘럼 시작이 팀 프로잭트 이기에 10월 31일 이전에 지급받은 html, js, css 인터넷강의를 수강완료 해야됬고 그렇게 10월 31일 당일 팀이 구성되어 4 ~ 5 명이 한팀이 되어 작업을 하게되었다. 내가 속해있던 팀이 결성되자마자 2..