2022-02-11-TIL TIL 2022-02-11-TIL Today I Learned Java Logging 어느 부분에 로그를 남기는 것이 좋을까? 주로 예외나 에러가 발생할만한 곳, 크리티컬한 곳, 입출력을 받는 곳 등이 있을 것이다. 링크된 글들이 공통으로 권하는 원칙은 다음과 같다. 구현체에 직접 의존하지 않고 SLF4J 같은 로깅 퍼사드를 쓴다. Spring... 2022/02/11 2022-TIL
2022-02-10-TIL TIL Today I Learned 시퀀스 다이어그램 시퀀스 다이어그램은 UML 다이어그램 중 하나로, 객체(참여자)들이 시간 순서대로 어떤 메시지를 주고받는지를 그린다. 가로축에 참여자를 나열하고, 세로축을 시간으로 삼아 위에서 아래로 메시지를 화살표로 잇는다. 클래스 다이어그램이 “무엇이 있는가”를 보여 준다면 시퀀스 다이어그램은 “어떤 순서로 호출되... 2022/02/10 2022-TIL
2022-02-08-TIL TIL Today I Learned 모든 for와 if는 스트림으로 변환이 가능한가? 대부분의 “컬렉션을 돌면서 조건에 맞는 것을 골라 변환하고 모으는” 반복문은 filter, map, collect로 옮길 수 있다. 하지만 모든 반복문이 그대로 옮겨지지는 않는다. 람다 안에서는 바깥의 지역 변수를 바꿀 수 없다. 람다가 참조하는 지역 변수는 fi... 2022/02/08 2022-TIL
2022-02-04-TIL TIL Today I Learned 테스트 코드 실행 범위 테스트 코드를 실행할 때 시간이 많이 걸린다면, 이미 검증이 완료된 부분을 다시 테스트하지 말고 변경한 부분과 그 영향을 받는 부분만 테스트하면 되지 않을까? 빌드 도구는 이미 일부를 지원한다. Gradle은 테스트 필터링으로 클래스 이름이나 메서드 이름 패턴에 맞는 테스트만 골라 실행할 수 있... 2022/02/04 2022-TIL
2022-02-03-TIL TIL Today I Learned VO vs DTO VO(Value Object)와 DTO(Data Transfer Object)는 둘 다 값을 담는 작은 객체라서 자주 섞어 부르지만, 만들어진 목적이 다르다. 마틴 파울러의 Value Object 글은 객체를 두 부류로 나눈다. 메모리 참조(identity)로 같은지를 판단하는 참조 객체와, 담고 있... 2022/02/03 2022-TIL
2022-02-02-TIL TIL Today I Learned Vue Admin Dashboard 관리자 화면(어드민 대시보드)은 표, 검색 필터, 차트, 폼, 사이드 메뉴처럼 반복되는 화면이 대부분이다. 그래서 처음부터 만들기보다 레이아웃과 컴포넌트가 미리 갖춰진 템플릿을 쓰는 경우가 많다. 예를 들어 Vuexy는 Vue 3와 UI 컴포넌트 프레임워크 Vuetify 3 위에 만든... 2022/02/02 2022-TIL
2022-01-30-TIL TIL Today I Learned GitHub Pages GitHub Pages는 GitHub 저장소에 있는 HTML, CSS, JavaScript 파일을 그대로 가져와, 필요하면 빌드 과정을 거친 뒤 웹사이트로 게시하는 정적 사이트 호스팅 서비스다(GitHub Docs). 서버를 따로 띄우지 않아도 되기 때문에 개인 기술 블로그를 시작할 때 많이 쓴다... 2022/01/30 2022-TIL
2022-01-26-TIL TIL Today I Learned VDI VDI(Virtual Desktop Infrastructure)는 데스크톱 환경을 각자의 PC가 아니라 중앙 서버의 가상 머신에서 돌리고, 사용자는 거의 모든 기기에서 그 가상 데스크톱에 접속해 쓰는 구조다. Microsoft Azure의 설명도 VDI를 중앙 서버에 호스팅된 가상 데스크톱에 접근하게 해 주는 I... 2022/01/26 2022-TIL
2022-01-25-TIL TIL Today I Learned CF CF는 협업 필터링(Collaborative Filtering)의 약자로, 추천 시스템의 대표적인 방식이다. 아이템의 속성(장르, 감독 같은 메타데이터)을 직접 비교하는 콘텐츠 기반 필터링과 달리, 사용자들이 남긴 행동 기록(평점, 클릭, 재생)만 보고 비슷한 사용자와 비슷한 아이템을 찾는다. “나와 취향이 비슷한... 2022/01/25 2022-TIL
2022-01-24-TIL TIL Today I Learned Spring Caching https://mangkyu.tistory.com/179 Spring은 메서드 결과를 캐시에 저장하는 기능을 애너테이션으로 제공한다. 설정 클래스에 @EnableCaching을 붙여야 동작이 켜지고, 그다음 메서드에 아래 애너테이션을 붙인다. 애너테이션 ... 2022/01/24 2022-TIL