diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f149277bb63cf83ba489e4668ad66c7db0d8197b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,28 @@
+# 컴파일러 및 플래그 설정
+CXX = g++
+CXXFLAGS = -std=c++17 -I src -I src/RPi-Arduino-SPI
+LDFLAGS = -lbcm2835 -lpthread
+
+# 실행 파일 이름
+TARGET = charger
+
+# 소스 파일 및 오브젝트 파일 정의
+SRC_DIR = src
+ROOT_SRC = charger.cpp
+SRCS = $(ROOT_SRC) $(wildcard $(SRC_DIR)/**/*.cpp $(SRC_DIR)/*.cpp)
+OBJS = $(SRCS:.cpp=.o)
+
+# 빌드 규칙
+all: $(TARGET)
+
+$(TARGET): $(OBJS)
+	$(CXX) $(OBJS) -o $@ $(LDFLAGS)
+
+%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+# 파일 정리
+clean:
+	rm -f $(OBJS) $(TARGET)
+
+.PHONY: all clean
\ No newline at end of file