diff --git a/utils/count_files.py b/utils/count_files.py
new file mode 100644
index 0000000..f214cf6
--- /dev/null
+++ b/utils/count_files.py
@@ -0,0 +1,95 @@
+from collections import Counter
+from datetime import datetime
+import os
+
+
+# def count_files():
+# files_info = []
+# total_file_count = 0
+# directory_list = [directory for directory in os.listdir("./") if "Folder" in directory]
+# for directory in directory_list:
+# file_list = os.listdir(f"./{directory}")
+# file_count = len(file_list)
+# temp = [directory, file_count]
+# files_info.append(temp)
+# total_file_count += file_count
+# return files_info, total_file_count
+
+# def count_files():
+# files_info = []
+# total_file_count = 0
+# # "jin", "hong", "joon", "new", "woo" 중 하나라도 포함된 폴더 이름을 찾습니다.
+# directory_list = [directory for directory in os.listdir("./") if any(name in directory for name in ["jin", "hong", "joon", "new", "woo"])]
+# for directory in directory_list:
+# file_list = os.listdir(f"./{directory}")
+# file_count = len(file_list)
+# temp = [directory, file_count]
+# files_info.append(temp)
+# total_file_count += file_count
+# return files_info, total_file_count
+
+def count_files_recursive(directory):
+ total_file_count = 0
+ # 현재 디렉토리의 내용을 나열합니다.
+ for entry in os.scandir(directory):
+ if entry.is_file():
+ # 파일이면 카운트를 증가합니다.
+ total_file_count += 1
+ elif entry.is_dir():
+ # 디렉토리(폴더)면 재귀적으로 이 함수를 호출합니다.
+ total_file_count += count_files_recursive(entry.path)
+ return total_file_count
+
+def count_files():
+ files_info = []
+ directory_list = [directory for directory in os.listdir("./") if os.path.isdir(directory) and directory not in [".github", "utils"]]
+ for directory in directory_list:
+ file_count = count_files_recursive(f"./{directory}")
+ temp = [directory, file_count]
+ files_info.append(temp)
+ return files_info, sum(info[1] for info in files_info)
+
+
+def make_info(files_info, total_file_count):
+ info = f"### 전체 아티클 갯수: {total_file_count}개 (자동 업데이트)"
+ # for directory_files_info in files_info:
+ # temp = f"- {directory_files_info[0]}: {directory_files_info[1]}\n"
+ # info += temp
+ return info
+
+def make_read_me(info):
+ return f"""# 자유 주제 스터디
+{info}
+
+
+
+### 진행 방식
+- 각자 이름의 branch에서 각자 이름의 폴더에 공부 내용을 정리하여 한다.
+- 일주일에 5번 main branch를 향하는 PR을 올린다.
+ - 새벽 6시 전까지 올린 PR은 전날 올린 건으로 간주된다. (출근길 글 읽기를 위해)
+- 매일 낮 12시 이전까지 스터디원이 올린 PR에 승인, 질문 등의 피드백을 남긴다.
+- PR에 꼭 완성된 글을 올리지 않아도 된다.
+
+
+
+### 누적 벌금 : 370,013 원
+"""
+
+# return f"""# Self-Updating-Readme
+# Push할 때마다 폴더 별 파일 수를 리드미에 자동으로 업데이트
+# Automatically update the number of files per folder to Readme whenever you push.
+# {info}
+# """
+
+
+def update_readme():
+ files_info, total_file_count = count_files()
+ info = make_info(files_info, total_file_count)
+ readme = make_read_me(info)
+ return readme
+
+
+if __name__ == "__main__":
+ readme = update_readme()
+ with open("./README.md", 'w', encoding='utf-8') as f:
+ f.write(readme)