diff --git a/README.md b/README.md
index 376f70c0e392dd0a83273dbca7a5240a56ce163d..e65f661799529995d56606f27a33a30e5f90fa3b 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 <p>
     <img width="480" src="https://www.andplus.com/hs-fs/hubfs/kafkalogo.jpg?&name=kafkalogo.jpg">
 </p>
-<h1>Apache Kafka 공부</h1>
+<h1>Apache Kafka 공부 (Java, Python)</h1>
     <h5>v2.13-2.6.0</h5>
 
 [Apache Kafka](https://kafka.apache.org/)
@@ -14,7 +14,7 @@
 <table>
     <tr><td width=40% valign=top>
         
-* Kafka
+* Kafka (Java)
     * [Simple Producer](https://github.com/Alfex4936/kafka-Studies/blob/main/src/main/java/csw/kafka/study/lesson1/ProducerDemo.java)
     * [Producer with callback](https://github.com/Alfex4936/kafka-Studies/blob/main/src/main/java/csw/kafka/study/lesson1/ProducerDemoCallBack.java)
     * [Producer with key](https://github.com/Alfex4936/kafka-Studies/blob/main/src/main/java/csw/kafka/study/lesson1/ProducerDemoWithKey.java)
diff --git a/python/README.md b/python/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e540dc5018c43664726cd7d881a9a9175beb03ed
--- /dev/null
+++ b/python/README.md
@@ -0,0 +1,36 @@
+<div align="center">
+<p>
+    <img width="480" src="https://www.andplus.com/hs-fs/hubfs/kafkalogo.jpg?&name=kafkalogo.jpg">
+</p>
+<h1>Apache Kafka 공부 in Python</h1>
+    <h5>v2.13-2.6.0</h5>
+
+[Apache Kafka](https://kafka.apache.org/)
+
+</div>
+
+## 설치
+[Kafka 다운로드](https://kafka.apache.org/downloads)
+
+*Make sure to Download "Binary"*
+
+## 실행
+
+zookeeper & kafka 서버 실행
+
+```console
+
+WIN10@DESKTOP:~$ zookeeper-server-start config/zookeeper.properties
+
+WIN10@DESKTOP:~$ kafka-server-start config/server.properties
+
+```
+
+Kafka 설치
+
+```console
+
+WIN10@DESKTOP:~$ pip install confluent-kafka
+
+```
+
diff --git a/python/src/ProducerDemo.py b/python/src/ProducerDemo.py
new file mode 100644
index 0000000000000000000000000000000000000000..9a8e8d68f74b26cf2942d66d21abf13b0b22be82
--- /dev/null
+++ b/python/src/ProducerDemo.py
@@ -0,0 +1,8 @@
+from confluent_kafka import Producer
+from config import Config
+
+p = Producer({"bootstrap.servers": Config.MY_SERVER})
+p.produce(Config.TOPIC_ID, key="key_1", value="Hello")
+p.flush(100)
+
+# kafka-console-consumer --bootstrap-server localhost:9092 --topic first-topic
diff --git a/python/src/ProducerDemoCallBack.py b/python/src/ProducerDemoCallBack.py
new file mode 100644
index 0000000000000000000000000000000000000000..b196cd56552ccb414e48ba8012269bdfff4559bd
--- /dev/null
+++ b/python/src/ProducerDemoCallBack.py
@@ -0,0 +1,24 @@
+from confluent_kafka import Producer
+from config import Config
+
+
+def acked(err, msg):
+    if err is not None:
+        print("Failed to deliver message: {0}: {1}".format(msg.value(), err.str()))
+    else:
+        print("Message produced: {0}".format(msg.value()))  # binary
+
+
+p = Producer({"bootstrap.servers": Config.MY_SERVER})
+
+try:
+    for val in range(1, 5):
+        p.produce(Config.TOPIC_ID, "value #{0}".format(val), callback=acked)
+        p.poll(0.5)
+
+except KeyboardInterrupt:
+    pass
+
+p.flush(100)
+
+# kafka-console-consumer --bootstrap-server localhost:9092 --topic first-topic
diff --git a/python/src/__init__.py b/python/src/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/python/src/config.py b/python/src/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..89de0a6ba483f7bfd3bdc8c5764a2cd70f0ff2de
--- /dev/null
+++ b/python/src/config.py
@@ -0,0 +1,4 @@
+class Config:
+    MY_SERVER = "localhost:9092"
+    TOPIC_ID = "first-topic"
+    GROUP_ID = "group-one"
diff --git a/src/main/java/csw/kafka/study/lesson1/ProducerDemoWithKey.java b/src/main/java/csw/kafka/study/lesson1/ProducerDemoWithKey.java
index 1baedd169ea1fd89f55a35fe28e256e8431d2782..8c8c1982b3b39cfbc22f4fabc1338e0c968a7292 100644
--- a/src/main/java/csw/kafka/study/lesson1/ProducerDemoWithKey.java
+++ b/src/main/java/csw/kafka/study/lesson1/ProducerDemoWithKey.java
@@ -31,7 +31,7 @@ public class ProducerDemoWithKey {
             logger.info("Key: " + key);
 
             // Kafka Producer Record
-            ProducerRecord<String, String> record = new ProducerRecord<String, String>(topic, key, value);
+            ProducerRecord<String, String> record = new ProducerRecord<>(topic, key, value);
 
             // Consumer한테 데이터 보내기 - 비동기
             producer.send(record, new Callback() {