{"id":33263,"date":"2024-11-01T09:14:59","date_gmt":"2024-11-01T09:14:59","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33263"},"modified":"2024-11-01T11:28:11","modified_gmt":"2024-11-01T11:28:11","slug":"spring-boot-backend-development-course-understanding-layers-through-cafes-and-bakeries","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33263\/","title":{"rendered":"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries"},"content":{"rendered":"<p><body><\/p>\n<p>In today&#8217;s software development, backend systems operate silently in the background while users interact with web or mobile applications, handling data processing. In this course, we will learn how to develop the backend using Spring Boot and understand the hierarchical structure through the analogy of a cafe and bakery.<\/p>\n<h2>1. What is Spring Boot?<\/h2>\n<p>Spring Boot is a Java-based framework built on the Spring Framework, designed to help developers quickly build applications without complex configurations. With various starter packages to add features and default configurations, Spring Boot reduces the effort required for customization.<\/p>\n<h2>2. Overview of Backend Development<\/h2>\n<p>Backend development includes various tasks such as data storage, business logic processing, and API provisioning. For example, in a food delivery order website, users select menus and make payments on the frontend while the backend processes these requests to save order details and relay them to the kitchen.<\/p>\n<h2>3. Understanding Hierarchical Architecture<\/h2>\n<p>Hierarchical architecture is a common pattern in software design where each layer performs a specific role. Let&#8217;s consider the analogy of a &#8216;cafe and bakery&#8217; system.<\/p>\n<ul>\n<li><strong>Presentation Layer<\/strong>: The user enters the cafe to place an order. This is the UI represented in a web browser.<\/li>\n<li><strong>Business Layer<\/strong>: The barista processes orders according to customer requests. This is the service layer that handles business logic.<\/li>\n<li><strong>Data Layer<\/strong>: This is where customer order information is stored. It is permanently stored in the server&#8217;s database.<\/li>\n<\/ul>\n<h2>4. Creating a Spring Boot Project<\/h2>\n<p>You can easily create a Spring Boot project via Spring Initializr. Below is an example using Gradle.<\/p>\n<pre>\ncurl https:\/\/start.spring.io\/starter.zip \\\n    -d dependencies=web,jpa,mysql \\\n    -d name=cafe-bakery \\\n    -d packageName=com.example.cafe \\\n    -o cafe-bakery.zip\n<\/pre>\n<h2>5. Building the Presentation Layer<\/h2>\n<p>The presentation layer handles requests made through the web browser. You can implement a RESTful API using Spring MVC.<\/p>\n<pre>\n@RestController\n@RequestMapping(\"\/api\/orders\")\npublic class OrderController {\n    \n    @Autowired\n    private OrderService orderService;\n\n    @PostMapping\n    public ResponseEntity<Order> createOrder(@RequestBody Order order) {\n        Order createdOrder = orderService.createOrder(order);\n        return new ResponseEntity<>(createdOrder, HttpStatus.CREATED);\n    }\n}\n<\/pre>\n<h2>6. Implementing Business Logic<\/h2>\n<p>The business layer is responsible for actual business logic. Below is an example of a service layer for order creation.<\/p>\n<pre>\n@Service\npublic class OrderService {\n    \n    @Autowired\n    private OrderRepository orderRepository;\n\n    public Order createOrder(Order order) {\n        \/\/ Business logic\n        return orderRepository.save(order);\n    }\n}\n<\/pre>\n<h2>7. Building the Data Layer<\/h2>\n<p>The data layer interacts with the database. Below is a JPA repository that can handle orders.<\/p>\n<pre>\n@Repository\npublic interface OrderRepository extends JpaRepository<Order, Long> {\n}\n<\/pre>\n<h2>8. Configuring MySQL Database<\/h2>\n<p>To connect Spring Boot with the MySQL database, you need to configure the application.properties file.<\/p>\n<pre>\nspring.datasource.url=jdbc:mysql:\/\/localhost:3306\/cafe_bakery\nspring.datasource.username=root\nspring.datasource.password=password\nspring.jpa.hibernate.ddl-auto=update\n<\/pre>\n<h2>9. Testing and Deployment<\/h2>\n<p>Spring Boot applications can be tested using JUnit and Mockito. By testing each layer, you can ensure that the code operates correctly.<\/p>\n<pre>\n@SpringBootTest\npublic class OrderServiceTest {\n\n    @Autowired\n    private OrderService orderService;\n\n    @MockBean\n    private OrderRepository orderRepository;\n\n    @Test\n    public void createOrder_ShouldReturnOrder_WhenOrderIsValid() {\n        Order order = new Order(...);\n        when(orderRepository.save(any())).thenReturn(order); \/\/ Mock behavior\n        Order createdOrder = orderService.createOrder(order);\n        assertNotNull(createdOrder);\n    }\n}\n<\/pre>\n<h2>10. Conclusion<\/h2>\n<p>In this course, we explored the basic flow of backend development using Spring Boot and explained hierarchical architecture through the analogy of a cafe and bakery. It is important to understand how each layer collaborates to make the overall system function. Now you are ready to build and operate a simple backend system.<\/p>\n<h3>11. Additional Resources<\/h3>\n<ul>\n<li><a href=\"https:\/\/spring.io\/projects\/spring-boot\">Official Spring Boot Documentation<\/a><\/li>\n<li><a href=\"https:\/\/www.baeldung.com\/spring-boot\">Baeldung&#8217;s Spring Boot Tutorial<\/a><\/li>\n<li><a href=\"https:\/\/www.w3schools.com\/java\/java_mysql.asp\">Integrating Java with MySQL<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today&#8217;s software development, backend systems operate silently in the background while users interact with web or mobile applications, handling data processing. In this course, we will learn how to develop the backend using Spring Boot and understand the hierarchical structure through the analogy of a cafe and bakery. 1. What is Spring Boot? Spring &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33263\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[131],"tags":[],"class_list":["post-33263","post","type-post","status-publish","format-standard","hentry","category-spring-boot-backend-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/33263\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In today&#8217;s software development, backend systems operate silently in the background while users interact with web or mobile applications, handling data processing. In this course, we will learn how to develop the backend using Spring Boot and understand the hierarchical structure through the analogy of a cafe and bakery. 1. What is Spring Boot? Spring &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33263\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:14:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:11+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33263\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33263\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries\",\"datePublished\":\"2024-11-01T09:14:59+00:00\",\"dateModified\":\"2024-11-01T11:28:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33263\/\"},\"wordCount\":445,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33263\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33263\/\",\"name\":\"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:14:59+00:00\",\"dateModified\":\"2024-11-01T11:28:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33263\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33263\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33263\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/33263\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In today&#8217;s software development, backend systems operate silently in the background while users interact with web or mobile applications, handling data processing. In this course, we will learn how to develop the backend using Spring Boot and understand the hierarchical structure through the analogy of a cafe and bakery. 1. What is Spring Boot? Spring &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries\"","og_url":"https:\/\/atmokpo.com\/w\/33263\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:14:59+00:00","article_modified_time":"2024-11-01T11:28:11+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33263\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33263\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries","datePublished":"2024-11-01T09:14:59+00:00","dateModified":"2024-11-01T11:28:11+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33263\/"},"wordCount":445,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33263\/","url":"https:\/\/atmokpo.com\/w\/33263\/","name":"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:14:59+00:00","dateModified":"2024-11-01T11:28:11+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33263\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33263\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33263\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Understanding Layers through Cafes and Bakeries"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=33263"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33263\/revisions"}],"predecessor-version":[{"id":33264,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33263\/revisions\/33264"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}