강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Programming Language

Properly Learning JavaScript: Mastering Object-Oriented Programming & Applied Strategy AI Tic-Tac-Toe Part 2 [Intermediate]

📌 This course starts with a strategic AI Tic-Tac-Toe project and is a curriculum that completes the core concepts of object-oriented programming through practical examples. Through game implementation, you will train logic design and AI strategic thinking, and then directly experience OOP design techniques such as inheritance, composition, delegation, and encapsulation through code. This is recommended for those who want to go beyond syntax and grow into a 'designing developer' through a real project.

16 learners are taking this course

  • nhcodingstudio
3시간 만에 완강할 수 있는 강의 ⏰
틱택토
JavaScript
HTML/CSS
oop

What you will learn!

  • Console Tic-Tac-Toe Full Implementation

  • Ability to configure logic for user input processing and game progress control

  • Directly Design and Implement AI from Basic Random to Strategic Types

  • Implement Logic for Judging Game State and Applying Priority Based on Conditions

  • Establishing the concept of JavaScript objects and constructor functions

  • Understanding the difference and connection structure of prototype and class syntax

  • Practical Application of Core Object-Oriented Syntax: Inheritance, super, override, etc.

  • Flexible Function Design via Composition, Delegation

  • Implementing Secure Object Protection and Internal Information Hiding through Encapsulation

  • Structured design is possible by distinguishing roles and responsibilities in object collaboration structures



🎮 《Learn JavaScript the Right Way: Creating a Strategic AI Tic-Tac-Toe and Completing Object-Oriented Learning》


🔥 “We can no longer survive with ‘scattered grammar’!”

So far, we have learned about variables, functions, conditional statements, and loops…
Haven't you ever been stuck on coding because you didn't know where to start ?

📌Why is that?

I learned grammar, but I never learned the ‘power to design’ !
I wrote the code, but I can't explain 'why I wrote it that way'!
I thought I just had to go back, but after a while I couldn't even understand my own code!

💣 And most of all…
Because I have never created a “code that judges and moves on its own”!


🚨 Realize it now.
The decisive difference from developers in the field is created through ‘design ability.’

If you miss this, you will continue to be just a 'search coder' .
Before it's too late, start growing as a 'designer' from this moment.


🚀 This lecture completely shatters this reality!

You unify the scattered grammar into one ,
Design your own code to think and judge ,
Finally, grow into a developer who creates ‘your own strategic AI’ !


🎮 Make it yourself – a real ‘thinking program’!

🤖 Beyond the randomly moving novice AI…
🛡 Defensive strategy, offensive strategy, center control, corner control, and the ultimate fork strategy!

👉 Now your code asks:
“How can we win this time?”

Code that judges and moves toward victory on its own, just like a human being.
Make it with your own hands!


👨‍💻 And here, you start on the path to becoming a real developer.


📚 Why should I learn Object-Oriented Programming (OOP)?

Object orientation is not just a technology.
Interpreting and ordering a complex world,
It is a 'framework of thought' that structures confusion.

We all think and live in an object-oriented way.
People, cars, companies, and even countries are made up of objects with 'roles and responsibilities'.

💡 Real developers don’t just write code.
Develop your eyes to see the world,
Learn problem-solving mindsets.


📚 Learn real design skills with OOP!

🧩 Assemble only the necessary functions ( Composition )
📦 Smartly divide up the work (
Delegation )
🚚 Collaborate perfectly according to roles (
separation of roles and responsibilities )
🔐 Protecting information yourself (
encapsulation )
🧬 Freely change abilities depending on the situation (polymorphism)

💡 You implement all these technologies yourself.
Code no longer rules you.
Now you are the designer who rules the code.


🎯 The skills you've been wanting for so long will be perfected in this process.

“Code that just waits for instructions” → “Code that thinks and moves on its own”

This course will completely change your code life.


📣 Time is passing even at this moment.
🚀 If you hesitate, it's too late.
Enter the world of ‘strategic AI’ and ‘object-oriented design’ now!

👉 If you don’t start now, you might be repeating the same worries a year from now.


💥 This time, it's time to really, really grow.
Now, go beyond coding and become a ‘developer who designs the world’!

After taking the lecture, you can create results like this.

🤖 Self-Judging Strategic AI Tic-Tac-Toe Completed

Random selection is a limitation of novice AI.

Attack first, defense first, control the center, corner first,
And finally , the two-pronged winning fork strategy!
📌 Design and implement AI that recognizes situations and chooses the most advantageous strategy on its own.

📦 A role-separated design system that solves real-world problems with code

Shipping, payment, notification… Separate complex issues accurately according to role!
Flexible design implementation that connects only when needed!
📌 Create your own scalable service using SRP (Single Responsibility Principle) and Strategy Pattern .

🧬 Experience flexible, polymorphic design that is robust to change

Same method name, different behavior!
Write code that actively changes depending on the situation!
📌 Apply polymorphism to create flexible, practical code that can be expanded to meet new functional requirements without modifying existing code.

🧩 Smart feature combination design without unnecessary code

Say goodbye to heavy and complicated codes!
Select only the functions you need and assemble them like Lego blocks!
📌 We complete the optimal combination design that efficiently combines only the necessary functions.

💬 VIP-only chatbot – Extend advanced features with inheritance and overrides

Common functions are passed down through inheritance ,
VIP-only responses are provided customized through Override !
📌 Separate the functions of general chatbots and VIP chatbots using object-oriented design, and create a differentiated advanced response system yourself.

🔐 Ironclad security! Perfect information hiding encapsulation design

Completely block external access with Symbol, #private fields, and WeakMap !
Keep your important data safely hidden and protected!
📌 We design and implement programs with excellent security and stability through encapsulation .

📚 Course Curriculum Structure


🎮 Section 1. Strategic Console Tic-Tac-Toe Project – Real-World JavaScript Practice and AI Strategy Implementation

Goals:
Design a complete tic-tac-toe game in a console environment, implement a strategic AI, and connect JavaScript fundamentals and reasoning to real-world applications.


🗂 Part 1. Implementing game logic

📋 Implementing a 3x3 board output and current status display function
🎯 Developing logic for player marker selection and priority decision
🔄 Write code to correctly place markers while alternating turns
🏆 Checking the winning conditions (horizontal, vertical, diagonal) and handling draws
🛠 Completed run() function that controls the overall game flow


🤖 Part 2. Developing an AI Strategy

🎲 Random AI : The most basic AI that randomly selects blank spaces.
🛡 Defensive AI : Defensive strategy that blocks the player from winning positions.
Offensive AI : An aggressive strategy that seeks out and selects possible winning positions first.
🎯 Center Control Strategy AI : Center-first control strategy for game dominance
📐 Corner Strategy AI : A strategy that increases the probability of winning by taking the corner first
🧩 Fork Strategy AI : Advanced strategy that designs two winning paths simultaneously



📚 Section 2. Introduction to Object-Oriented Programming with Class Grammar

Goals:
Covers the fundamentals of JavaScript object-oriented programming and learns efficient code reuse and design methods.


📖 Understand the limitations of procedural programming and recognize the need for OOP
🛠 Automating repetitive object creation with constructor functions
🔗 Complete mastery of prototype and proto structure
📖 Write readable and maintainable code with ES6 class syntax


🏗 Section 3. Object-oriented class design Part 1 – Inheritance and flexible extension

Goals:
Learn design techniques that increase code reusability and extensibility through inheritance and overriding.


📚 Inheritance : Inheriting common features from parent classes
🔧 Override : Redefining parent method in child class
🎛 Hybrid Override : Add child logic while maintaining parent logic
🎯 Real Mission: User Management System & VIP Chatbot System Design


🎭 Section 4. Polymorphism and Interface Design – Building Flexible Systems

Goals:
Learn flexible and extensible object design through polymorphism and interfaces.


📖 Polymorphism : Same method name, different behavior depending on the situation
📢 Interfaces and Abstract Classes : Defining Common Promises and Maintaining a Consistent System
🎯 Real Mission: Implementing a global notification system and an automatic courier selection system


Section 5. Collaboration and Composition – Designing Efficient Object Collaboration

Goals:
Develop design capabilities to select only the necessary functions through combination and delegation, and to distribute responsibilities efficiently.


🧩 Composition : Select only the functions you need and assemble flexibly.
📦 Delegation : Delegating complex tasks to other objects
👔 Separation of Roles and Responsibilities (SRP) : Practicing the Single Responsibility Principle for Objects
🎯 Real Mission: Assemble Smartwatch Functions & Develop Global Notification System


🔐 Section 6. Information Protection and Security Design – Mastering Encapsulation

Goals:
Learn how to protect sensitive data and design secure objects using encapsulation and security design.


🗝 Design private properties with Symbols : Protect data with hidden properties
🔒 #private field : Completely block external access with the latest syntax
📚 Implementing Secure Storage with WeakMap : Hiding Data That Is Never Accessible from Outside
📌 Implement common utilities with static methods : Write efficient code by designing fixed functions that can be called without objects.
🎯 Real Mission : Strengthening security system, real-time translation cache system, issuing user system unique ID and login design


💥 After finishing the lecture, you will…

  • 📈 Grow from a simple coder to a problem-solving developer

  • 🎯 Solve complex problems by structuring them with design thinking

  • 🔐 Securing advanced design capabilities considering security and maintainability

  • 🧩 Learn flexible and extensible object-oriented design

  • 🚀 Complete your strategic thinking and programming sense that applies in practice


📚 Things to note before taking the class

Essential Player Knowledge

  • It would be helpful to know the basic syntax of JavaScript .
    (e.g. variable declarations, conditional statements, loops, function definitions, etc.)

  • Even if your grammar isn't perfect, the course is structured so that you can learn naturally through practice.

💻 Practice environment

  • Operating System : Windows / macOS / Linux (all possible)

  • Required Programs :

    • Chrome browser (latest version recommended)

    • Visual Studio Code ( VSCode ) – Includes installation and usage lectures

📂 Provided learning materials (ALL-IN-ONE package)

  • 💻 All practice code and project source code (GitHub link provided)

    • Provides complete example code and source code for practical projects written in the lecture

    • Includes code comments and detailed explanations, allowing you to review and apply in real life situations all at once!

  • 📑 Provides real mission templates & answer explanations (GitHub link provided)

    • Provides practice mission templates and challenges you can solve yourself

    • Correct code for each mission + detailed explanation of why it was written this way

  • 📂 All detailed class-related materials & advanced materials provided (GitHub link provided)

    • Advanced concepts such as OOP design patterns, strategy patterns, encapsulation, and polymorphism.
      Provides advanced materials that cover theory + practical application codes

    • Neatly organized with important keywords, design flow charts, and pattern application examples

📢 Things to know before taking the class

  • This is a hands-on course where you learn by writing code yourself.

  • You can follow along sufficiently by adjusting the lecture speed and studying repeatedly.

  • Any questions regarding the lecture will be answered quickly through the Q&A bulletin board (response within 24 hours).

💡 TIP!
A basic understanding of HTML and CSS will make it easier to follow.
However, it is not required, and the necessary parts will be explained together in the lecture!

📢 Guide to the student-only community

Anyone who takes this course will have access to a dedicated community .
Study together, ask questions, share concerns, and quickly get the latest development news!

  • Share each other’s learning know-how and experiences

  • Ask questions and get answers quickly

  • Share trends and information in real time and grow together!

📱 Join KakaoTalk Open Channel:
👉 https://open.kakao.com/o/gC10Fnoh

Recommended for
these people

Who is this course right for?

  • Those who have learned basic JavaScript syntax but haven't built a project.

  • Those who want to implement AI logic or strategy-based programs with JavaScript

  • For those who want to systematically learn OOP (Object-Oriented Programming) concepts with code

  • Those who want to clearly understand JavaScript's class syntax, prototype structure, private fields, etc.

  • Those who want to understand class-based code structure and build a foundation for team projects

  • Those wanting to boost JavaScript skills enjoyably through game projects

  • For those who want to understand object design from a security perspective, such as encapsulation, hiding, and information protection

  • Aspiring developer aiming to learn practical, flexible, and safe object design skills.

Need to know before starting?

  • Basic JavaScript Syntax

  • Basic Usage of Arrays and Objects

  • Experience using console input/output like console.log() and prompt()

Hello
This is

188

Learners

7

Reviews

4.4

Rating

10

Courses

안녕하세요, 우리동네코딩 스튜디오에 오신 것을 환영합니다!

우리동네코딩 스튜디오는 카네기 멜론, 워싱턴, 토론토, 워터루 등 북미의 주요 대학에서 컴퓨터공학을 전공하고, Google, Microsoft, Meta 등 글로벌 IT 기업에서 실무 경험을 쌓은 개발자들이 함께 만든 교육 그룹입니다.

처음에는 미국과 캐나다의 컴퓨터공학 전공자들끼리 함께 공부하며 성장하고자 만든 스터디 모임에서 시작되었습니다. 각기 다른 대학, 다른 시간대에 있었지만 함께 문제를 해결하고 서로에게 배운 그 시간은 매우 특별했고, 자연스럽게 이런 생각이 들었습니다.

“우리가 공부하던 이 방식, 그대로 다른 사람에게도 전하면 어떨까?”

그 물음이 바로 우리동네코딩 스튜디오의 출발점이었습니다.

현재는 약 30명의 현직 개발자와 컴퓨터공학 전공 대학생들이 각자의 전문 분야를 맡아, 입문부터 실전까지 아우르는 커리큘럼을 직접 설계하고 강의합니다. 단순한 지식 전달을 넘어, 진짜 개발자의 시선으로 배우고 함께 성장할 수 있는 환경을 제공합니다.

“진짜 개발자는, 진짜 개발자에게 배워야 합니다.”

저희는 웹 개발의 전 과정을 처음부터 끝까지 체계적으로 다루되, 이론에 머무르지 않고 실습과 실전 중심의 피드백을 통해 실력을 키워드립니다.
수강생 한 사람, 한 사람의 성장을 함께 고민하고 이끌어가는 것이 우리의 철학입니다.

🎯 우리의 철학은 분명합니다.
"진정한 배움은 실천에서 오고, 성장은 함께할 때 완성된다."

개발을 처음 시작하는 입문자부터, 실무 능력을 키우고 싶은 취업 준비생, 진로를 탐색 중인 청소년까지.
우리동네코딩 스튜디오는 모두의 출발점이자, 함께 걷는 든든한 동반자가 되고자 합니다.

이제, 혼자 고민하지 마세요.
우리동네코딩 스튜디오가 여러분의 성장을 함께하겠습니다.


Welcome to Neighborhood Coding Studio!

Neighborhood Coding Studio was founded by a team of developers who studied computer science at top North American universities such as Carnegie Mellon, the University of Washington, the University of Toronto, and the University of Waterloo, and went on to gain hands-on experience at global tech companies like Google, Microsoft, and Meta.

It all began as a study group formed by computer science students across the U.S. and Canada, created to grow together by sharing knowledge, solving problems, and learning from one another.
Though we were attending different schools in different time zones, the experience was so meaningful that it led us to one simple thought:

“What if we shared this way of learning with others?”

That thought became the foundation of Neighborhood Coding Studio.

Today, we are a team of around 30 active developers and computer science students, each taking responsibility for their area of expertise—designing and delivering a curriculum that spans from foundational knowledge to real-world development.
We’re not just here to teach—we’re here to help you see through the lens of real developers and grow together.

“To become a real developer, you must learn from real developers.”

Our courses take you through the entire web development journey—from start to finish—focused on hands-on practice, real-world projects, and practical feedback.
We care deeply about each learner’s growth and are committed to supporting your path every step of the way.

🎯 Our philosophy is simple but powerful:
"True learning comes from doing, and true growth happens together."

Whether you're just getting started, preparing for your first job, or exploring your future in tech,
Neighborhood Coding Studio is here to be your launchpad—and your trusted companion on the journey.

You don’t have to do it alone.
Let Neighborhood Coding Studio walk with you toward your future in development.

Curriculum

All

68 lectures ∙ (3hr 32min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

Limited time deal ends in 22:47:07

$25.30

23%

$33.00

nhcodingstudio's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!