The multi-layer architecture is typically used in client-server applications. I think it is a concept that must be learned as it is a basic structure used in most applications, including web applications.
layer
There are three layers that make up the n-tier architecture:
- Presentation: User Interface (UI)
- Application (or logic): Handles business logic
- data: refers to database
The point to note here is that tier and layer are distinct concepts. Layer means physically separated, and layer is a logically separated concept.
2-tier vs 3-tier

2-tier
- Client program implemented through Java, etc.
- Expresses data obtained by directly connecting to the DB.
3-tier
- A typical example is a web application.
- Connect to middleware without directly connecting to the DB
For reference, the 2-tier structure may be implemented as a web application rather than a client program. Also, conversely, it is also possible to implement the client program as a 3-tier.
Implementation example
University course registration system, which I worked on as a major project during my second year of college, is a good example to explain the multi-layered structure. This program, implemented over two semesters, started with a 1-tier structure and evolved into a 3-tier structure. Below is a brief summary of the characteristics of each program version.
- v1.0
- 1-tier Program
- A simple client program that runs locally
- Contains and loads data files related to course registration.
- UI, business logic, and data all in one place
- v2.0
- 2-tier Program
- The client program simply has presentation functions.
- Create a server program to handle client requests
- The client expresses only the UI, and the server processes logic and data.
- v2.1+
- 3-tier Program
- Migrate data files to MySQL DB
- The DB is deployed to
aws-rds - Structure where all functions are physically separated
Looking back now, I think I didn’t realize the true value of the project when I was working on it last year. I tried my best to create it according to the professor’s class, but could I say that I didn’t understand all the content contained in it? Why didn’t I know earlier that the project that had been in progress for a year had a multi-layered evolution process?
In conclusion
Through this post, I learned that learning is not just about knowing new things. The review process of looking back at previously undertaken projects can also be a meaningful time. Of course, it would be best if you could understand everything when you first learn, but unfortunately, I don’t think I can do that yet. I plan to write a blog post during my time in the military, organizing previously learned concepts and organizing new content to learn in the future.