강의

멘토링

로드맵

BEST
Programming

/

Front-end

Sinabro Javascript

Build a solid foundation and confidence by developing a variety of topics from scratch with JavaScript.

(4.9) 32 reviews

595 learners

  • eunjae
자바스크립트
vanillajs
JavaScript
vanilla-js

Reviews from Early Learners

What you will learn!

  • Developing Core JavaScript Skills Without a Framework

  • Understanding the JavaScript ecosystem more deeply

Level Up! Build your core JS skills.

💡 “It works, but why does it work?”

We always use a variety of libraries and frameworks for web development, but often times, it's hard to understand exactly what's going on. The JavaScript ecosystem is so complex and intertwined with so many different elements that it can be hard to unravel the mystery.

Sinabro JavaScript provides a stepping stone to level up from junior to mid-level, and from mid-level to senior .

“Web development is too complicated.”

This is because of the technical debt and the numerous intertwined elements that have accumulated over the evolution of the JavaScript ecosystem. While you can dive in and learn on your own, it's also a good idea to sit down and learn slowly with someone who's already been there .

“I can do it, but I don’t have the confidence.”

If you don't understand the fundamental principles of how the frameworks and libraries you use work together, it's easy to panic over even minor bugs. This lecture will teach you how important topics work by developing without libraries .

“I want to level up my development skills.”

Repeating similar toy projects might make you faster, but diving deeper requires a different strategy. Once you deeply understand the core concepts, you'll have a foundational understanding that will allow you to easily grasp any new frameworks or technologies that emerge.

“New things are coming out so quickly.”

JavaScript, especially the front-end, still has many issues to address, and various attempts are constantly being made. Consequently, countless new libraries, frameworks, and concepts are emerging. However, most of these are attempts to solve existing problems in new ways.

Once you've tried solving existing problems without those solutions, it becomes easier to compare and understand how new solutions solve them differently .

🙌🏻 Hello, this is Eunjae Lee.

I've worked primarily in front-end development at companies like Daum, Kakao, and Algolia. I currently work as a full-stack developer at Storyblok.

After working at a startup for a long time, I suddenly woke up to find so much had changed. I used AngularJS from 2014 to the end of 2017, but it wasn't until 2018 that I started learning all the things I'd missed. It started with ES6, React, Babel, and so on, and it was endless.

Moving to France in 2019 and joining a company called Algolia was a great opportunity for me to gain a deeper understanding of various concepts and work with them. I developed a comprehensive picture by directly engaging with the concepts and asking questions to those around me. After a while, I began to think about how useful it would have been to have well-organized content on these topics , which ultimately led me to create a course.


📖 Content List (Total 13 hours 16 minutes)

1. Basics of DOM API

Learn the basic DOM API and practice structuring HTML and attaching events without a front-end framework. (1h 3m)

  • innerHTML
  • createElement
  • appendChild
  • addEventListener

2. Create a shopping mall

Let's implement a shopping mall product list and shopping cart. Our goal is to implement dynamic interactions using the DOM API directly. As products are added and removed from the shopping cart, we'll develop a system that simultaneously updates the same data (quantity) across multiple screens (the product list and shopping cart). Through this process, we'll experience the importance of a modern front-end framework. (1h 20m)

Next, we'll refactor the implemented shopping mall product list and shopping cart into several components, considering design, meaning, and role, to make them more manageable. (52m)

Finally, instead of manually searching for DOM elements and updating their quantities, let's implement a method that automatically updates the DOM reactively when data is updated. (52m)

3. Web Server Basics

Learn the fundamentals of web servers by using Express. Serverless functions offered by Vercel and Netlify are easy and convenient these days, but before those became available, we'll explore how backends were structured using Express.

We'll also learn about CORS, an issue encountered during the rendering of data from a vite-powered frontend requesting an Express server. (45m)

4. Array method

We'll practice representative Array methods like filter, map, and reduce through various examples. We assume you're familiar with basic grammar, and we'll proceed with a sense of physical training. (1 hour 18 minutes)

5. npm library basics

We'll explore the structure of an npm library, slowly delve into the complex issues surrounding CommonJS and ES Modules, and deploy our library directly to npm. (27m)

6. Create a mini query

Let's build a very small subset of jQuery. Learn how to set up a monorepo using Yarn Workspace, and experience the overall workflow for library development by working on a library, example app, and documentation site within it.

We'll write unit tests using vitest, experience the challenges that arise during the library build process, and explore Tree-Shake. (1h 7m)

7. Movie information site

Let's build a movie search site. The result is very simple, but this episode covers crucial concepts. We'll learn about the browser's History API and use it to implement client-side routing, similar to React Router. (45m)

Next, we'll implement server-side rendering directly on the Express server and hydrate it on the client. By the end of this tutorial, you'll have a fairly detailed understanding of Next.js' SSR + hydration process. (1h 14m)

8. Practice asynchronously

Similar to the Array method practice episode, we'll practice callbacks, promises, async, and await to better handle asynchrony. (38m)

9. Create a static blog

Many static websites are built using tools like Jekyll, Gatsby, and Next.js. Let's take a look at how these tools create static websites and mimic their build process.

In this process, we'll build a static blog from Markdown posts using a Node.js script, without any frameworks or tools, and deploy it to Vercel. (1h 3m)

10. Creating a CLI

Let's take a look at the structure of the npm library for CLI, create our own CLI, and deploy it to npm. After that, we'll use npm install -g It can be installed and used as (48m)

11. Creating a Form Library

In the past, we used to create forms like the one above. Let's implement it the old way to see how it works. And now, we understand why it's not done that way. We also understand the benefits of libraries like react-hook-form, which are widely used these days, and we'll create something similar. (1h 4m)

👥 If you take the class

Those who purchase the course will be invited to a learner-only Discord channel . Ask any questions that arise during the course. You can also learn from the questions posted by others.

I hope we can learn together through free questions and discussions in a space where it's okay to not know anything. Ultimately, improving your confidence in JavaScript is our most important goal.


❓ Frequently Asked Questions

Q. Do you use Tailwind CSS in your lectures?

In just one episode, "Building an Online Store," I use Tailwind CSS for design. If you're unfamiliar with Tailwind CSS, you can write your own CSS in any way you like. If you're interested, you can also refer to my free video .

Q. Is this something I can listen to?

It's hard to say for sure, but if any of the following apply to you, you might want to take this course.

  • Understand the difference between let and const.
  • You can handle modules with import/export.
  • I know the difference between import and require to some extent.
  • I understand this grammar: const { name, address } = person .
  • You can create a simple to-do app using React or Vue.js by storing to-dos in variables without a database.
  • If you use React, you probably know how to use useEffect and useMemo.
  • If you were asked to create a To-Do app, you can roughly imagine how it would be broken down into components.

Q. How is it different from other lectures?

Many courses focus on building specific projects. These courses often show a gradual process of combining various technologies, libraries, and services. While this is useful in learning the "what" and "how" of combining various elements, it's difficult to cover the "why" part of these courses.

In Sinabro JavaScript, you'll learn the history of how certain topics were done in the past and why they're done this way today, understanding the pros and cons of each approach. And by implementing the features frameworks hide from us, you'll understand why they do what they do.

Knowing the "What" and "How" are crucial, but without the "Why," you'll struggle to get far. Lack of confidence in development often stems from a lack of "Why." When a bug occurs, you don't fully understand the situation, so you don't know how to fix it. Applying a Google search result might fix the bug, but you don't understand why. This leaves you feeling uneasy and worried about what to do if the same situation arises again.

Therefore, accurately learning the "why" is essential for upgrading to the next level. While hands-on learning is one way, learning from someone who's already been through the process and explaining it in detail is also an effective method. In fact, the demand for these mid-level courses is bound to be lower than for beginners, which is why such targeted courses are rare.

Q. Is there a trial class?

Here it is! Before watching this lecture, I've created a short, free video with some helpful warm-up exercises. You can also check it out at the link .

Q. Is there a discount for students or job seekers?

Yes, you can. We will provide you with a discount after completing a simple verification process .

Q. I have another question!

Please email me or DM me on Twitter and I'll respond. I live in France, so please understand that my replies may be delayed due to the time difference.

Recommended for
these people

Who is this course right for?

  • "It works, but why does it work?"

  • “Web development is too complicated.”

  • “I can do it, but I don’t have the confidence.”

  • “I want to level up my development skills.”

  • “New things are coming out so quickly.”

Need to know before starting?

  • This is not a course for beginners in JavaScript. This is a course for core exercises to go from junior to senior, and from junior to senior.

Hello
This is

615

Learners

33

Reviews

16

Answers

4.9

Rating

2

Courses

안녕하세요. 이은재입니다. 프랑스에서 살고 있어요. 집에서 멍 때리고 냥이들 바라보는 걸 좋아하고, 저녁 식사 후에 한 시간 정도 산책하는 걸 즐깁니다. 시끄럽고 붐비는 도심이 부담돼서 파리 인근 소도시에 살고 있고, 새 구경을 좋아하고, 채소를 키우는 취미가 있어요.

좀 더 개발 관련 얘길 하자면, 2022년 11월부터 Storyblok 이라는 Headless CMS 서비스를 만드는 곳에서 개발자 유저들을 위한 extension platform 을 만들고 있어요.

2019년에 Algolia 라는 클라우드 기반의 검색 솔루션 회사에 입사하기 위해 프랑스로 이주했어요. 그 회사에서 InstantSearch 라는 오픈소스 UI 라이브러리를 만드는 일을 했어요. Vanilla JavaScript, React, Vue.js, Angular 총 네 가지 버전으로 라이브러리를 제공하기 위해 공통 로직을 따로 관리하고 각 flavor 는 최소한의 wrapper 이도록 하는 작업에 시간을 가장 많이 썼어요. 그 외에도 업무적으로 여러 오픈 소스 프로젝트에 참여했어요.

그전에는 한 스타트업에서 한국과 싱가폴에서 풀스택으로 3년 정도 일했고, 그 전에는 카카오와 다음 커뮤니케이션에서 4-5년간 주로 프론트엔드 업무를 했어요.

Curriculum

All

118 lectures ∙ (19hr 56min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

32 reviews

4.9

32 reviews

  • damyo7477님의 프로필 이미지
    damyo7477

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    It felt different from the lectures I've seen so far, and I felt like I was taking a break, so I took the class comfortably. It doesn't mean that the lectures were light or easy. In the past, I liked the lectures that crammed in a lot of knowledge and skills(?) (I felt like I was getting my money's worth😁), but sometimes it was hard to keep up, and I was confused whether the lectures were for the students or if the lecturers were just displaying what they knew like trophies and building up their own achievements. Eunjae's lectures seemed to have a good balance. They were moderately wide and moderately deep. Above all, it was good because I could experience following the flow of thought as if I was solving a problem, rather than memorizing formulas. It also gave me a chance to think again about things I didn't know, but just took for granted and didn't wonder about, and things I didn't care about because I considered them unimportant. I need to look back on how I deal with and think about problems, and what kind of attitude I've had so far. If you have the chance, it would be great if you could share Eunjae's tips as a developer (what tools you use, how you work/collaborate, etc.). I look forward to seeing you again with another great lecture. Thank you.

    • eunjae
      Instructor

      Wow, I'm so glad you felt that way. I really thought from the time I was planning the lecture that it would be nice to learn each topic "step by step", and I'm so happy that you felt that way. I'll think about the bonus episode about development tools and collaboration methods 😊

  • gichulroh6344님의 프로필 이미지
    gichulroh6344

    Reviews 14

    Average Rating 4.7

    5

    100% enrolled

    The lecturer seems like a philosopher who codes. Development is a fun thing in some ways, and it helped me find that fun again. At first, I hesitated because the lecture was a bit pricey, but I finished the first session. I think I should watch it two or three times. There are many lectures on making apps, but thanks to the Node environment and library development lectures, my understanding of related development environments has increased. I look forward to the next lecture. I hope you do well from afar. Finally, in the video of Section 12, Creating a Static Blog, Deployment, there is a blackout for about a minute.

    • eunjae
      Instructor

      Thank you so much for the great review 😊 There was a long gap in the video you mentioned. Thanks to you, I was able to remove it and reupload it. Thank you!

  • sai님의 프로필 이미지
    sai

    Reviews 4

    Average Rating 5.0

    5

    58% enrolled

    I usually like to spy on the instructor's SNS account, and when he introduced the lecture, I quickly read the curriculum. I was doing a vanilla JavaScript-based project while preparing for a job, and while doing the project, I often thought that my JavaScript skills were still not enough! This lecture provided insight into how to implement convenient functions in libraries & frameworks in JavaScript, and concepts that are difficult to study alone, such as TDD and npm distribution. While studying FE, I vaguely knew about the concepts but wanted to learn them in detail, so it was good to follow along with the instructor, which helped ease the burden. This lecture is recommended for those who quickly moved from JavaScript to React or started developing with React but are stuck. This lecture is useful even now that I am preparing for a job, but if it had been shown to me a year ago... when I was desperately craving insight, I think it would have been a lecture that I would have applauded. The instructor is very considerate in many ways, from the fact that he manages students through a separate Discord to the fact that he distributes discount codes for job seekers! I recommend it! (And the cat that appears briefly in the video is cute too. ☺️)

    • eunjae
      Instructor

      Hello. I'm so glad it was helpful 🥹 Thank you so much for your kind words, and I hope you do well in your job search!

  • leehyunji07152667님의 프로필 이미지
    leehyunji07152667

    Reviews 2

    Average Rating 5.0

    5

    97% enrolled

    I'm a junior developer in my third year! I was browsing through the courses and I liked it so much that I bought it and listened to it. It was so good. Since my company focuses on functional development, it was hard for me to learn about project setup or core JS concepts. It was so helpful and good to learn such diverse and essential knowledge. I was impressed by how you implemented SSR yourself and made it work like React using JS. I also liked how you covered bundlers and module concepts. It seems like a course that teaches you how to catch fish, not give them fish. I felt like you put a lot of thought into the course structure while listening to the course. I'll review it from time to time. Thank you~!

    • eunjae
      Instructor

      Thank you for your kind words 😊 I also tried my best to teach you how to catch fish, not the fish, so I'm so glad you felt that way. If you have any questions, please leave them anytime. Thank you!

  • qpyou12340482님의 프로필 이미지
    qpyou12340482

    Reviews 9

    Average Rating 4.9

    5

    14% enrolled

    A lecture from deep insight! I recommend it :)

    • eunjae
      Instructor

      Thank you evanjin 😊

$110.00

eunjae's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!