본문 바로가기

자바29

[Spring] 스프링 데이터 AbstractAggregateRoot 를 통해 도메인 이벤트 등록하고 테스트 하기 DDD 스터디중 구현해본 AbstractAggregateRoot를 통해 도메인 이벤트를 등록하고 테스트하는 방법을 간단하게만 정리함 (나중 참고용) 아직 깊은 지식이 없으므로 도메인 이벤트, AbstractAggregateRoot 에 대한 자세한 내용은 공식문서 & 타 블로그 정리 글을 참고하는 게 좋을 것 같음 https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/AbstractAggregateRoot.html https://www.baeldung.com/spring-data-ddd https://daddyprogrammer.org/post/14797/springboot-domainevent/.. 2021. 10. 31.
[알고리즘] 위상 정렬(Topological Sort) - 개발하는 지토 위상 정렬(Topological Sort) 위상 정렬은 순서가 정해져 있는 작업을 차례로 수행해야 할 때 그 순서를 결정해주기 위해 사용하는 알고리즘이다. 즉, 방향 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것 이다. 위상 정렬을 가장 잘 설명할 수 있는 예시는 대학의 선수과목 구조 또는 게임에서의 스킬트리 중 선행스킬이 존재하는 경우이다. 앞선 대표 예 두가지 중 각자 더 이해가 쉬운 예시를 떠올려 보면 쉽게 이해할 수 있을 것이다. 위상 정렬이 성립하기 위해서는 반드시 그래프에 순환이 존재하지 않아야 한다. 즉, 비순환 방향 그래프(Directed Acyclic Graph, DAG) 여야 한다. 그리고 하나의 방향 그래프에 대해서 위상 정렬을 수행한 결과 값이.. 2021. 3. 18.
[우아한테크캠프pro] 2주차 미션 로또(Lotto) 후기, 코드리뷰 (자바 백엔드, NextStep, 우아한형제들, 우테캠pro, 우테캠프로) 2주 차 미션 : 로또(Lotto) - TDD 저장소 : github.com/next-step/java-lotto/tree/jhhj424 문자열 계산기 리뷰 : github.com/next-step/java-lotto/pull/1045 로또(Lotto) 1차 리뷰 : github.com/next-step/java-lotto/pull/1079 로또(Lotto) 2차 리뷰 : github.com/next-step/java-lotto/pull/1114 로또(Lotto) 3차 리뷰 : github.com/next-step/java-lotto/pull/1130 후기 클래스 분리가 쉽지 않다. ( 어떤 역할을 위임할 것인가.. ) 모든 원시 값과 문자열을 포장하는 과정에서의 테스트 코드 작성이 쉽지 않다. 클린 코.. 2020. 12. 21.
[공부&과제] 우아한테크캠프 Pro 프리코스 백엔드 개발자 경력자 과정 사전과제 (숫자야구게임) 블로그 글을 오랜만에 쓰는 것 같다! 요즘 바빴었다는 핑계를 대보면서 시작한다. 이번에 우아한 형제들에 계시는 자바 자기 박재성 님께서 오픈하신 백앤드 교육과정에 지원을 했다. 원래 조건은 3년 차 이상 백엔드 개발자를 대상으로 한 교육이라고 알고 있었지만.. 그냥 요즘 같이 스터디를 하는 개발자 분과 함께 신청을 해보았다. (나도 교육 들어보고 싶단 말 이등...) 누구나 교육을 들을 수 있는 건 아니었고, 먼저 사전과제가 주어졌다. 사실 다음 주 화요일까지의 기한이지만 시간이 될 때 하자는 생각으로 어제 18시간을 들여서 마무리를 하고 제출을 했다. 이전에 평일에 출퇴근하면서 내용들은 쭉 보고 숙지를 하고 있었다. 그래서 일어나자마자 바로 컴퓨터 앞에 앉아서 일단 계획을 짜고, 요건들을 먼저 정리해보.. 2020. 11. 15.
[알고리즘] 백준 2003번: 수들의 합 2 (자바/Java) - 슬라이딩 윈도우, 구간합 스터디 중에 풀었던 알고리즘 문제 백준 2003번: 수들의 합 2 문제를 가져와봤다. 사실 이 문제는 투 포인터 기법을 활용해서 문제를 푸는 것 같았다. 하지만 오늘 스터디에서 투 포인터를 들어가기 전에 슬라이딩 윈도 기법을 먼저 진행했기 때문에 이번 문제는 슬라이딩 윈도 기법으로 풀어보았다. 문제는 다음과 같다. 수들의 합 2 성공분류 시간제한 메모리 제한 제출 정답 맞은 사람 정답 비율 0.5 초 128 MB 17563 8645 5801 50.752% 문제 N개의 수로 된 수열 A [1], A [2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에.. 2020. 10. 29.
[공부] 온라인 알고리즘 문제풀이 스터디 후기 - 구글미트 (프로그래머스, 백준온라인저지) 오늘은 간단하게만 후기를 남겨보려 한다. 다음 스터디를 진행하면서는 좀 더 좋은 내용으로 글을 써볼 예정이다. 얼마 전에 내 블로그에 있던 문제풀이 글을 보시고 댓글을 남겨주신 분과 연락이 닿게 되었다. 같이 알고리즘 스터디를 하자는 제안이 있으셔서 나도 공부를 하고 있고, 더 열심히 해야 하는 입장이었기 때문에 흔쾌히 같이 하겠다고 했다. 그리고 오늘 오후 9~12시, 총 3시간 동안 스터디를 진행했다. 사실 아직 어떠한 방향으로 스터디를 하겠다고 명확히 정하질 못해서 체계적인 스터디는 아니지만, 차츰 발전하는 스터디가 되었으면 좋겠다. 오늘 같이 풀어본 문제는 1. programmers.co.kr/learn/courses/30/lessons/67256?language=java 코딩테스트 연습 - 키패.. 2020. 10. 29.