ArticleApiTest 에서 로그를 System.out.println()으로 남기는 이유 문의
혹시 ArticleApiTest 에서는 System.out.println() 으로 로그를 남기는 이유가 있을까요?
ArticleRepositoryTest에서는 log.info로 하셨는데요.
답변 2
2
아라레님, 안녕하세요!
제가 ArticleRepositoryTest에서는 log로 처리했었군요!?
일단 특별한 이유는 없고, 제가 통일하는 것을 깜박했습니다.
운영 코드에서는 당연히 log로 처리하는게 맞지만(이유는 쉽게 찾아볼 수 있으므로 따로 설명하진 않겠습니다),
테스트코드에서는 자동완성 편의(soutv)나 출력문도 깔끔하게 나와서 System.out.println()을 주로 활용하는 편입니다.(제가 그렇게 한다는 것이고, 어떤 것을 택하든 상관 없습니다.)
사실 테스트 코드라면 굳이 결과를 출력하기보단 테스트 프레임워크를 이용해서 결과값을 코드로 자동 검증하면 충분한데요,
강의에서는 수강생 분들과 출력 결과를 함께 살펴보기 위해 로깅 또는 콘솔 출력을 진행했네요!
0
안녕하세요, 인프런 AI 인턴입니다. 아라레님.
질문 주신 내용은 ArticleApiTest와 ArticleRepositoryTest에서 로그를 남기는 방식 차이에 대한 것입니다. 두 방식 모두 로깅을 위한 것이지만, 목적과 사용 상황이 다를 수 있습니다. 다음은 각각의 장점을 설명드리겠습니다.
System.out.println() 사용 이유
- 간단한 디버깅: 빠른 실험이나 테스트 환경에서 간단히 결과를 확인하기 위해 사용합니다. 작은 프로젝트나 임시적인 코드 점검 시에는 적합할 수 있습니다.
- 이해의 용이성: 로그 라이브러리를 추가로 설정하지 않아도 되기 때문에, Java를 배우거나 익숙하지 않은 개발자에게는 쉽게 접근할 수 있는 방법입니다.
log.info() 사용 이유
- 구조화된 로깅: 로그 레벨별 관리가 가능해, 필요에 따라 정보성, 경고, 에러 등을 구분하여 확인할 수 있습니다.
- 확장성: SLF4J나 Logback 같은 라이브러리를 활용하면, 로그 포맷, 출력 형식, 로그 저장 위치 등을 쉽게 조정할 수 있습니다. 특히 대규모 시스템에서는 이러한 관리 능력이 필수적입니다.
- 개발 및 운영 환경 분리: 개발환경과 운영환경에서 서로 다른 로그 설정을 활용해, 운영 중에 불필요한 로그 출력을 제어할 수 있습니다.
일반적으로는 log.info()와 같은 로깅 프레임워크를 사용하는 것이 권장됩니다. 이유는 위에 설명드린 것처럼 로그 레벨 관리뿐 아니라 로그의 중앙 관리 및 집계가 가능하기 때문입니다. 그러나 경우에 따라 간단하게 테스트해볼 때는 System.out.println()을 사용할 수도 있습니다. 최종적으로는 프로젝트의 복잡성, 운영 환경 요구사항 등을 고려하여 적절한 로깅 방식을 선택하는 것이 중요합니다.
관련하여 다른 질문의 답변을 확인해 보시면 도움이 될 수 있습니다:
- Java 로깅 방법 비교 및 추천 (게시글 제목)
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 설명을 제공하고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.
0
31
1
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
47
2
게시글 테스트 데이터 삽입
0
51
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
104
2
좋아요 기능 정합성 보장 방법
0
98
2
좋아요 동시성처리 최적의 선택?
1
136
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
92
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
59
1
조회수 조회 로직 질문
1
67
2
비로그인 유저도 어뷰징 방지 정책
1
72
2
CommentServiceTest의 테스트 로직 질문
0
54
2
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
1
74
2
path 쿼리 관련 질문드립니다!
0
60
2
antigravity 에디터를 쓰신다면 종료해주세요
1
123
0
프로젝트 구조
0
88
2
article_like_count api test
0
78
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
104
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
91
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
92
3
jpa ddl-auto none을 하는 이유와 join 방법
0
97
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
90
2
커서 기반 페이지네이션 과 무한 스크롤링
0
110
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
97
2
멀티 모듈이 아닌 MSA 환경에서 common
0
156
2





