본문 바로가기

전체 글132

[Kernel360] 해커톤 프로젝트 회고 해커톤 프로젝트 Boot-up 프로젝트가 끝나고 바로 해커톤 프로젝트가 시작되었습니다. Kernel360에서의 해커톤 프로젝트는 4일간 최소한의 기술적 완성도를 가진 결과물을 단시간에 만들어 봄으로서 현재 자신의 실력을 파악하고, 빠른 학습에 대한 경험을 습득하는 과정이었는데, 프로젝트를 진행하면서 코드의 품질, 기술적 협업 등을 이해하는 것에 우선순위를 두었습니다. 해커톤 프로젝트는 Boot-up 프로젝트와 다르게 기술적으로 완성해야하는 프로젝트로 다음과 같은 필수사항이 있었습니다. 기능이 적게 포함되더라도 완성된 서비스를 구현할 수 있어야한다. 프로젝트를 주어진 시간내에 완성해야하며 기획적 완성도, 창의성보다 작더라도 프로젝트를 기술적으로 완성해야한다. 프로젝트를 기획하는 것이 목표였던 Boot-up.. 2023. 11. 1.
[Kernel360] Boot-Up 프로젝트 회고 Boot-up 프로젝트 kernel360에 합류하고 Boot-up 프로젝트가 진행되었습니다. Boot-up 프로젝트는 제품에 대한 구현없이 기능 설계와 문서화에 집중하며 하나의 프로젝트를 만들 때 어떠한 과정을 거치며 어떻게 협업을 해야 하는지 경험하는 과정이었습니다. 총 4일동안 Boot-up 프로젝트가 진행되었는데, 5명이 한 팀으로 구성되며 2일 동안 프로젝트를 진행한 후, 팀장을 제외한 모든 팀원이 무작위로 다른 팀으로 재배정되었고 나머지 2일을 새로운 팀원들과 새로운 프로젝트에서 진행되는 방식이었습니다. 팀이 변경되는 이유는 다른 팀에 배정되었을 때 이전 팀원들이 작업한 문서를 통해 변경된 프로젝트를 빠르게 이해하며 다양한 시각으로, 새로운 팀원들과 협력하는 능력을 키우기 위해서였습니다. Eve.. 2023. 11. 1.
[Spring Security] Custom Filter 만들기 프로젝트에 SprinSecurity를 적용해 개발하다 보면 SprinSecurity에서 기본으로 제공하는 Filter 뿐만 아니라 개발자가 원하는 방식으로 동작하는 필터가 필요할 때가 있다. 이러한 경우에 직접 Filter를 구현하면 된다. Custom Filter를 구현하기 위해서는 다른 필터와 마찬가지로 Filter Interface를 구현해야 한다. 그러나 Filter Interface를 직접 구현하게 되면 중복 실행 문제가 있어서 대부분의 경우 OncePerRequestFilter를 구현하기를 권장한다. 예시 1 1개의 요청이 들어온 시점부터 끝날 때까지 거린 시간을 log로 기록한다. stopwatch로 시작하고 모든 필터체인과 요청이 끝난 뒤에 작업한 시간을 기록한다. 내용을 보면 StopW.. 2023. 10. 29.
[Spring Security] Spring Security 테스트하기 SpringSecurity를 사용하는 프로젝트에서의 테스트는 SpringSecurity가 없는 테스트와 다른 부분이 있다. SpringSecurity의 테스트에서는 User가 로그인한 상태를 가정하고 테스트해야 하는 경우가 많은데 인증을 받지 않은 상태로 테스트를 하면 SpringSecurity에서 요청 자체를 막아버려서 테스트가 제대로 동작하지 못한다. 이런 문제를 해결하기 위해 spring-security-test를 사용하여 해결할 수 있다. spring-security-test를 사용하면 테스트 직전 Mock User를 인증시켜놓고 테스트를 구동할 수 있다. build.gradle에 의존성을 추가한다. Test 실행 전 MockMvc에 springSecurity (static 메서드)를 설정한다. .. 2023. 10. 29.
[Spring Security] Spring Security 부가기능 📌 필터 비활성화 http..disable(); 과 같이 특정 필터가 동작하지 않도록 비활성화 처리 할 수 있다. 📌 로그인 & 로그아웃 페이지 관련 기능 폼 로그인의 로그인 페이지를 지정하고 로그인에 성공했을 때 이동하는URL을 지정한다. 로그인 페이지는 권한에 상관없이 접근 가능하도록 열어둔다. 만약 로그인 페이지를 지정하지 않는다면 Spring Security가 기본으로 제공하는 로그인 화면이 제공된다. 로그아웃 URL을 지정할 수 있고 로그아웃에 성공했을 때 이동하는 URL도 지정할 수 있다. 📌 Url Macher 관련 기능 antMatcher "/", "/home", "/signup" 요청을 모두에게 허용한다. mvcMatchers "/signup", "/signup/", "/signup.h.. 2023. 10. 29.
[Spring Securiry] Security Filter SecurityContextPersistenceFilter BasicAuthenticationFilter UsernamePasswordAuthenticationFilter CsrFilter RememberMeAuthenticationFilter AnonymousAuthenticationFilter FilterSecurityInterceptor ExceptionTranslationFilter 스프링 시큐리티의 동작은 사실상 Filter로 동작한다고 봐도 무방하며 다양한 필터들이 존재하고 이 Filter들은 각자 다른 기능을 한다. 이런 Filter들은 제외할 수 있고 추가할 수 있으며 필터에 동작하는 순서를 정해줘서 원하는 대로 동작하게 할 수 있다. FilterChainProxy에서 doFilterInt.. 2023. 10. 28.