There are 89 posts.

다익스트라 알고리즘

October 30, 2024

다익스트라 알고리즘 특정 노드에서 다른 노드까지의 최단 거리를 구하는 알고리즘이다. 유향인지 무향인지는 상관없지만 가중치가 음수가 하나라도 존재하는 순간, 적용하지 못한다. 알고리즘의 기본 원리 상으로 시작 노드르 기준으로 다른 노드까지의 최단 거리를 더하면서 갱신하는 구조이기 때문에 음수 가중치가 존재하는 순간 올바른 계산이 불가능해지기 떄문이다. 기본…


@TransactionalEventListener 메서드를 테스트하기 위한 방법

September 26, 2024

개요 게시글에 댓글 작성 시, 게시글 작성자에게 알람을 생성하도록 하는 기능을 구현해야 했다. 이때, 댓글과 알람의 결합도를 낮추기 위해 을 사용했다. 코드는 아래와 같다. 여기서 와 에 대해 짚고 넘어가고 싶은데, 이 아닌 을 적용한 이유는, 댓글 생성 로직이 Commit 된 후에 알람 생성 로직을 수행하도록 하기 위해서다. 는 이벤트가 발행되자마자 …


일정하게 증가하는 수열에서 특정 값보다 같거나 작은 값의 개수를 세는 법

September 07, 2024

개요 1300:K번째 수나 1637:날카로운 눈 문제를 풀면서 '일정하게 증가하는 수열에서 특정 값(x)보다 같거나 작은 값의 개수를 세는' 경우가 존재했다. 풀다보니 위 로직이 공식처럼 딱 들어맞는 것을 발견했고 이를 정리하고자 한다. 코드 우선 코드로 살펴보자. 아래 코드는 1637:날카로운 눈 문제를 해결하며 적용한 메서드를 간소화 한 코드다. 각 …


O(sqrt(N))과 O(log2(N))의 차이

September 02, 2024

O(sqrt(N))과 O(log2(N))은 비슷해보이지만 차이가 많이 다르다. 간단히 N을 1부터 1e8까지 증가시키면서 sqrt(N)과 log2(N)을 출력해봐도 알 수 있다. N이 적을 때는 log2(N)이 sqrt(N)보다 큰 경우도 있다. 하지만 그 값이 커지면 커질수록 sqrt(N)과 log2(N)의 차이는 심하게 차이난다. 값을 기반으로 대충 …


[회고] 08.05 ~ 08.11

August 11, 2024

이번 주는 외적 동기에서 내적 동기로 잘 전이된 것 같다. 시작은 저번 주부터인데 오늘까지 내적 동기로 꾸준히 움직였다. 역시 외적 동기를 가졌을 때보다 훨씬 마음이 편안하고 스트레스도 덜 받는다. 우테코를 하고 나서부터 외적 동기보다 내적 동기의 중요성을 알게 되었다. 내적 동기가 더 소중한 걸 몇 번이고 깨달아도 외적 동기가 자꾸 꼬리친다. 프로그램의…


[회고] 07.29 ~ 08.04

August 04, 2024

이번 주는 취업과 관련해서 많은 생각을 했던 한 주였다. 취업에 대한 실패와 두려움을 겪었다. 그래도 실패와 두려움으로 인해 목표가 생겼고 이번 한 주 동안 목표를 재수립해 실천했다. 사실 이번 한 주 내내 앞으로 지속가능하고 체계적인 취업 준비를 계획하고 설계하려고 했지만 생각보다 사흘만에 모두 끝나게 되었다. 설계가 끝나고 꾸준히 실천 중인데 이번 주…


EC2 CPU 사용량이 급격히 늘어난 문제 해결

August 03, 2024

TL;DR 7월 AWS 비용이 지난 달보다 7$가 추가되었다. 원인은 서버 CPU 사용량의 급격하게 증가함에 따라 추가 비용이 발생했던 것이다. 따라서 CPU 사용량이 급격히 추가 비용이 발생하지 않도록 설정을 바꿔줬다. CPU 사용량이 급격히 늘어난 이유는 로그와 디스크 용량 때문이었다. 디스크 용량을 줄이니 귀신같이 해결되었다. 재발 방지를 위해 로…


[JDBC] execute(String)과 execute(). executeUpdate(String)와 executeUpdate()의 차이

August 02, 2024

TL;DR execute(String)와 executeUpdate(String)은 Statement 인터페이스의 메서드이다. execute()와 executeUpdate()는 PreparedStatement 인터페이스의 메서드이다. Statement 인터페이스의 두 메서드는 내부적으로 Statement의 구현체만이 실행할 수 있도록 보장되어 있다. Pre…


[Java] inner 클래스와 종류에 대해

July 26, 2024

내부 클래스(inner class) 내부 클래스(inner class)란, 다른 클래스 안에 정의된 클래스를 의미한다. 내부 클래스는 자신을 감싼 외부 클래스에서만 쓰여야 하며, 그 외의 쓰임새가 있다면 별도의 클래스로 만들어야 한다. 내부 클래스를 선언하는 이유는 두 클래스가 서로 긴밀한 관계임을 나타내기 위함이다. 이를 적절히 사용하면 클래스를 논리적…


[회고] 07.08 ~ 07.23

July 24, 2024

7월 8일부터 23일까지 했던 것들과 느낀 점들을 정리하고, 이를 기반으로 앞으로의 방향성을 잡기 위한 회고록 면접 7월 11일, 16일, 22일, 23일 면접을 봤다. 때문에 7월은 면접을 위한 시간으로 가득했다고 과언이 아니다. 총 세 곳의 면접을 보게 되었고 각 기업의 면접을 끝나고 느낀 점들이 하나씩은 있다. What? Why? How? Resul…