{"id":33157,"date":"2024-11-01T09:14:10","date_gmt":"2024-11-01T09:14:10","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33157"},"modified":"2024-11-01T11:28:42","modified_gmt":"2024-11-01T11:28:42","slug":"spring-boot-backend-development-course-server-and-client","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33157\/","title":{"rendered":"Spring Boot Backend Development Course, Server and Client"},"content":{"rendered":"<p><body><\/p>\n<header>\n<p>Hello! In this course, we will learn in detail about backend development using Spring Boot. We will understand the interaction between server and client, and create a real application. This course is designed to be useful for everyone from beginners to intermediate learners.<\/p>\n<\/header>\n<section>\n<h2>1. What is Spring Boot?<\/h2>\n<p>Spring Boot is an application framework based on the Spring framework that helps you quickly create Spring applications without complex configuration. Spring Boot has the following features:<\/p>\n<ul>\n<li><strong>Minimal Configuration:<\/strong> It minimizes configuration through automatic setting features.<\/li>\n<li><strong>Standalone:<\/strong> It can run as a standalone application using embedded Tomcat, Jetty, or Undertow.<\/li>\n<li><strong>Starter Packages:<\/strong> It provides pre-configured starter packages for commonly used libraries.<\/li>\n<li><strong>Enhanced Productivity:<\/strong> It offers various features to allow developers to write code more quickly and easily.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>2. Concepts of Server and Client<\/h2>\n<p>Server and client are the basic units of data communication in a network. The client is responsible for requesting services, while the server responds to the client&#8217;s requests. This can be explained in more detail as follows:<\/p>\n<ul>\n<li><strong>Client:<\/strong> Provides an interface that users interact with directly, such as a web browser or mobile app. The client sends HTTP requests to the server and receives HTTP responses from the server.<\/li>\n<li><strong>Server:<\/strong> A program that processes requests from clients. The server interacts with the database to return results for client requests.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>3. Installing Spring Boot<\/h2>\n<p>To use Spring Boot, you need JDK, Spring Boot, and an IDE as the development environment. You can install it following these steps:<\/p>\n<ol>\n<li><strong>Install Java Development Kit (JDK):<\/strong> Install JDK 11 or higher. You can use Oracle JDK or OpenJDK.<\/li>\n<li><strong>Install IDE:<\/strong> Install an IDE like IntelliJ IDEA, Eclipse, or Spring Tool Suite (STS).<\/li>\n<li><strong>Install Spring Boot CLI (optional):<\/strong> You can install Spring Boot CLI to create Spring Boot projects from the command line.<\/li>\n<\/ol>\n<\/section>\n<section>\n<h2>4. Creating a Spring Boot Project<\/h2>\n<p>You can create a Spring Boot project in several ways. The most convenient way is to use Spring Initializr. Let\u2019s follow these steps to create a project:<\/p>\n<ol>\n<li><strong>Access Spring Initializr:<\/strong> Go to <a href=\"https:\/\/start.spring.io\/\"> start.spring.io <\/a>.<\/li>\n<li><strong>Set Project Configuration:<\/strong> Set the project metadata. Choose Maven Project, Java, and the appropriate Spring Boot version.<\/li>\n<li><strong>Add Dependencies:<\/strong> Add the necessary dependencies such as Spring Web, JPA, H2 Database, etc.<\/li>\n<li><strong>Download Project:<\/strong> Click the Generate button to download the project.<\/li>\n<\/ol>\n<\/section>\n<section>\n<h2>5. Creating a Simple RESTful API<\/h2>\n<p>Now, we will create a simple RESTful API using Spring Boot. Here, we will implement an API to manage &#8216;Books&#8217; as resources.<\/p>\n<h3>5.1 Creating a Domain Model<\/h3>\n<p>First, we define the &#8216;Book&#8217; domain model. The properties of the book will include ID, title, author, and publication year.<\/p>\n<div class=\"code\">\n<pre><code>package com.example.demo.model;\n\nimport javax.persistence.Entity;\nimport javax.persistence.GeneratedValue;\nimport javax.persistence.GenerationType;\nimport javax.persistence.Id;\n\n@Entity\npublic class Book {\n    @Id\n    @GeneratedValue(strategy = GenerationType.IDENTITY)\n    private Long id;\n    \n    private String title;\n    private String author;\n    private int year;\n\n    \/\/ Getters and setters omitted\n}\n            <\/code><\/pre>\n<\/div>\n<h3>5.2 Creating a Repository Interface<\/h3>\n<p>Create a repository interface to interact with the database using JPA.<\/p>\n<div class=\"code\">\n<pre><code>package com.example.demo.repository;\n\nimport com.example.demo.model.Book;\nimport org.springframework.data.jpa.repository.JpaRepository;\n\npublic interface BookRepository extends JpaRepository&lt;Book, Long&gt; {\n}\n\n            <\/code><\/pre>\n<\/div>\n<h3>5.3 Creating a Service Class<\/h3>\n<p>Create a service class for business logic processing. This class can add and retrieve book data using the repository.<\/p>\n<div class=\"code\">\n<pre><code>package com.example.demo.service;\n\nimport com.example.demo.model.Book;\nimport com.example.demo.repository.BookRepository;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n@Service\npublic class BookService {\n    @Autowired\n    private BookRepository bookRepository;\n\n    public List&lt;Book&gt; getAllBooks() {\n        return bookRepository.findAll();\n    }\n\n    public Book addBook(Book book) {\n        return bookRepository.save(book);\n    }\n}\n            <\/code><\/pre>\n<\/div>\n<h3>5.4 Creating a Controller Class<\/h3>\n<p>Create a REST controller to handle client requests. This controller can define the API endpoints.<\/p>\n<div class=\"code\">\n<pre><code>package com.example.demo.controller;\n\nimport com.example.demo.model.Book;\nimport com.example.demo.service.BookService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n@RestController\n@RequestMapping(\"\/api\/books\")\npublic class BookController {\n    @Autowired\n    private BookService bookService;\n\n    @GetMapping\n    public List&lt;Book&gt; getAllBooks() {\n        return bookService.getAllBooks();\n    }\n\n    @PostMapping\n    public Book addBook(@RequestBody Book book) {\n        return bookService.addBook(book);\n    }\n}\n            <\/code><\/pre>\n<\/div>\n<h3>5.5 Running the Application<\/h3>\n<p>Now that all settings are complete, start the application by running the <strong>DemoApplication<\/strong> class&#8217;s <code>main<\/code> method.<\/p>\n<\/section>\n<section>\n<h2>6. Testing the API with Postman<\/h2>\n<p>We will test whether the API we created works correctly using Postman. Follow these steps:<\/p>\n<ol>\n<li><strong>Run Postman:<\/strong> Open the Postman application and create a new request.<\/li>\n<li><strong>Send GET Request:<\/strong> Enter <code>http:\/\/localhost:8080\/api\/books<\/code> in the URL and send a GET request. The current book list should appear as a response.<\/li>\n<li><strong>Send POST Request:<\/strong> To add a new book, enter <code>http:\/\/localhost:8080\/api\/books<\/code> in the URL and set up a POST request. Set the Body to JSON format and enter the book information.<\/li>\n<\/ol>\n<\/section>\n<section>\n<h2>7. Connecting to Database<\/h2>\n<p>In this section, we will learn how to connect Spring Boot with the H2 database. H2 database is an in-memory database suitable for testing and development.<\/p>\n<h3>7.1 Database Configuration<\/h3>\n<p>Add H2 database settings in the <code>application.properties<\/code> file of the Spring Boot application:<\/p>\n<div class=\"code\">\n<pre><code>spring.datasource.url=jdbc:h2:mem:testdb\nspring.datasource.driverClassName=org.h2.Driver\nspring.datasource.username=sa\nspring.datasource.password=\nspring.h2.console.enabled=true\nspring.jpa.database-platform=org.hibernate.dialect.H2Dialect\n            <\/code><\/pre>\n<\/div>\n<h3>7.2 Data Initialization<\/h3>\n<p>To add initial data when the application runs, you can use a <code>data.sql<\/code> file to set up the initial data.<\/p>\n<div class=\"code\">\n<pre><code>INSERT INTO book (title, author, year) VALUES ('Effective Java', 'Joshua Bloch', 2020);\nINSERT INTO book (title, author, year) VALUES ('Spring in Action', 'Craig Walls', 2018);\n            <\/code><\/pre>\n<\/div>\n<\/section>\n<section>\n<h2>8. Exception Handling<\/h2>\n<p>We will learn how to handle exceptions that may occur in the generated API. Spring allows global exception handling using <code>@ControllerAdvice<\/code>.<\/p>\n<div class=\"code\">\n<pre><code>package com.example.demo.exception;\n\nimport org.springframework.http.HttpStatus;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.ControllerAdvice;\nimport org.springframework.web.bind.annotation.ExceptionHandler;\n\n@ControllerAdvice\npublic class GlobalExceptionHandler {\n    \n    @ExceptionHandler(Exception.class)\n    public ResponseEntity&lt;String&gt; handleException(Exception e) {\n        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());\n    }\n}\n            <\/code><\/pre>\n<\/div>\n<p>With this setup, all exceptions will be handled, and an appropriate response will be returned to the client.<\/p>\n<\/section>\n<section>\n<h2>9. Communication with Client<\/h2>\n<p>In this section, we will learn about the methods of communication between the client and server. Generally, clients interact with servers via REST APIs. The common request methods are as follows:<\/p>\n<ul>\n<li><strong>GET:<\/strong> Data retrieval<\/li>\n<li><strong>POST:<\/strong> Data creation<\/li>\n<li><strong>PUT:<\/strong> Data modification<\/li>\n<li><strong>DELETE:<\/strong> Data deletion<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>10. Implementing Client Application<\/h2>\n<p>Having successfully implemented the API on the server side, let&#8217;s create a client application. Here, we will create a simple HTML and JavaScript-based frontend to communicate with the REST API.<\/p>\n<h3>10.1 Creating HTML Structure<\/h3>\n<div class=\"code\">\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;Book List&lt;\/title&gt;\n    &lt;script src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Book List&lt;\/h1&gt;\n    &lt;table id=\"bookTable\"&gt;\n        &lt;tr&gt;&lt;th&gt;Title&lt;\/th&gt;&lt;th&gt;Author&lt;\/th&gt;&lt;th&gt;Year&lt;\/th&gt;&lt;\/tr&gt;\n    &lt;\/table&gt;\n    &lt;script&gt;\n        function fetchBooks() {\n            $.get(\"http:\/\/localhost:8080\/api\/books\", function(data) {\n                data.forEach(function(book) {\n                    $('#bookTable').append(`&lt;tr&gt;&lt;td&gt;${book.title}&lt;\/td&gt;&lt;td&gt;${book.author}&lt;\/td&gt;&lt;td&gt;${book.year}&lt;\/td&gt;&lt;\/tr&gt;`);\n                });\n            });\n        }\n        $(document).ready(function() {\n            fetchBooks();\n        });\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n            <\/code><\/pre>\n<\/div>\n<\/section>\n<section>\n<h2>11. Security<\/h2>\n<p>Security is very important in applications. You can implement authentication and authorization through Spring Security. Here\u2019s a simple example of security settings:<\/p>\n<div class=\"code\">\n<pre><code>package com.example.demo.config;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n@EnableWebSecurity\npublic class SecurityConfig extends WebSecurityConfigurerAdapter {\n    @Override\n    protected void configure(HttpSecurity http) throws Exception {\n        http.csrf().disable()\n            .authorizeRequests()\n            .anyRequest().authenticated()\n            .and()\n            .httpBasic();\n    }\n}\n            <\/code><\/pre>\n<\/div>\n<\/section>\n<footer>\n<h2>Conclusion<\/h2>\n<p>Through this course, you learned about backend development using Spring Boot and the principles of communication between server and client. I encourage you to gain experience by developing real applications in various scenarios. I hope you continue to acquire more knowledge and keep learning. Thank you!<\/p>\n<\/footer>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this course, we will learn in detail about backend development using Spring Boot. We will understand the interaction between server and client, and create a real application. This course is designed to be useful for everyone from beginners to intermediate learners. 1. What is Spring Boot? Spring Boot is an application framework based &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33157\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Server and Client&#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-33157","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, Server and Client - \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\/33157\/\" \/>\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, Server and Client - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this course, we will learn in detail about backend development using Spring Boot. We will understand the interaction between server and client, and create a real application. This course is designed to be useful for everyone from beginners to intermediate learners. 1. What is Spring Boot? Spring Boot is an application framework based &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Server and Client&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33157\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:14:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:42+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=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33157\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33157\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Server and Client\",\"datePublished\":\"2024-11-01T09:14:10+00:00\",\"dateModified\":\"2024-11-01T11:28:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33157\/\"},\"wordCount\":851,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33157\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33157\/\",\"name\":\"Spring Boot Backend Development Course, Server and Client - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:14:10+00:00\",\"dateModified\":\"2024-11-01T11:28:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33157\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33157\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33157\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Server and Client\"}]},{\"@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, Server and Client - \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\/33157\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Server and Client - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this course, we will learn in detail about backend development using Spring Boot. We will understand the interaction between server and client, and create a real application. This course is designed to be useful for everyone from beginners to intermediate learners. 1. What is Spring Boot? Spring Boot is an application framework based &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Server and Client\"","og_url":"https:\/\/atmokpo.com\/w\/33157\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:14:10+00:00","article_modified_time":"2024-11-01T11:28:42+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":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33157\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33157\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Server and Client","datePublished":"2024-11-01T09:14:10+00:00","dateModified":"2024-11-01T11:28:42+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33157\/"},"wordCount":851,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33157\/","url":"https:\/\/atmokpo.com\/w\/33157\/","name":"Spring Boot Backend Development Course, Server and Client - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:14:10+00:00","dateModified":"2024-11-01T11:28:42+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33157\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33157\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33157\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Server and Client"}]},{"@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\/33157","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=33157"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33157\/revisions"}],"predecessor-version":[{"id":33158,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33157\/revisions\/33158"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}