본문 바로가기

코딩/Java

(3)
@Slf4j로 스프링 애플리케이션에 로그 남기기 개발을 할때도, 서비스를 운영할때도 '로그(Log)를 남기는 것' 은 항상 중요합니다. 하지만 log를 남기고 싶다고 데이터를 출력해주는 System.out.println()을 사용하는 것은 log를 남기기에 충분한 정보를 담기도 어렵고 성능상의 문제를 발생시킬 수 있기 때문에 logging 수단으로는 잘 사용하지 않습니다. 그래서 log를 잘 남길 수 있는 logger들을 사용하게 되는데, 이때 Slf4j(Simple Logging Facade for Java)를 함께 사용합니다. Slf4j가 뭐냐면 logging에 대한 추상 레이어를 제공하는 인터페이스를 모아놓은 라이브러리입니다. 눈치 빠른 분들은 바로 알아채셨겠지만 Slf4j는 추상 클래스를 제공하기 때문에 단독으로 사용할 수 없습니다. 그래서 직..
[Java] 369 게임 알고리즘 다들 한 번쯤 369 게임 해보셨죠? 369 게임의 규칙은 다음과 같습니다. 여러명의 사람이 1부터 숫자를 하나씩 말하는데, 3과 6, 9가 들어가는 숫자는 말하는 대신 박수를 쳐야 합니다. 이때 3과 6, 9가 들어가는 횟수만큼 박수를 쳐야 합니다. 예를 들면 36은 박수를 두 번 쳐야 합니다. 이 규칙대로, 자바를 이용해서 369 게임을 구현해보겠습니다. 한 가지 제한사항과 함게 369 게임의 규칙을 코드로 변환하겠습니다. 1. 반복문을 이용해 숫자를 1부터 99까지 증가시킵니다. 2. 숫자를 3으로 나눈 나머지가 0일때 "박수"를 출력합니다. 3. 숫자를 10으로 나눈 값을 3으로 나눈 나머지가 0일대 "박수를 출력합니다. 이를 코드로 변환하면 아래와 같습니다. for (int i = 1; i < ..
[Java] 윤년 계산하는 알고리즘(feat. 백준 2753) 지구가 태양을 한 번 공전하면 1년이 흐릅니다. 이 시간을 정확히 말하자면 365일 5시간 48분 46초가 걸립니다. 하지만 우리는 대충 퉁쳐서 365일이라고 생각하기로 했습니다. 그런데 남아있는 5시간 48분 46초는 어디로 간걸까요? 지구가 차곡차곡 적립해서 4년에 한 번씩 2월을 하루 늘려줍니다. 그래서 4년마다 한 번 2월이 29일이 되는 해가 찾아오고, 이를 윤년이라고 부릅니다. 그런데 아직도 의문이 남아있습니다. 4년에 한 번씩 2월을 하루 늘리면 11분 정도가 초과되게 됩니다. 초과된 11분은 131년이 지나면 하루가 됩니다. 이걸 다시 모으면 대략 400년에 3일이 됩니다. 그래서 100년마다 한 번씩 윤년을 없애고, 400년마다 다시 하루를 추가해 윤년을 둡니다. 좀 복잡하죠? 이걸 정리..