분류 전체보기692 [Spring] Spring Security에서 @WithMockUser를 커스텀하기 이번 글을 직전 글에서 발생한 문제를 해결하기 위해 @WithMockUser를 커스텀하여 사용하는 글을 작성해볼려 한다. 직전글을 꼭 읽을 필요는 없다. @WithMockUser를 커스텀하여 사용하는 방법은 이번 글만 보면된다. (다만 문제가 발생한 상황 이 궁금하다면 직전 글 도 살펴보길!) https://blogshine.tistory.com/626 [Spring] SpringSecurity에서 @AuthenticationPrincipal 대신 DTO로 받기 1. 문제의 상황 현 술술 애플리케이션에서는 로그인 한 사용자가 Controller에 접근할 때 CustomUser 객체를 인자로 전달받는다. 문제는 CustomUser가 도메인의 순수한 핵심 Entity라는 점이다... 또한 SonarQu bl.. BackEnd/Spring 2023. 1. 2. [Spring] SpringSecurity에서 @AuthenticationPrincipal 대신 DTO로 받기 1. 문제의 상황 현 술술 애플리케이션에서는 로그인 한 사용자가 Controller에 접근할 때 CustomUser 객체를 인자로 전달받는다. 문제는 CustomUser가 도메인의 순수한 핵심 Entity라는 점이다... 또한 SonarQube에서도 다음과 같이 취약지점으로 알려주고 있다. 과연 CustomUser의 모든 정보가 필요한 것일까? 아니다, 사실상 코드를 따라가며 읽어보니, id, email 2개의 값만 필요함을 알게 되었다. 따라서 이를 id, email만을 포함하는 DTO로 전달받도록 개선해 보자! 참고로, @CurrentUser는 내부에 @AuthenticationPrincipal을 갖고 있어서 Spring의 도움을 받아 마치 상속하는것 처럼 사용중이다. 이글의 목적은 @Authenti.. BackEnd/Spring 2023. 1. 2. [유스콘] 유스콘 2022 후기 후 신청자가 200명이 넘어서 추첨으로 된 것 같다. 다행히 이번에는 당첨돼서 참여할 수 있었다. 같이 할수 있었던, Ader, 후 에게도 감사의 말을 전하고 싶다! 1. 진행 세션 이번 세션에서 기술 세션들에 관심이 많았다. 민규님의 introduce to clean Architecture를 시작으로 Java 17 vs Kotlin 1.7 Unit Test Puzzler 토비의 스프링 같이 읽기 Flyway 순으로 들을 생각이었다. 다만 중간에 망나니 개발자 님과 소통하는 시간이 잡혀서 Unit Test Puzzler은 듣지 못하게 되어 조금 아쉽다. 대신 ㅎㅎ 망나니 개발자 님과 대화를 나눌 수 있어서 좋았던 시간이다. 2. 한줄 세션 후기 기술 내용 정리보다는 기억에 남는 한 줄 요약! 들으면서 타.. Life/컨퍼런스 2023. 1. 1. [LeetCode][C++/Python] 5번: Longest Palindromic Substring (260) 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 문제는 2가지 접근 방법이 있다. 사실 문제를 보면 바로 떠오르는 내용은 일반적으로 DP와 LCS(Longest Common Substring)이다. 따라서 나는 1) DP로 문제를 해결하려 노력하였다. 문제를 풀고 나니 보고 있는 책 에서는 2) 투포인터를 활용한 슬라이딩 윈도우 방식을 사용하였다. 이 방식 또한 정리해볼까 한다. 1) DP방식 접근 우선 DP로 푸는 경우 DP[i][j]의 의미를 i번째 부터 j까지가 palindrome인 경우 True를 대입하도록 하였다. 따라서 재귀적으로 DP[i][j]이 palindrome이려면 DP[i+1][j-1]이 palindrome 이여야 하고, 또한 str[.. Algorithm/LeetCode 2022. 12. 29. [LeetCode][C++/Python] 49번: Group Anagrams (259) 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 문자열의 원소순으로 정렬을 하면 같은 anagram의 원소들은 같은 문자열을 갖게 된다. 이점을 이용하자. 예를 들어 다음과 같은 3개의 예시의 경우 "ate","eat","tea" 문자순으로 정렬하면 모두 "aet" 값을 갖게 된다. 이를 Map 자료형을 이용하여 처리하면 된다. 나의 코드 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1. C++ using namespace std; class Solution { public: vector groupAnagrams(vector& strs) { unordered_map word_map; for (auto word : strs) .. Algorithm/LeetCode 2022. 12. 28. [LeetCode][C++/Python] 937번: Reorder Data in Log Files (258) 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 사실 크게 생각할 문제라기 보다는, 정렬 조건을 어떻게 잘 적용시키는지가 중요한 문제이다. C++, Python 둘다 람다를 활용하여 간편하게 정렬 조건을 전달해줄 수 있다. 이를 활용해보자! 나의 코드 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1. C++ using namespace std; class Solution { public: vector reorderLogFiles(vector& logs) { vector digits; vector letters; for (auto log : logs) { const vector &results = split(log, " ");.. Algorithm/LeetCode 2022. 12. 26. [TIL] 일일 회고 2022/12/20 요즘 한 일 1. 개인 프로젝트 최종 발표 개인 프로젝트로 진행하던 Soolsul이 전체 23팀 중에서 3등을 하게 되었다!! https://thoughtful-arch-8c2.notion.site/d3b734e1aec14504918424c070ef4f68 디자인-프론트엔드-백엔드 연계 나만의 지역 기반 커뮤니티 서비스 만들기 결과 발표 No Humble, We Numble! thoughtful-arch-8c2.notion.site 또한 토스 4년 차 분께서 피드백을 해주셨는데, 우리 술술의 백엔드가 가장 우수한 아키텍처를 만들기 위해 많은 노력을 한 것 같다고 칭찬해주셨다! 모듈을 분리시키려 노력하고, 계층을 구분하며, 같은 계층 간에 의존성을 줄이려 노력한 점이 빛을 본 것 같다! Controller.. Life/회고록 2022. 12. 20. [Spring] Feign Client 적용기 개인 프로젝트를 수행하던 도중 Kakao에 위경도를 전달하여 주소로 변환해야 하는 과정이 필요했다. 맨 처음에는 RestTemplate를 생각했지만, deprecated 되었다고 한다. 따라서 WebFlux의 WebClient 사용을 권장하고 있지만, 사실 우리의 애플리케이션에서는 비동기 처리가 필요 없다 생각되었다. https://stackoverflow.com/questions/47974757/webclient-vs-resttemplate WebClient vs RestTemplate As per spring 5: WebClient is an interface representing the main entry point for performing web requests. It has been crea.. BackEnd/Spring 2022. 12. 20. Nexters 22기 BackEnd 합격 후기 1. Nexter 22기 합격! 처음으로 IT 연합 동아리에 합격하게 되었다! 이름 부분은 가리고 ㅎㅎ, 22기에 최종 합격하였다! Nexters는 연합동아리중 명실상부한 1 tier 동아리이기 때문에 사실 지원할 때까지만 해도 합격할 줄은 몰랐다... 그도 그럴 것이... 개발자 경쟁률이 무려 13.4 : 1 .... 웬만한 중소기업 경쟁률인 것 같다? 다행히 운이 좋았던 것 같다. 2. 지원 과정 우선 자소서 기반의 서류를 통과하면 면접을 진행한다. 나 같은 경우 지난번에 좀 생각 없이 지원서를 작성한 후 지원했다가 서류에서 바로 탈락한 적이 있어서, 이번에는 서류에 시간 좀 많이 투자했던 것 같다. 면접을 준비하면서 생각해둔 5가지가 있었다. 첫 번째 내가 이 동아리가 왜 필요한지, 내가 이 동아리.. Life/Nexters 2022. 12. 14. [Jenkins] Jenkins에서 TestCotnainer가 동작하지 않는 문제 ("Could not find a valid Docker environment") 이번에 Jenkins Pipeline을 구축하여 CI 과정을 수행하던 도중, gradle test가 정상적으로 수행되지 않는 문제를 경험하였다. 1. 문제 상황 우선 다음 출력된 로그를 살펴보면 다음과 같다.contextLoads() 부터 FAILED인것으로 미루어 보았을 때 contextLoads() 부터 FAILED인것으로 미루어 보았을 때 든 생각은 2가지 였다. 1) DB와 connection이 정상적으로 연결되지 않았다. 2) TestContainer가 정상적으로 생성되지 않고있다. 처음에는 1번 문제인줄 알고 계속 properties.yml을 수정하고, 설정을 변경함으로써 해결하려 했지만... 2일동안 삽질만 하고 있었던것 같다. 다시 test를 수행하면서 log를 debug로 수행하였더니 다.. BackEnd/Jenkins 2022. 12. 14. SpringBoot에 Test Container적용 (MySQL, Redis) 도커와 테스트 (TestContainers) 테스트를 위해서는 운영과 동일한 형태의 개발 환경에서 테스트 하는 것이 중요하다. 하지만 매번 동일하게 환경을 구축할 수 없고 모든 개발 자들과 같은 환경을 맞추기도 쉽지 않다. 이를 Test Container를 통해 해결해 보자! (단점 테스트 수행 속도가 느려짐 → 다행이 이는 컨테이너를 한번만 인스턴스화 하는 방식으로 해결가능) (중요) Docker는 켜져 있어야 합니다!!! Docker Container를 활용한 일회용 인스턴스를 제공하는 JUnit 테스트 라이브러리를 말합니다. JUnit 5 Quickstart JUnit 5 Quickstart - Testcontainers for Java JUnit 5 Quickstart It's easy to ad.. BackEnd/TDD 2022. 12. 13. [백준][Java] 22868번: 산책 (257) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/22868 22868번: 산책 (small) 첫 번째 줄에는 정점의 개수 $N$과 두 정점 사이를 잇는 도로의 개수 $M$이 공백으로 구분되어 주어진다. 두 번째 줄부터 $M + 1$ 번째 줄까지 정점 $A, B$가 공백으로 구분되어 주어진다. 정점 $A$와 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 최근 들어 가장 삽질 많이한 구현 문제인것 같다... 우선 풀이는 다음과 같다. S -> E로 가는 모든 경로를 완전탐색한다. (다익스트라도 가능할 것 같다) 이런 문제같은 경우 인접 .. Algorithm/백준 2022. 12. 9. 이전 1 ··· 4 5 6 7 8 9 10 ··· 58 다음