
A developer's cheat sheet for adding Java/Spring tests
kok202
Learn how to add tests to Spring! Then, learn how to change the Spring design to make testing more natural.
Basic
TDD, Software Test, unittest
Now that you know a little about Spring and JPA, what should you study and how to grow in the future? Are you studying design patterns to study design and just memorizing the patterns? I'll help you!
Correcting Mistakes Frequently Made by Junior Developers
Correcting common mistakes junior developers make when using Spring
Correcting misconceptions about dependencies/entities, etc.
Concept organization required for practical use (MSA, ACL, etc.)
Infrastructure/Network Concepts Needed by Backend Developers
How to write object-oriented code in a Spring environment (TDA, etc.)
Are you a junior developer looking for ways to grow?
A notebook of mistakes for effective leveling up!
"What should I study now? What stack will help me learn?"
"Should I delve into infrastructure? Should I learn Spring Security?"
I'll help you avoid blindly buying books and studying just any technology or specific concept. Studying technology stacks like infrastructure (NoSQL, Message Queue, etc.) or Spring Security won't necessarily improve your development skills! This course focuses on practical, essential content, concisely explaining it in a short amount of time.
I'll help you correct common development mistakes made by junior developers, based on my experience reviewing code for many years!
Could you explain the difference between dependency injection and dependency inversion? Let me clear up some vague concepts I've memorized by rote.
I'll tell you why you need test code and why writing test code leads to good design.
Are you having trouble keeping up with the meeting? Let me summarize the concepts you need for practical work (MSA, ACL, etc.)
...by inverting the traditional dependency relationship whereby higher layers (policy decisions) depend on lower layers (details), the higher layers can become independent of the implementation of lower layers. (From Wikipedia, " Dependency Inversion Principle ")
So, what does this mean? 🙄 An encyclopedic question-and-answer explanation that doesn't make any sense is not the answer!
You need to know the exact concept so that you can explain it in your own words.
Over the years, I've met countless junior developers as mentors. And as I mentored them, I've often given them the same questions and answers. This led me to think it would be nice to have a dedicated course dedicated to this topic. This course is a compilation of common questions and answers I've received from junior developers as mentors .
The situation of most junior developers I've seen was like this.
But I don't know what the next step should be. 🤷♂️ Still, with my spare time... I need to learn something, so I study NoSQL, Message Queue, and RDB, which are the infrastructure technology stacks used by companies, or learn new languages that are trending these days. Of course, I did the same!
Are there concepts you know but struggle to explain? What is dependency inversion? What is an entity? What is a service? What's the difference between sequential and procedural programming? We'll help you understand these concepts, but explain them clearly.
Those damn TDD, DDD... they're great when you're learning them. I know they're fantastic theories, but how do you apply them in practice? More specifically, how do you apply TDD and DDD to the Spring Framework?
I've read many books and watched numerous seminars on TDD, but they mostly cover simple examples that are perfect for beginners. I'll show you how to apply it in practice .
If you're interested in design, have you ever tried to memorize design patterns in the hopes of learning more about them? Then, a thought suddenly arises: Are these example codes actually applicable in practice?
But as it turns out, what matters in design patterns isn't what the pattern looks like! It's understanding the dependencies and how you're weakening them !
After attending the lecture, I was able to understand the definitions, etymologies, and meanings of terms I'd casually used and terms I'd heard but couldn't quite pinpoint. While this knowledge might not be a problem for development, it did encourage me to think about the behavior and roles of objects and the meaning of each layer, cultivating a more OOP-like approach to coding. The lecture explained the concepts I'd personally considered, from a junior perspective, in an easy-to-understand manner, making it more engaging and comfortable to listen to. Like me, I imagine many new junior backend developers often feel lost, unsure of what they don't know or how much they need to know. This lecture provided valuable guidance, helping me understand what I needed to learn and what I was missing. (Lee*Gyu)
This lecture is a great resource, covering areas I'd never really considered. As a junior developer, I've been wondering if I'm growing properly by doing the same thing over and over again at work. This lecture helped me gain a sense of direction. (Shin*ho)
When you first join a company, you often worry about how to develop properly and how to minimize mistakes. This course addresses these concerns and provides excellent guidance for junior developers to develop correctly. Beyond practical knowledge, it also covers topics junior developers have likely encountered and wondered about at least once, such as, "How should I design an object-oriented architecture?", "How should I distinguish between DTOs, VOs, and Entities in practice?", and "Do I really need to write test code?" You'll also learn frequently used terminology, which I believe will be invaluable for adapting to real-world work. I highly recommend this course to both junior developers new to the field and those looking to grow. (Lee Chan)
As a developer, this course was incredibly helpful in helping me master the core concepts of object-oriented programming used in my field. Even difficult concepts were well-illustrated, making them easy to understand. Furthermore, the simple explanations helped me remember the concepts for a long time after just one listen. (Sim*Cheol)
Prospective students, do you know the difference between sequential and procedural programming? If you're curious, watch the free orientation video to find out what you'll learn.
Once you understand the concept clearly, you'll see much more! We'll thoroughly address questions you might have from a junior perspective .
Correcting common development mistakes made by junior developers
We'll cover common convention mistakes made when joining your first company, what objects are, and what you need to keep in mind when writing object-oriented code. And to understand good design, we'll explore dependencies.
Using Spring in an OOP way
To learn how to use Spring in an OOP-like manner, let's examine a case where it fails to do so. We'll also explore what a service is essentially and how far each layer should be abstracted.
Why do we need to test?
People say you need test code, but you're not sure why writing test code leads to good design? Let me explain why testing is necessary from a more practical perspective. And I'll show you how to create natural-looking tests.
Organizing concepts needed for practical use
There's too much infrastructure knowledge surrounding Spring to get the job done right. When networking or infrastructure comes up in meetings, many people either struggle to understand the topic or just sit there blankly. Does that mean you need to open a textbook just to learn about infrastructure or networking? I'll summarize it for you, just to the level you need for practical work!
We provide approximately 20 PPTs, each containing approximately 15-20 pages, as learning materials for each class . Furthermore, no separate practice environment is required! The lectures are designed so you can study in just 20 minutes on the subway during your commute.
I currently work at Kakao, and because I love creating, I'm always working on something after work. There's a saying, "A dwarf standing on the shoulders of giants." While I'm just a small dwarf, I strive to pass on my knowledge so I can help the giants grow. Having mentored numerous junior developers, I believe I can help you grow as well.
Q. Is this a course that non-majors can also take?
This course assumes a basic understanding of computer science. However, since the required specialized knowledge is limited, you can easily take the course if you already have a basic understanding of Java, Spring, and JPA (the prerequisites), as well as the content below.
Q. You say you avoid detailed explanations of concepts, so what exactly are you trying to tell us?
I'll try to keep the concept explanations to a three-line summary. Of course, I'll explain the flow of complex concepts like MSA and OAuth. However, I won't delve into the specifics of OAuth's origins, background, and 1.0 and 2.0, as we'll likely be using 2.0 in practice anyway. And from a practitioner's perspective, they're more interested in what data is exchanged via API communication than in tokens and signatures.
I'll try to explain even the most minor terms that are difficult to ask about. For example, when I first joined the company, I didn't know the term CS
" and was frustrated because I couldn't keep up with the meeting content. But what if you Google "CS"? It's not a single, unrelated term. It's really just 고객 문의
!
Q. There are many videos and blog posts explaining the concepts, so why should I take this course?
Yes, that's right. In fact, there are already so many great articles and videos on YouTube and blogs. However, it's far more common for junior developers to simply not know what they don't know. Perhaps you've just landed a job as a backend developer and find yourself stumped every time infrastructure or networking terms come up. So, you think, "Should I study infrastructure?" You buy a thick, expert-level book, completely oblivious to the content, and pore over it without understanding it. Isn't that incredibly inefficient?
This course can be considered a starter pack to help you grow quickly. Furthermore, many blog posts contain college-level content written on Tistory, so there are many instances of misconceptions. For example, some blog posts even explain that DTOs are objects used to store data in a database using DAOs!
Q. What makes this course unique?
Most lectures don't seem to cover design. This lecture provides the lecturer's own definition of good design.
I believe the reason there aren't many design-related lectures is because knowledge-sharing professionals are hesitant. As you know, there's no set answer to good design. However, lecturers need to objectively convey accurate knowledge, so they instinctively avoid topics with no set answer. That's why design-related lectures often go so far as to revisit SOLID and design patterns step by step. I'll explain my own definition of good design, so please share your thoughts.
Q. If you can't define what good design is, how can you teach it?
Yes, since I can't define good design, the definition I give in this lecture is simply my own personal definition. However, I believe all non-fiction books and lectures are simply a process of listening to others' opinions and accepting them if they logically resonate with you. Still, I've tried to present this as objectively as possible, so if you find it convincing, please accept it. If not, I encourage you to redefine good design on your own.
📢 Please check before taking the class!
Who is this course right for?
People who can't keep up with meetings because they don't know many concepts
Anyone interested in design
Those who have joined the company but don't know how to develop
For those of you who are wondering why we do tests
A person who has memorized the characteristics of springs mechanically
For those of you wondering if I'm handling springs correctly
New hires
Developers who want to grow
Need to know before starting?
Anyone who can understand Java code
Spring Basics (For those who know what Controller/Service/Repository are)
Anyone who has used JPA for a while
3,423
Learners
246
Reviews
47
Answers
4.9
Rating
2
Courses
현재 카카오에서 일하고 있고, 만드는 것을 좋아해서, 퇴근 후에도 항상 무언가를 개발하고 있습니다.
"거인의 어깨 위에 선 난쟁이"라는 말이 있습니다. 저 역시 한낱 작은 난쟁이일 뿐이지만, 올라탄 거인의 성장에 도움이 될 수 있도록 지식의 대물림을 위해 노력하고 있습니다. 다수의 주니어 개발자분들을 멘토링 한 경험이 있어서 여러분의 성장을 도와줄 수 있을 거예요.
깃허브 > https://github.com/kok202
블로그 > https://kok202.tistory.com
All
25 lectures ∙ (4hr 8min)
Course Materials:
All
76 reviews
4.9
76 reviews
Reviews 5
∙
Average Rating 5.0
5
This is a lecture that is like a stepping stone for development skills. Veterans create different results with deeper knowledge and a broader perspective even when doing the same work. I think this is the scary thing about years of experience. This lecture imparts knowledge and techniques that can be accumulated through many years of experience. The instructor kindly introduces valuable information and techniques accumulated through his persistent obsession with development and various experiences to beginners like me. When I first saw it, I was surprised the whole time. I was now able to explain the concepts that felt vague in words, and I immediately studied object-oriented programming and applied it as instructed, and refactored it, and the structure of the project became cleaner. When I first saw the lecture, I was still inexperienced, so I was not able to apply the contents you mentioned in various ways. After that, I thought of this lecture while working on a new project. When I watched the lecture again and applied the contents you mentioned, I felt that the code was incomparably improved compared to before, and my project mentor and team members all praised it for being easy to read and well-written. I think this lecture is a lecture that broadens your perspective. It goes beyond simply correcting mistakes and learning the know-how and knowledge of experts, and I think it is a grateful lecture that shows various choices that beginners cannot see when making a choice.
Reviews 24
∙
Average Rating 5.0
5
BAD The sample code is too similar to my code 🫣 I'm somehow building a server on my own in an environment without a shooter, but I'm a bit lost when I want to go to the next step 😮💨 I was lost, but after listening to the lecture, I think I'm starting to get the hang of it. Thank you so much 👍🏻 I wish you'd upload more lectures related to design 🙏🏻
Reviews 21
∙
Average Rating 5.0
5
This was a very helpful lecture for me. I was so happy that you taught me at least what not to do while I was just starting to think about good design. Also, since you provided sources for all quotes, I think it was a better lecture because I learned a lot of good books. Aside from the lecture content, the tone and lecture progress were neat, so I enjoyed listening to the latter half where you explained many terms. Thank you so much for making such a great lecture!
Reviews 4
∙
Average Rating 5.0
5
I listened carefully. It was good to hear about the parts that I was worried about at the boundary between theory and practice from various perspectives. In particular, as a junior developer, I have to study, but I think it would be good to listen to keywords that are good to throw out when I don't know what to study, so I think it would be good to look at it again once in a while to recall the concepts.
Reviews 11
∙
Average Rating 4.6
$46.20
Check out other courses by the instructor!
Explore other courses in the same field!