본문 바로가기

반응형
SMALL

전체 글

(89)
[Spring] Repository 테스트 코드 독립적으로 작성하기 글을 시작하기 전에 최근 Spring Boot에서 테스트 코드를 조금씩 연습해보고 있다. 일단 통합 테스트는 제외하고, 단위 테스트 위주로 작성하고 있다. Repository 테스트는 @DataJpaTest를 사용해서 진행하고 있는데, 불완전하게 독립적인 테스트 코드를 작성하여 각각 테스트에서는 성공하지만, 전체 테스트(build)에서는 실패하는 결과가 발생했다. 해결 과정을 글로 남겨보고자 한다. 문제 상황 3개의 Repository에 대해 테스트 코드를 작성하고 있다. 위 화면처럼 각각의 테스트는 성공한 결과이다. 하지만 build 같이, 전체적으로 테스트하는 과정에서는 실패한다. 왜??? 원인 분석 여러가지 시도와 몇몇 지인들에게서 얻은 조언, GPT와의 대화 등으로 인해 원인은 비교적 빨리 알아낼..
[Spring Boot] 멀티 모듈 구조(Multi Module Architecture) 적용기 글을 시작하기 전에 최근 멀티 모듈 구조를 도입했다. 아니 정확히 말하면 도입하는 중이다.. 1차적으로 분리와 리팩토링은 완료했으나, 구조를 100%로 이해한 건 아니라서 조금씩 공부하면서 개선점을 찾고 추가 적용해가고 있는 단계이다. 그래서 이 글을 쓸까말까도 좀 고민했다 🤔 잘못된 정보를 전달할 수도 있을까봐ㅠㅠ 하지만 실전과 기록이 최고의 학습법이라고 생각하는 사람으로서, 이런 생소한 개념은 기록으로 좀 남겨야 진짜 내 것이 되겠다!라는 생각도 들었다. 이제까지 설계한 과정을 기록하고, 이후로도 추가 적용할 때마다 해당 블로그 글을 조금씩 수정해나가려 한다. 하지만 또 잘못된 정보를 공유할 순 없기 때문에,, 참고한 레퍼런스들을 틈틈히 남겨둘테니, 한 분이라도 이 글을 참고하며 구조 설계를 도입하려..
[Spring] 스프링에서 Slack에 에러 로그 보내기 글을 시작하기 전에 자잘한 프로젝트까지 포함하여 2년 간 총 7번의 사이드 프로젝트를 경험하며 느낀 점 중 하나.. 로그 관리는 매우 중요하다. 특히 에러 로그! 물론 에러가 발생한 상황이야 직접 서버를 들어가 확인할 수도 있고, 에러가 발생했던 시나리오와 똑같이 재현해서 알아낼 수도 있다. 하지만 리소스가 너무너무 많이 들었다.. 최근 2주동안 초기 MVP 규모의 서비스 REST API를 빠르게 구현해야 할 일이 있었다. 이번에는 에러 로그를 수집해서 바로 대응할 수 있도록 하자. 하지만 트레이드 오프를 고려해서 가장 빠르게 설정할 수 있는 방법으로 선택하자. 라는 결론을 내리게 되었다. Slack 설정 및 연동 진행한 프로젝트는 Slack 서비스를 활용했다. 가장 빠르게 접근할 수 있는 협업 툴이었으..
[Server] 웹 서버 vs 웹 어플리케이션 서버(WAS) vs API 서버 글을 시작하기 전에 최근 2년 간의 서버 개발 경험을 개인적으로 정리하다가 여러가지 개념이 헷갈리기 시작했다. 내가 개발한 서버는 어떻게 불리고 있고, 각각의 개념은 또 어떻게 되며, 이게 정말 확실한 지? 새삼 프로젝트 경험은 많지만 내가 개발하고 있는 서버의 이름도 제대로 모르고 있었구나.. 그런 반성을 개인적으로 좀 하게 됐다. 개발자가 되고 싶으면 기본이 탄탄해야 한다고 생각한다. 내가 가지고 있는 지식들에 확신을 갖기 위해서 추가로 학습하고 이렇게 글로 남겨보고자 한다. 주저리주저리 서론이 길었다 ^.^ 진짜 글쓰기 시작! 서버 (Server) 개념적으로 "서버"란 무엇일까? 여러 블로그 글들을 조금만 찾아봐도 서버는 클라이언트에게 네트워크를 통해 정보나 시스템을 제공하는 컴퓨터 시스템이라는 사..
[프로그래머스] 합승 택시 요금 (2021 카카오, Java, Dijkstra) 🍡 문제 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. "무지"는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. "무지"는 "어피치"와 귀가 방향이 비슷하여 택시 합승을 적절히 이용하면 택시요금을 얼마나 아낄 수 있을 지 계산해 보고 "어피치"에게 합승을 제안해 보려고 합니다. 위 예시 그림은 택시가 이동 가능한 반경에 있는 6개 지점 사이의 이동 가능한 택시노선과 예상요금을 보여주고 있습니다. 그림에서 A와 B 두 사람은 출발지점인 4번 지점에..
[우당탕탕 개발 일지] Spring Security 트러블 슈팅: AntPathRequestMatcher Error Log Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'filterChain' defined in class path resource [com/example/userservice/security/WebSecurity.class]: Failed to instantiate [org.springframework.security.web.SecurityFilterChain]: Factory method 'filterChain' threw exception with message: This method cannot decide whether these patterns are S..
[프로그래머스 LV3] 카드 짝 맞추기 (2021 KAKAO BLIND RECRUTMENT, 구현, 순열, BFS) 🧐 프로그래머스 LV3. 카드 짝 맞추기 문제 설명 게임 개발자인 베로니는 개발 연습을 위해 다음과 같은 간단한 카드 짝맞추기 보드 게임을 개발해 보려고 합니다.게임이 시작되면 화면에는 카드 16장이 뒷면을 위로하여 4 x 4 크기의 격자 형태로 표시되어 있습니다. 각 카드의 앞면에는 카카오프렌즈 캐릭터 그림이 그려져 있으며, 8가지의 캐릭터 그림이 그려진 카드가 각기 2장씩 화면에 무작위로 배치되어 있습니다.유저가 카드를 2장 선택하여 앞면으로 뒤집었을 때 같은 그림이 그려진 카드면 해당 카드는 게임 화면에서 사라지며, 같은 그림이 아니라면 원래 상태로 뒷면이 보이도록 뒤집힙니다. 이와 같은 방법으로 모든 카드를 화면에서 사라지게 하면 게임이 종료됩니다. 게임에서 카드를 선택하는 방법은 다음과 같습니다..
[프로그래머스 LV3] 110 옮기기 (Stack, 스택) 🧐 프로그래머스 LV3. 110 옮기기 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. - x에 있는 "110"을 뽑아서, 임의의 위치에 다시 삽입합니다. 예를 들어, x = "11100" 일 때, 여기서 중앙에 있는 "110"을 뽑으면 x = "10" 이 됩니다. 뽑았던 "110"을 x의 맨 앞에 다시 삽입하면 x = "11010" 이 됩니다. 변형시킬 문자열 x가 여러 개 들어있는 문자열 배열 s가 주어졌을 때, 각 문자열에 대해서 위의 행동으로 변형해서 만들 수 있는 문자열 중 사전 순으로 가장 앞에 오는 문자열을 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 - 1 ≤ ..

반응형
LIST