
Building a Backend Framework (Revised Edition)
zero
A framework is a self-contained, executable piece of software that provides common functionality that developers need.
초급
Java, oop, AOP
You will gain the knowledge and experience to create a framework, which is a half-built, executable software.

Knowledge and experience to understand all the frameworks in the world
Ability to understand backend technology roadmap
The ability to not only use the technology that has been created but also develop it further.
Welcome to the revised edition of Building a Backend Framework.
Create your own backend framework,
Become a growing developer! 🧰
All the frameworks in the world
They are all made through the same process .
There are many delicious foods in the world
Thanks to that food, we can live happily in the world.
There are ways to make that delicious food even more delicious.
I cook the food myself .
Of course, you can't make it well from the beginning.
You may fail to adjust the ingredients or burn the pot.
The food you worked so hard to make may get the worst reviews.
But if you don't get discouraged and keep trying,
My own recipe is complete,
You can make food that everyone can enjoy.
But the experience and knowledge gained from cooking doesn't stop there.
The way you look at food changes.
It gives you the ability to read the ingredients, tools, and thoughts of the person who made the food.
And it broadens my horizons with wisdom to refine my recipes to perfection.
Creating a framework is the same.
My experience and knowledge in creating frameworks
The skills and knowledge contained in other frameworks,
And it helps us to understand the thoughts of the person who created it correctly.
It will be wisdom that will deepen my capabilities.
That's why you shouldn't just use the framework well.
You have to create your own framework for other people to use.
It's okay if the code is messy.
Of course, errors may occur.
There may be complaints from users.
But the world's great frameworks were created through the same process.
Repeat the process of bumping into problems, identifying them, and solving them.
Such a process allows you to gain knowledge and experience and becomes wisdom within your body.
Enriching the lives of developers.
SW reusability
Abstraction for
modular unit
object-oriented paradigm
Ensuring parallelism and seriality
transaction
Absolutely necessary
Non-functional quality attributes
"Creating a backend framework"
From nothing to a level that can be used for actual work
It contains the process of completing the backend framework.
Abstraction for SW reusability, which is the basic goal of SW engineering.
At runtime, create a module with the desired functions and data.
object-oriented paradigms available,
Transactions to secure both parallelism and serializability
Non-functional quality attributes that must be provided to developers
There is a process, experience, and wisdom that goes into putting it into a framework.
Through this lecture
It makes it easy for me and others to create working software.
I hope you have the courage and effort to create a framework.
And I hope that through such experiences, developers' lives will become richer and more enjoyable.
Section 1. Prepare to easily create working software.
• Understand Servlet and MVC architectural styles and implement them from a framework perspective.
Section 2. Abstracts common functions and organizes them for easy use.
• The first common function, the HttpServletRequest object, is abstracted and refactored from an AOP perspective to make it easier for developers to use.
Section 3. Eliminate SQL-dependent development.
• Understand SQL-dependent development and develop framework features to eliminate it.
Section 4. Implement DI and IoC to reuse business logic.
• Think about and implement DI and IoC, which are essential features of a framework, from a business perspective.
Section 5. Implementing authentication and access control.
• Implement authentication and access control features that prove who I am and what I can do.
Section 6. Developer Knowledge: Cryptography
• Learn the knowledge to effectively use block secret key encryption technology and implement it into functions.
Section 7. Implement logging functionality to address SW invisibility.
• Implement logging functionality that ensures SW visibility in systems operating in a parallel/parallel environment.
Section 8. Non-functional requirements are software features that developers use.
• A framework is a half-built, executable software that satisfies the non-functional quality attributes developers require, and is never fully complete. Let's learn about non-functional quality attributes and consider future features.
The beginning is simple, but
Finally, it can be used in practice
You can complete a great backend framework .
Who is this course right for?
For those who are curious about the principles of backend frameworks
Anyone who wants to create SW for developers to use
Anyone who wants to understand the theories necessary for developers from a practical perspective
Need to know before starting?
Java: Basic Grammar
SQL: Basic DML, DDL
Experience using JSP
239
Learners
7
Reviews
26
Answers
4.6
Rating
1
Course
All
54 lectures ∙ (9hr 18min)
Course Materials:
All
3 reviews
3.7
3 reviews
Reviews 12
∙
Average Rating 4.9
4
I'm leaving a review because I completed it. I actually completed it about a week ago, but I'm writing it down during lunch, so I'm not sure if it'll be helpful. 【Reason for taking the course】 Personally, I decided to take the course after seeing the preview of [Preparing to easily create working software.]. 【Impressions about the course】 Rather than feeling like I was creating a backend framework, I felt like it was a course about gaining insight into issues faced during development. The topics of each section were interesting, but since the lecture time was short compared to the topics, it was more like suggesting directions rather than pursuing depth. 【Other】 The source code kept piling up, but since the packages below biz and below fw were the same project, and test codes and logic codes were continuously added together, the project file felt increasingly complicated. This may just be my personal feeling. I wonder how it would have been if the course had been developed by dividing each function of fw into modules and writing biz by referencing the modules.
Hello. This is Zero. Among the lecture management functions of Inflearn, there is a student management screen. There, you can check the progress of each student's lecture. Unlike others, Mr. Eui-Jong showed a steady progress, and it was helpful as a lecturer. Thank you so much for your hard work. Regarding the direction, One of the things I kept worrying about when I planned the lecture was that if I talked too much, I would get off topic, and if I implemented it in depth, the code would become difficult. To overcome that, I organized the lecture from the perspective of a beginner developer who understands the problems that occur in actual work and turns them into functions of the framework. Of course, the functions created in the lecture are lacking, and as Mr. Eui-Jong said, it was also intended to end with just suggesting the direction. This is not a framework that you learn and use, but a framework that you improve because it is inconvenient, and I hope that it will broaden your horizons. The final version of the framework is located below. https://github.com/zeroshift01/zeroshift01/tree/master/inflearn08 You will see that the framework that was just a direction has changed to a level that can be used in practice. Let me talk about the second package management standard. It goes without saying, but in practice, the framework resources and the business resources are used separately. However, from the perspective of explanation, there is an advantage in not separating the resources, so we did not separate the biz and fw resources. When looking at the resources based on Eclipse, it seems that it will be easy to distinguish the resources if you look at it in a hierarchical structure. To answer the third question about the test code, since a package is a directory information that can modularize a function from a cohesion perspective, we managed the resources with the idea that it would be effective to place the test code that checks the defects of that function in the same location. Of course, the end of the file is made so that it can be known that it is a test code, like Emp001_test.java, and with such a rule, in practice, the test code is managed so that it is not transferred to the operating environment. In addition, if it is located in the same package, it is also good for testing the default method. ^^ Thank you for your review.
Reviews 1
∙
Average Rating 5.0
5
Complete review! I recommend this to those who want to create a framework. Or those who are using other existing frameworks!!! I've been using frameworks, but I've never properly studied how they're used internally. I'm learning a lot through this lecture :) It was very helpful that the concepts I just studied theoretically were explained well in the middle of how they're used in programs. ㅎㅎㅎ If I get the chance, I want to properly create a framework too!
If you look at the webtoon "Gosu" on Naver, there is a phrase that says It is more beneficial to deeply know the techniques you have learned and apply them than to know many new techniques (instructions on martial arts). I made the lecture with that in mind, and I am glad that it was helpful. Thank you for sticking with it until the end and leaving your first review.
Reviews 1
∙
Average Rating 2.0
2
The lecture content is good, but it's a bit disconcerting that there are no answers or related content in the case of questions to think about... The reason I buy and listen to lectures is to minimize time and trial and error, but it's a shame that I have to look up related content again. Lastly, I use IntelliJ a lot in the field, but it was a bit disappointing that the lecture proceeded with Eclipse.
Hello. This is Zero. In order to improve your math skills, you should not look at the solution book. The solution is only one of the problem-solving processes, and if you learn it with your eyes before thinking about the process, you will not be able to solve similar problems or application problems. I think the same goes for the problems to think about. The process of creating a working software as code is not like what is in the solution book for math problems. You have to think about the trade-off between abstraction and readability (which have opposite effects), and there are situations where you have to give up transaction serialization to some extent for processing non-standard real-time data. What will help you at this time is not the knowledge you have seen with your eyes, but the experience you have thought about. I did not upload the answers to the problems to think about separately, hoping that you will gain such experience and wisdom. But for those who are still curious, I have set up an online feedback session, so if you are interested, please send me an email. As for using IntelliJ, Since the ability to run and debug WAS (Tomcat) (Enterprise Edition) is available from the Euro version, I decided not to use it when planning the lecture. Also, since I don't need IDE-specific features and I only need to set the classpath, compile, and build without any separate plugins or libraries, I use Eclipse, which is free and allows WAS (Tomcat) control. However, as you suggested, I will create a separate method for setting the backend framework project environment based on IntelliJ and upload it to help you take the course. Thank you for your review.
Check out other courses by the instructor!